CMU 15-112: Fundamentals of Programming and Computer Science
Carnegie Mellon University
Summer 2021 (N21)

Units 12
Department Computer Science
Prerequisites None
Description 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. We will also target numerous deployment scenarios, including standalone programs, shell scripts, and web-based applications. 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.
At the end of the course, students should be able to:
  • 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
  • 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
  • Design and write a substantial program in Python with minimal guidance
See the syllabus for more details! Unless otherwise stated, all times in all course-related documents and correspondence will be in Pittsburgh time (EDT).

You can find the link to these events in the 112 Zoom links spreadsheet

  Days Lecturers Time
Lecture 1 M/Tu/W/Th/F Mike Taylor (mdtaylor) 9:00am - 10:20am
Lecture 2 M/Tu/W/Th/F Sara Liang (saralian) 12:00pm - 1:20pm

   Days TAs Time
    Section A M/Tu/W/Th/F Nancy (nancykua) and Jia (runjiap) 2:00pm - 2:50pm
    Section B M/Tu/W/Th/F Joyce (btruong) and Kaajal (kaajalg) 2:00pm - 2:50pm
    Section C M/Tu/W/Th/F Aaron (aaronto) and Adi (akambham) 3:40pm - 4:30pm
    Section D M/Tu/W/Th/F Sidney (sidneyw) and Jason (jstentz) 5:10pm - 6:00pm
    Section E M/Tu/W/Th/F Alexis (aaxon) and Nicole (xinyixia) 5:10pm - 6:00pm
    Section F M/Tu/W/Th/F Rebecca (rmanley) and Zoe (zrudnick) 5:10pm - 6:00pm
    Section G M/Tu/W/Th/F Joe (jritze) and Keren (kerenh) 5:10pm - 6:00pm
    Section H M/Tu/W/Th/F Adhvik (akanagal) and Arjan (abedi) 10:00pm - 10:50pm
    Section I M/Tu/W/Th/F Alex (alexx) and Saumya (ssbhanda) 10:00pm - 10:50pm

Instructor Open Office Hours:
  • These are zoom meetings with no breakout rooms and no private discussions.
  • You can find the link to these events in the 112 Zoom links spreadsheet.
  • Times:
    • Mike Taylor (mdtaylor): Mon/Wed/Fri, 2pm to 3pm
    • Sara Liang (saralian): Tue/Thu, 2pm to 3pm

TA Office Hours:
Mon Tue Wed Thu Fri Sat Sun
9pm-10pm 9pm-10pm 9pm-10pm 9pm-10pm 9pm-10pm 11am-12pm 11am-12pm

Large-Group Sessions:
Thu 8:00pm-9:00pmQuiz Solutions
Sat 8:00pm-9:30pmQuiz Prep
M-F 6:30pm-7:20pmSpicy Recitations