CMSC 198I: The Science behind Computing: What makes Web Search, Navigation Systems and Social Media work?

Spring 2012

Section 0101 and 0102

Home | Syllabus/Homeworks | Lecture Notes | Resources | Group Presentations


General Course Information

Lecture Room and Time: 3117 Computer Science Instruction Center
Mondays and Wednesdays 10:00a.m. -- 10:50 a.m.
Recitation Room and Time: Section 0101: 2118 CSIC
Section 0102: 3118 CSIC
Fridays 10:00a.m. -- 10.50 a.m.
Some Fridays will be lecture
Instructor: Samir Khuller
TA: Koyel Mukherjee (
Office Hours: Samir Khuller (AVW 3369) 11:00am-12:00pm Mon and Wed
Koyel Mukherjee (AVW 1112) 3:00pm-4:30pm Tu and Thu

Course Description (Detailed Syllabus)

TextBook for the Course Nine Algorithms that Changed the Future

Ever wondered, how does Google do such a remarkable job as a search engine? How does mapquest give directions? How do we compress large amounts of data? How do we sequence DNA using computers? How do companies mine data and learn about you? This course will take a peek inside some of the underlying algorithmic principles involved in developing the fascinating science behind computing. Students will also learn about modern hardware and software, as well as basics about communciation over the Internet.

No single technology in human history has undergone as dramatic an improvement (over any time scale) as computing, and yet, the perhaps the most surprising fact is not how much smaller, cheaper, or faster computer hardware has gotten, but the range of problems that computing technology efficiently addresses. Twitter and Facebook, IMs and e-mail, the Web and the Internet, credit cards and electronic banking, iPods and cell phones, XBoxes and Wiis, GPS and computer controlled automatic transmissions in your car, auto-pilots on airplane flights and computer-controlled electric power grids,... are all applications of this relatively young discipline.

Computer Science is the systematic study of computation and its applications. The computing technologies touched on above are based on ideas in Computer Science. In Computer Science, "algorithms" specify how a problem should be solved and "programs" express algorithms in a form that can be executed by computers. Finally, computer "systems" is the study of how to efficiently build and organize hardware and software.

This course will explore the "science" behind this incredible range of technologies by providing an interleaved introduction to major ideas in computer algorithms, computer programming, and computer systems.