15-122 Principles of Imperative Computation

Summer 2011
William Lovas
Lecture, MTWRF 3:00-4:20, GHC 5222
10 units

For students with a basic understanding of programming (variables, expressions, loops, arrays, functions). Teaches imperative programming and methods for ensuring the correctness of programs. Students will learn the process and concepts needed to go from high-level descriptions of algorithms to correct imperative implementations, with specific application to basic data structures and algorithms. Much of the course will be conducted in a subset of C amenable to verification, with a transition to full C near the end. This course prepares students for 15-213 and 15-210.

What's New?

  • (Tue 06/28) Exam 3 and a sample solution have been posted.
  • (Wed 06/22) We've released some test cases for the C0VM that might serve to expose bugs you haven't found in your own tests, or inspire you to think of other test cases you might want to write. (These tests cover some interesting edge cases, but they are by no means exhaustive!)
  • (Wed 06/22) Lecture notes on Tries and Binary Decision Diagrams are now available. Although you won't have a homework on this material, it will be on Exam 3!
  • (Thu 06/16) Assignment 8, the C0VM, is now available, including starter code. Starting early and chipping away little-by-little is the best way to ensure success: don't put this assignment off! It is due after our last lecture, on Thursday, 06/23.
  • (Wed 06/15) Several C language resources have been posted to the Resources page.
  • (Wed 06/15) Exam 2 and a sample solution have been posted.
  • (Tue 06/14) Assignment 7 is out, along with the requisite starter code. It is due Friday, 06/17 -- but homework 8 will come out Thursday, 06/16! Lecture notes on Polymorphism, Memory Management, and Generic Data Structures (not yet taught in class) are available, and may come in handy for this assignment.
  • (Fri 06/10) Assignment 6 is out, along with the requisite starter code. Homework 6 covers binary search trees, AVL trees, and programming with priority queues, and it is due Monday, 06/13.
  • (Thu 06/09) Notes for Lecture 16 (Priority Queues) and Lecture 17 (Binary Search Trees and AVL Trees) are available.
  • (Tue 06/07) Notes for Lecture 14 (Interfaces) and Lecture 15 (Priority Queues) are available.
  • (Mon 06/06) Assignment 5 is out, along with the requisite starter code. It is due Thursday, 06/09.
  • (Wed 06/01) Assignment 4 is out, along with the requisite starter code. It is due Monday, 06/06. (Note that the hw4 programming part is a bit more involved than usual, and it will require careful reading. Start early!)
  • (Wed 06/01) Exam 1 and a sample solution have been posted.
  • (Fri 05/27) Assignment 3 has been released, along with starter code. It is due Wednesday, 06/01. (You may find upcoming lecture notes 09-queues.pdf and 10-stacks.pdf useful for getting started on this assignment.)
  • (Tue 05/24) Reminder: Quiz 1 is open on Blackboard until 7 pm tonight — don't forget to take it!
  • (Tue 05/24) Notes for Lecture 5 (Linear Search) and Lecture 6 (Binary Search) are available.
  • (Mon 05/23) Assignment 2 has been released, along with starter code. It is due Thursday, 05/26.
  • (Thu 05/19) Assignment 1 has been released, along with starter code. It is due Monday, 05/23.
  • (Tue 05/17) Welcome to the Summer '11 edition of the course!
  • Spring 2011 version of this course

Course Material

Schedule Lecture and recitation schedule, readings, and code
Assignments Details of assignments, due dates, and policies
Resources Additional course resources

Course Information

Lectures MTWRF 3:00-4:20, GHC 5222
Textbook There is no course textbook
Lecture notes and other resources will be provided
Recitations TWR 12:00-12:50, GHC 5222 (occasionally GHC 5201 for lab work)
Credit 10 units
Grading 10% Quizzes, 45% Exams, 45% Assignments
Assignments There are 8 assignments worth a total of 450 points
Quizzes There are 3 quizzes worth a total of 100 points
Quizzes will be taken online on Blackboard
Exam 1 150 points, Fri, May 27 during lecture time
Exam 2 150 points, Fri, Jun 10 during lecture time
Exam 3 150 points, Fri, Jun 24 during lecture time
All exams closed book, one double-sided sheet of notes permitted
Home http://www.cs.cmu.edu/~fp/courses/15122-s11/
Blackboard http://www.cmu.edu/blackboard/
Used only for tracking of grades and quizzes
Newsgroup academic.cs.15-122
Directory /afs/andrew.cmu.edu/course/15/122/


  William Lovas
Contact wlovas@cs
Office GHC 9110
Office Hours Wed, Fri 4:30-6:30

Teaching Assistant

  Zach Sparks
Contact zsparks@andrew
Office Hours Mon, Fri 12:00-3:00
  Wed 5:00-7:00
Location POP Commons, GHC 9 (from elevator, turn left twice,
and proceed down corridor past central lightwell)

[ Home | Schedule | Assignments | Resources ]
[ Blackboard | academic.cs.15-122 ]

Frank Pfenning