Courses/Computer Science/CPSC 355.W2014

Jump to: navigation, search

Computing Machinery I (Winter 2014)

Course entry page:

This course is an introduction to the principles and design decisions reflected in commodity computing architectures. It provides a gentle introduction to computer organization and to an assembly language; it presents these technical topics as not only a "computer language" to learn, but also an artifact that reflects design decisions.

It focuses on the Sparc and x86 machine platforms to ground the discussion in real technical detail.

The university calendar entry for CPSC355 describes the course as:

"An introduction to computing machinery establishing the connection between programs expressed in a compiled language, an assembly language, and machine code, and how such code is executed. Includes the detailed study of a modern CPU architecture, its assembly language and internal data representation, and the relationship between high-level program constructs and machine operations. "

This class is:

  • 1/3 about the architecture details itself (the ISA)
  • 1/3 about the execution environment details (the ABI)
  • 1/3 about the translation process from "high"-level source code to assembly (and thence to machine code)

Announcements, Policies, and Metadata

This section includes the syllabus, textbooks, course policies, grading scheme, midterm and file exam policies, and submission instructions.


This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email

Find our class page at:

Homework Assignments


Lecture Schedule

Please see the University Academic Calendar for important add/drop dates, holidays, etc.

Courses/Computer_Science/CPSC_355.W2014/Lecture Notes

Tutorial Schedule

Here is the (tentative) schedule of tutorial topics.


Project Demo Schedule

Here is the demo schedule for the term project


Links & Miscellaneous Resources

Random News and Links

Things We Won't Cover

  • compilation (i.e., high-level language to RTL or some IR like LLVM)
  • advanced caching
  • advanced superscalar pipelines, Tomosulo, scoreboards, etc.
  • in-depth circuit design, hardware languages (VHDL, Verilog, etc.)
  • OS topics