Introduction to Computer Science

Thank you for signing up for the course! We look forward to working with you and hearing your feedback in our forums.

Need help getting started?


Course Resources

Complete Python Reference [PDF]
Diagram of Search Engine Code

Other Resources (links to supplemental material for lessons, tutorials and other student-created materials)

Course Syllabus

Unit 1 Course Notes
The difference between Variables and Strings
Unit 1 Homework
Unit 1 Homework - Challenge
Unit 1 Python Reference

Unit 2 Course Notes
Unit 2 Homework
Unit 2 Homework - Challenge
Unit 2 Extra Practice
Unit 2 Python Reference

Unit 2.5: How to solve problems (problem solving strategies)

Unit 2.5 Course Notes

Unit 3: How to manage data (crawling the web)

Unit 3 Course Notes
Unit 3 Homework
Unit 3 Homework - Challenge
Unit 3 Extra Practice
Unit 3 Python Reference

Unit 4: How to structure data (responding to search queries)

Unit 4 Course Notes
Unit 4 Homework
Unit 4 Homework - Challenge
Unit 4 Extra Practice
Unit 4 Python Reference

Unit 5: How programs run (reasoning about cost; hash tables, dictionary)

Unit 5 Course Notes
Unit 5 Homework
Unit 5 Homework - Challenge
Unit 5 Extra Practice
Unit 5 Python Reference

Unit 6: How to have infinite power (recursive definitions; ranking search results)

Unit 6 Course Notes
Unit 6 Homework
Unit 6 Homework - Challenge

Unit 7: Where to Go From Here ??

Unit 7 Course Notes


A lot of people have been responsible for making this course possible. Special thanks to:

Instructor: David Evans (University of Virginia)
Original Assistant Instructor: Peter Chapman (University of Virginia, CMU)
Subsequent Assistant Instructors: Sarah Norell, Gundega Dekena

Producer: Kathleen Mullaney
Lead Video Editor: Katy Reichelt