programming

Science of Google Search

Semester: 

Fall

Offered: 

2007

Google has become a verb, and a cultural and business phenomenon. In this course we try to understand some of the techniques that made Google possible. We analyze various access methods for efficient search and retrieval from text and other document collections. Examples include suffix arrays, inverted files or inverted indexes, and signature files. We also examine the commercial search engines that use custom network architectures and high-performance hardware to achieve sub-second query response times. Some time is devoted to text indexing engines used in relational database systems. The...

Read more about Science of Google Search

Building Dynamic Websites

Semester: 

Spring

Offered: 

2008

Today's websites are increasingly dynamic. Pages are no longer static HTML files but instead generated by scripts and database calls. User interfaces are more seamless, with technologies like Ajax replacing traditional page reloads. This course teaches students how to build dynamic websites with Ajax and with Linux, Apache, MySQL, and PHP (LAMP), one of today's most popular frameworks. Students learn how to set up domain names with DNS, how to structure pages with XHTML and CSS, how to program in JavaScript and PHP, how to configure Apache and MySQL, how to design and query databases with...

Read more about Building Dynamic Websites

Massively Parallel Computing

Semester: 

Fall

Offered: 

2009

From the home page:

There are big changes afoot. Computation is moving from sequential to parallel, from your PC to the cloud, and from your CPU to high-performance GPUs. In fact, this is the belated arrival of massively parallel computing, where hundreds or thousands of processors (either in the cloud or on your GPU) are running massive numbers of programs in parallel. And the technology is getting better, faster, and cheaper. In this course, you will get hands-on experience in developing software for massively parallel computing...

Read more about Massively Parallel Computing

Smartphone Application Development

Semester: 

Spring

Offered: 

2010

I've been interested in pursuing iPhone programming for some time. I've found that one sure fire way to focus on a topic is to have assignments with deadlines.

Overview:

This course focuses on developing applications for modern smartphone operating systems. Most of the course is dedicated to Apple's iPhone OS and Google's Android. Rapid application development techniques are covered, as well as setup of the development environment, real-world testing, and deployment to both the iTunes App Store and Android Marketplace.

More information about the class is available at...

Read more about Smartphone Application Development