COMP-206: Introduction to Software Systems. Anyone who has not taken COMP-206 (and is not taking it this term) will be automatically deregistered from COMP-273.
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 SPIM as our MIPS simulator (download link on WEB CT).
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.
Topics to be covered include: boolean algebra, digital circtuit 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.
Getting Started Tutorials
There will be two tutorials at the beginning of the term to help you get started with Logisim for digital circuit design, and SPIM, the MIPS simulator. See the announcement of dates on WebCT.
Assignments, Exercises, and Exams
There will be four assignments during the term, covering logic, numbers, circuits, MIPS programming, and other topics related to the course. All work must be submitted by WebCT. Show your work. You have the right to submit in English or in French. Assignments submitted late will penalized 10%. No work will be accepted after two days (i.e., a mark of zero will be assigned). Practice problems, old midterms and final exams, and in some cases solutions will also be posted to WebCT during the term.
There will be two exams, worth a total of 75% of the final grade. The midterm exam will take place in class on Tuesday October 18th and is worth 25% of your grade. The Final exam will take place during the final exam period and is worth 50% of your final grade. .
The following course textbook is recommended, and is available for purchase at the McGill bookstore.
These books, along with the main course textbook will be on reserve in the Schulic Library. Other resources, such as lecture notes and handouts, will be made available on WebCT.
McGill University values academic integrity. Therefore, all students must understand the meaning and consequences of cheating, plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures. See www.mcgill.ca/integrity for more information, as well as www.mcgill.ca/integrity/studentguide, the Student Guide to Avoid Plagiarism.
It should be noted that, in accordance with article 15 of the Charter of Students' Rights, students may submit examination answers in either French or English.
According to Senate regulations, instructors are not permitted to make special arrangements for final exams. Please consult the Calendar, section 184.108.40.206, General University Information and Regulations at www.mcgill.ca. Special arrangements in emergencies may be requested at your Student Affairs Office. If you have a disability, please advise the Office for Students with Disabilities (398-6009) as early in the term as possible so that we can provide appropriate accommodation to support your success.
In the event of circumstances beyond the instructor's control, the evaluation scheme as set out in this document might require change. In such a case, every effort will be made to obtain consensus agreement from the class.
Additional policies governing academic issues which affect students can be found in the Handbook on Student Rights and Responsibilities, Charter of Students' Rights.