Introduction to Computer Systems, COMP-273

Winter 2023

Time

Room

Instructors

Teaching Assistants

Course Objectives

This course covers two major topics in computer systems: assembly language programming and the architecture of a CPU. Programmers are normally familiar with the computer only from a very high level. This is understood as manipulating the computer using an object oriented programming language. They are not aware of the many abstraction layers that hide the underlying structure and functions carried out by a computer. The computer's circuits, Operating System and machine language manage the underlying mechanics. This course peals back these layers of abstraction allowing the student to directly manipulate and study the engineering of some of the most important components of a computer. Our method of study will be two sided: On one side, we will look at the engineering of the computer's CPU, RAM and topics about the motherboard as a whole. On the other side, we will learn the MIPS assembly language, as a tool to interact with the internal components as directly as possible. We will use Logisim-evolution for logic simulation, and MARS as a MIPS simulator (see links below).

Primary learning outcomes

To get a clear understanding of how the CPU and RAM are built and function from the microcircuit and functional levels. To then use an actual assembly language that uses the microcircuits discussed in class.

Secondary learning outcome

To demystify the abstraction layers in a computer system and to take advantage of this knowledge in creating better software. The student will be able to intelligently discuss the internal workings of computers and produce solutions that take advantage of the built-in hardware of a machine.

Course Description

Topics to be covered include: Boolean algebra, digital circuit design, number representation, assembly programming (MIPS), floating point, I/O and interrupts, caches, virtual memory, and CPU Organization. Other topics may be visited where appropriate during the term.

Class Format

Teaching will be in person, with an overflow room to handle the large number of students registered.  While classes will be recorded, all students are strongly encouraged to attend and participate.  The class is being co-taught with the topics shared equally between both instructors.

Software

Logisim-evolution will be used for circuit simulation, and MARS will be used for simulating MIPS program execution.  See the software section on MyCourses content for more information.

Textbook

Patterson, David A. and Hennessy, John L., "Computer Organization and Design (MIPS Edition): The Hardware/Software interface" Morgan Kauffman Publishers.

You can use the 4th, 5th, or 6th edition.  The text is available in the McGill library, but you are strongly encouraged to get your own reference copy!

Other resources, such as handouts will be made available on MyCourses.

Evaluation

Exams

There will be two exams, worth a total of 50% of the final grade. The time and location of the midterm exam can be found in the MyCourses (date will be tentative at the beginning of the term).  The midterm is worth 20% of your grade.  Those who have a good reason for not writing the midterm (e.g., illness) will write a makeup midterm.  The Final exam will is worth 30% of your final grade. Practice problems, old midterms and final exams, and in some cases solutions will also be posted to MyCourses during the term.

Supplemental and Deferred exams

All courses with a final exam provide opportunity for supplemental or deferred exams in the case of failure or justified reason for missing the final exam.  See the university pages for more information.

Assignments

There will be four assignments during the term, covering logic, numbers, circuits, MIPS programming, and other topics related to the course. Assignments are worth a total of 50%.  First and third assignment will be worth 10%, while second and fourth will be worth 15% and will involve a slightly larger effort. All work must be your own. Show your work. You have the right to submit in English or in French.

Assignment submission

All assignments must be submitted through MyCourses (do not mail any attachments to TAs or profs).   See tentative course schedule for assignment availability and due dates.

Late Submissions

Assignments submitted late will be penalized 10%.  Work will be accepted up to 3 days late.  See this as a minimal penalty with encouragement to take your time to finish properly with a 10% penalty should you need the extra time.  No work will be accepted after three days. This is a HARD deadline, after which a mark of zero will be assigned. Late work must be submitted to MyCourses.  Do not submit any work by e-mail.

Penalty Waiver

The late penalty can be waived once during the term.  Please use this for any sickness, time management, or other personal reasons. Simply include a "penalty-free.txt" file with your submission (i.e., there is no need to ask the instructor).

Re-Grading

Mistakes can occur when grading.  Requests for regrading should be sent to the TA who marked the assignment within 7 days from the date that the grade was made available.

Academic Integrity

Collaboration is encouraged but your discussions should be public in the sense that anyone including the professor should be allowed to listen in. Assignments are original works created by the student alone. You are permitted and encouraged to have conversations with other students concerning the contents of the assignment questions and how to do them, but your work must be original and no discussion about your work can occur with other students or online resources.

If two or more assignments are found to be identical (or portions of assignments) then all parties will lose points. This includes the student who permitted their assignment to be copied. This includes written solutions, software source code, and online resources. The students will be reported to the university plagiarism department.

It can be a good idea to use source code version control, such as github, but it is not permitted for your projects to be publicly visible as this facilitates plagiarism.

Co-Requisites

Anyone who has not taken COMP-206 (and is not taking it this term) will be automatically deregistered from COMP-273.

Communication

My Courses

All official communication, including announcements, lecture material, assignments, grades will be found on My Courses.

Course Discussions

The online free tool, ED, is used as our course discussion board. Use this as your primary communication medium, since your questions are public and can help other students.

Private Email:

The professor and TAs can be contacted by email, but use of this communication channel should be only for personal queries. For example, if you have a problem with your grade then email the TA who graded you directly, do not email the prof and do not use the course email address.  Should you not be satisfied after contacting a TA with respecting re-grading, you would then contact the profs.

Appointments

Please email the professor directly to book an appointment outside office hours.