• Course Number: 01:198:211
  • Instructor: Yipeng Huang, David Menendez
  • Course Type: Undergraduate
  • Semester 1: Fall
  • Semester 2: Spring
  • Semester 3: Summer
  • Credits: 4
  • Description:

    This course covers the fundamental issues in the design of modern computer systems, including the design and implementation of key hardware components such as the processor, memory, and I/O devices, and the software/hardware interface.

  • Syllabus: Visit Website
  • Instructor Profile: Huang, Yipeng, Menendez, David
  • Prerequisite Information:
    01:198:112 or 14:332:351. Credit not given for this course and 14:332:331.

    - A grade below a "C" in a prerequisite course will not satisfy that prerequisite requirement.

  • Course Links: 01:198:112 - Data Structures
  • This course is a Pre-requisite for the Following Courses: 01:198:214 - Systems Programming, 01:198:314 - Principles of Programming Languages, 01:198:352 - Internet Technology, 01:198:411 - Computer Architecture II, 01:198:415 - Compilers, 16:198:519 - Operating System Theory
  • Topics:
    C programming
    Data representation and computer arithmetic
    Assembly language programming
    Boolean algebra
    Basic digital logic design
    Processor design
    Cache design
    Main memory design
  • Expected Work: 3-4 programming assignments, homework assignments, and class participation.
  • Exams: 1-2 midterm exams and a final exam.
  • Learning Goals:

    Computer Science majors ...

    • will be prepared to contribute to a rapidly changing field by acquiring a thorough grounding in the core principles and foundations of computer science (e.g., techniques of program design, creation, and testing; key aspects of computer hardware; algorithmic principles).
    • will acquire a deeper understanding on (elective) topics of more specialized interest, and be able to critically review, assess, and communicate current developments in the field.
    • will be prepared for the next step in their careers, for example, by having done a research project (for those headed to graduate school), a programming project (for those going into the software industry), or some sort of business plan (for those going into startups).