CMU 15-112, Fall 2022

Fundamentals of Programming and Computer Science
Carnegie Mellon University




None. Course notes included on course website.

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: 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.

At the end of the course, students should be able to:

1) Write clear, robust, and efficient code in Python using:

  • sequential, conditional, and loop statements
  • strings, lists, tuples, sets, and dictionaries
  • objects and classes
  • recursive approaches
  • graphics and interaction

2) Develop programs to effectively solve medium-sized tasks by:

  • employing modular, top-down design in program construction
  • demonstrating an effective programming style based on established standards, practices, and guidelines
  • proactively creating and writing test cases to test and debug code
  • applying computational problem-solving skills to new problems, especially in the student's home academic discipline
  • explaining and analyzing the efficiency of algorithms, particularly by predicting the Big-O running time of small pieces of code

3) Design and write a substantial (500-1500 line) program in Python with minimal guidance