We often hear that technology is changing the world around us. But it’s not the technology transforming our world–it's the people–who design,
develop, and analyze computer systems and software to solve big problems. This course will teach the fundamentals of computational problem solving,
using Python, a powerful and versatile programming language. This course is a technical introduction to programming with an emphasis on producing clear,
robust, and reasonably efficient code using top-down design, informal analysis, and effective testing and debugging. Starting from first principles,
we will cover a large subset of the Python programming language, including its standard libraries and programming paradigms. This course is taught
using a hands-on approach, with students completing programming assignments both in homeworks and in quizzes. Lastly, the course will culminate in a
term project where students will design and implement a substantial Python program from the ground up.
This course assumes no prior programming experience. Even so, it is a fast-paced and
rigorous preparation for 15-122. Students seeking a more gentle introduction
to computer science should consider first taking 15-110.
NOTE: Undergraduate students must achieve a C or better in order to use this course to satisfy the
pre-requisite for any subsequent Computer Science course.