15-122 Principles of Imperative Computation, Summer 1 2015

Course Information, Summer 1 2015

Lectures: Monday-Friday, 10:30am-11:50am, GHC 4307
Lab: Usually Monday and Wednesday (see schedule), 3:00pm-4:20pm, GHC 5208/5210/5205
Recitation: Usually Tuesday and Thursday (see schedule), 3:00pm-4:20pm, GHC 4307
Instructor: Robert Simmons (Office Hours Monday-Wednesday, 11:50pm-12:50pm, in or outside GHC 4307)
Available for appointments Thursday 12:30pm-3:00pm, GHC 9101
TAs: See Staff page (Office Hours Monday-Saturday, Gates 5 Citadel Commons)


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.

21-127 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 or calculation errors in grading can be done by any TA. All other regrade requests should be hand-delivered to Barb Grandillo in GHC 6010 within ten days of the assignment being handed back, along with a hardcopy cover lever explaining in detail why you think there was a mistake in the grading.

Valid CSS! Valid XHTML 1.0 Strict