15-122 Principles of Imperative Computation


Course Level:UndergraduateUnits: 10Special Permission Required: No

Frequency Offered: Generally offered every semester - confirm course offerings for upcoming semesters by accessing the university Schedule of Classes.

Course Relevance (who should take this course?): For students with a basic understanding of programming and a desire to learn more advanced CS topics.

Course Website: http://www.cs.cmu.edu/~15122/home.shtml

Key Topics:Background Knowledge:Assessment Structure:
  • Reasoning about code:
    • contracts, invariants, interfaces
  • Basic Data Structures and Algorithms:
    • Hash Tables, BST, Linked Lists, Graphs
  • Learn C programming language
  • Bit Manipulation
  • Complexity Analysis
  • Memory

Basic programming knowledge (variables, expressions, loops, arrays, functions)

Sample class notes:

Sample Assignment: None provided

  • 24 HW assignments (45%)
  • Labs and Quizzes (5%)
  • 2 Midterms (25%)
  • Final (25%)

Sample Exam: None provided

Sample Lecture Recording: Typically no recorded lectures

Most Recent Syllabus: 

Course Goals/Objectives:
  • Write imperative that is correct by design
  • Learn about some fundamental concepts in Computer Science (abstraction, correctness, complexity, modularity)
  • Learn about a few basic data structures. Develop experience writing code in C
Learning ResourcesPre-reqs, Cross list, RelatedNotes
  • Piazza
  • Gradescope
  • Autolab
  • online lecture notes (no textbook)
  • C0 programming language and documentation
  • C programming language
  • Prerequisites Required: AP Computer Science Exam, 15-112
    • Minimum Grades in Prereqs:
      5 on AP CS Exam, C in 15-112
    • Corequisites: 15-151, 21-127
  • Anti-requisites: n/a
  • Cross-Listed: n/a
  • Substitutes: None
  • Related Courses: 15-110
  • Reservations: None
Department Website:College Website:Updated November 2017
https://www.csd.cs.cmu.eduhttps://www.cs.cmu.edu/ Back to Course Profile List