Announcements
- April 22: Final Exam on April 25th @1:30 PM in Room 1199
- April 14: C0VM Checkpoint Due!
- April 12: Written C due, Written D posted!
- April 07: C0VM posted!
- April 05: Written C posted
- April 05: Written A/B due
- April 01: Lights Out 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
Prof. Mohammad Hammoud, mhhammou@qatar.cmu.edu, CMUQ 1006, 4454-8506, Office hours: Monday & Wednesday, 3:30PM - 5:00PM.
Teaching Assistant
Tamim Jabban, tamim@cmu.edu, CMUQ 1004, 4454-8407, Office hours: Sunday: 2:30 to 4:30 PM, and Wednesday: 4:00 to 5:30 PM.
Class hours
Lectures: Monday & Wednesday, 01:30 - 02:50 PM, Room 1199
Labs: Tuesday, Time: 1:30 - 2:20 PM, Room 2035
Recitations: Thursday, Time: 1:30 - 2:20 PM
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