Announcements
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: TBD
Teaching Assistants
Eduardo Feo, efeoflus@andrew.cmu.edu, CMUQ 1005, Office hours: TBD
Course Assistants
Ammar Karkour, akarkour@andrew.cmu.edu, ARC Eui Suh Jeong, ejeong@andrew.cmu.edu, ARC Keivin Isufaj, kisufaj@andrew.cmu.edu, ARC Yusuf Saquib, yusufsaquib@cmu.edu, ARC Office Hours Sunday: 3.00pm to 4.00pm 5.00pm to 7.00pm Monday: 10.30am to 12.00pm 3.00pm to 4.30pm 5.30pm to 7.00pm Tuesday: 10.00am to 12.00pm Wednesday: 12.00pm to 1.00pm 3.00pm to 5.00pm Thursday: 2.30pm to 6.00pm Saturday: 12.00pm to 4:00pmClass hours
Lectures: Monday & Wednesday, 8:30 - 9:50 AM, Room 1190
Labs: Tuesday, Time: 9:00 - 9:50 AM, Room 2062
Recitations: Thursday, Time: 9:00 - 9:50 AM, Room 2062
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