15-112 Fundamentals of Programming & Computer Science


Course Level:Undergraduate Units: 12 Special Permission Required: No

Frequency Offered: Generally offered every semester - confirm course offerings for upcoming semesters by accessing the university Schedule of Classes.

Course Relevance (who should take this course?): Intro level course for students looking to learn about computer science with no previous background. However, the course is fairly rigorous so 15-110 may be a better option for those seeking a gentler introduction to computer science.

Key Topics: Background Knowledge: Assessment Structure:
  • Problem-Solving with Top-Down Design
  • Testing and Debugging
  • Python Language Constructs
  • Efficiency
  • Algorithm Analysis
  • Graphics and Animations
  • Object-Oriented Programming
  • Recursion

Most Recent Syllabus: 

This is an intro level course in Python and computer science practices and topics for students with little to no computing background. Some backround in mathematics is helpful.

Sample class notes:

Sample Assignment:

  • Homework (25%) made up of:
    • collaborative checks (1%)
    • collaborative labs (4%)
    • solo homeworks (20%)
  • Term Project (25%)
  • Quizzes (10%)
  • Midterm Exams (20%)
  • Final Exam (20%)

Sample Exam: Not provided

Sample Lecture Recording: Not Applicable, though the class notes (including the conditionals link on this page) include short videos on each topic.

Course Goals/Objectives:
  • Develop computational problem-solving skills using Python.
  • Produce clear, robust, and efficient code in Python exploiting top-down design and extensive function-level testing.
  • Use OOP and recursion where appropriate.
  • Describe the difference between programming and Computer Science, and gain exposure to some of the Big Ideas of Computer Science (e.g., Computability).
  • Analyze the efficiency of algorithms.
  • Design and implement event-based graphical animations.
  • Develop and write a substantial (500-1500 line) program in Python for a term project.

Course Website: https://www.cs.cmu.edu/~112/

Learning Resources: Pre-reqs, Cross list, Related: Notes:
  • Piazza
  • Autolab
  • A plethora of (mostly free) optional textbooks and online readings for Python are linked to on the course website.
  • Prerequisites Required: None
  • Minimum Grades in Prereqs: None
  • Corequisites: None
  • Anti-requisites: 15122, 15211, 15123, 15121
  • Cross-Listed: n/a
  • Substitutes: None
  • Related Courses: 15-110
  • Reservations: None
Department Website: College Website: Updated November 2017
https://www.csd.cs.cmu.edu http://www.cs.cmu.edu/  Back to Course Profile List