15-122 Principles of Imperative Computation, Fall 2014

Course Information, Fall 2014

Lecture 1: Tuesday and Thursday, 9am-10:20am, GHC 4401
Instructor Robert Simmons (GHC 9101)
Lecture 2: Tuesday and Thursday, 10:30am-11:50am, WEH 7500
Instructor Tom Cortina (GHC 4117)
Recitations: A (9:30-10:20am) Mon GHC 5205, Fri SH 222 Anna, Wen Jay, Brandon
B (10:30-11:20am) Mon GHC 5201, Fri WEH 5310 Steven, Eileen, Brendan
C (11:30am-12:20pm) Mon GHC 5205, Fri WEH 5310 Steven, Lilli, Brendan
D (12:30-1:20pm) Mon GHC 5201, Fri WEH 5310 Felipe, Matt, Tian
E (1:30-2:20pm) Mon GHC 5205, Fri WEH 5310 Cortney, Michael, Joey
F (2:30-3:20pm) Mon GHC 5201, Fri SH 214 Stephen, Shyam, John
G (2:30-3:20pm) Mon GHC 5205, Fri GHC 4301 Yiyi, Michael, Joey
H (3:30-4:20pm) Mon GHC 5201, Fri SH 222 Stephen, Jason, Brandon
I (9:30-10:20am) Mon GHC 5201, Fri WEH 4623 Ashish, Brandon
J (10:30-11:20am) Mon GHC 5205, Fri GHC 4301 Nivedita, Anna, Karim
K (11:30am-12:20pm) Mon GHC 5201, Fri GHC 4301 Nivedita, Matt, John
L (12:30-1:20pm) Mon GHC 5205, Fri GHC 4301 Cortney, Lilli, James
M (1:30-2:20pm) Mon GHC 5201, Fri GHC 4301 Felipe, Aaron, Andrew
N (3:30-4:20pm) Mon GHC 5205, Fri GHC 4301 Yiyi, Shyam, Andrew
O (4:30-5:20pm) Mon GHC 5201, Fri GHC 4301 Jason, James
Admin: Barb Grandillo (GHC 6010)
TAs: See Staff page
Office Hours: (Note - No office hours on Thursdays)
Monday 1:00 to 3:00 p.m. (GHC 4117, Professor Cortina's office)
4:30 to 6:30 p.m. (GHC 4102)
Tuesday 4:30 to 8:30 p.m. (GHC 4301, with overflow to GHC 4101)
Wednesday 4:30 to 8:30 p.m. (GHC 4215, with overflow to GHC 4211)
Friday 2:30 to 4:30 p.m. (GHC 9101, Professor Simmons's office)
4:30 to 8:30 p.m. (GHC 4215)
Saturday 4:30 to 6:30 p.m. (GHC 4211)
Sunday 4:30 to 7:30 p.m. (GHC 4211)
In addition, Academic Development has walk-in tutoring sessions for 15-122 on Sunday, Monday, and Tuesday nights from 8:30-11:00pm in the Mudge Reading Room.


This course teaches imperative programming and methods for ensuring the correctness of programs. It is intended for students with a basic understanding of programming (variables, expressions, loops, arrays, functions). Students will learn the process and concepts needed to go from high-level descriptions of algorithms to correct imperative implementations, with specific applications 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.

Either 21-127 or 15-151 is a co-requisite (must be taken before or in the same semester). This course prepares students for 15-213 and 15-210.

More information about the course objectives can be found in the syllabus.


The course is graded on a 1000-point scale. Absent exceptional circumstances, scores of 900 and above will be given an A, scores of 800 and above will be given a B, etc. Scores below these thresholds may receive the higher grade based on participation and/or exam performance on the sole discretion of the instructor.

Style re-grading can be done by any TA. All other grading disputes or requests for re-grading should (policy TBA).

Valid CSS! Valid XHTML 1.0 Strict