Announcements
- April 17: Written 13 Out! (no due date)
- April 05: Lights Out due, C0VM posted!
Course Overview
Title: Principles of Imperative Computation
Description: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.
Units: 12
Co-requisites: 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.
Logistics
Instructors
Prof. Saquib Razak, srazak@cmu.edu, CMUQ 1018, 4454-8553, Office hours: Sunday, 10:00AM - 12:00PM
Teaching Assistants
Tamim Jabban,
tamim@cmu.edu, CMUQ 1004, 4454-8496,
Office hours:
Sunday: 10:00 AM to 12:00 PM
Course Assistants
Julian Sam, julians@qatar.cmu.edu, ARC Maimoon Siddiqui, maimoons@andrew.cmu.edu, ARC Ishaq Yousef Haj Hasan, ihajhasa@andrew.cmu.edu, ARC Office Hours Sunday: 11.30am to 1.30pm 4.00pm to 5.30pm Monday: 10.30am to 12.30pm 4.00pm to 7.00pm Tuesday: 11.30am to 12.30pm 4.00pm to 5.00pm Wednesday: 11.30am to 12.30pm 5.30pm to 6.30pm Thursday: 10.00am to 12.00pm 3.00pm to 6.00pm Saturday: 1:00pm to 2:00pm 3.00pm to 4:00pmClass hours
Lectures: Monday & Wednesday, 01:30 - 02:50 PM, Room 1190
Labs: Tuesday, Time: 1:30 - 2:20 PM, Room 2035
Recitations: Thursday, Time: 1:30 - 2:20 PM, Room 2035
Grading
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.
Exams 50%
- Two 125-point midterms and a 250-point final
Homework 45%
- written assignments
- one-week programming assignments
- 2 two-week programming assignments with a checkpoint
Labs and Quizzes 5%
- Labs and quizzes are mostly for your own improvement, but they will be given a small number of points