Carnegie Mellon University Website Home Page
Summer 2015  |  Session 2

General Information

About the Course

A technical introduction to the fundamentals of 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 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: students must achieve a C or better in order to use this course to satisfy the pre-requisite for any subsequent Computer Science course.

Learning Outcomes

Upon the successful completion of this course, students will be able to:

  • write medium-sized (couple-hundred line) programs in Python to implement a solution to a specified problem
  • decompose the solution into appropriate functions using top-down design
  • use sequential, conditional, and loop statements where appropriate in solving a programming task
  • understand and use Python strings, lists, tuples, and dictionaries
  • write graphics-based programs and animations
  • understand and use recursive functions
  • understand the rudiments of efficiency (Big-O)
  • develop a sense of proper programming style and pro-active testing

For a detailed sequence, see the lecture schedule.

Meeting Times

June 29 - Aug 07
Mon, Tue, Wed, Thu, Fri
9:00am - 10:20am
GHC 4215


none (other than a willingness to work hard!)


There is no course textbook. Lecture notes and other resources will be provided.

The following textbook is recommended for 15-112:

Exploring Python
by Timothy Budd
Publisher: McGraw-Hill (2009)
ISBN: 978-0073523378