Classes

CSCI E-76 Building Mobile Applications

Semester: 

Spring

Offered: 

2011

Today's applications are increasingly mobile. Computers are no longer confined to desks and laps but instead live in our pockets and hands. This course teaches students how to build mobile apps for Android and iOS, two of today's most popular platforms, and how to deploy them in Android Market and the App Store. Students learn to write native apps for Android using Eclipse and the Android SDK, to write native apps for iPhones, iPod touches, and iPads using Xcode and the iOS SDK, and to write web apps for both platforms. Prerequisites: prior programming experience in any...

Read more about CSCI E-76 Building Mobile Applications

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

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

Communication Protocols

Semester: 

Spring

Offered: 

2009

Networks are now too large, complex, and diverse to be built on an ad hoc basis. This course provides a structured approach to the design, analysis, and implementation of networks and protocols. We study various protocols, including TCP/IP; WWW/HTTP; e-mail/SMTP; multimedia protocols for voice and video; and the IEEE 802 LAN protocol suite. In each case, the protocol's functions and the underlying reference model are discussed. LAN architecture and design, internetworking using switches and routers, and the design and analysis of both private networks and the Internet are presented. The...

Read more about Communication Protocols

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

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