Elements of Computer Systems
94.574, Fall 2000
M & W, 5:30-7:00 pm
Instructor: Thomas Kunz
ME 4474, tkunz@sce.carleton.ca


This course is designed as an introductory tutorial and survey, to enable those without previous formal training in computers/software to participate in the computer-oriented courses offered by this department. It is also recommended for persons other than full-time graduate students who find themselves drifting towards a career in computing, although their formal education is in some other discipline.
 

The purpose of the course is to give a foundation in computer systems software organization. It is intended for those who are familiar with programming in high-level languages (C, C++, Pascal, Java, etc.) but have little knowledge of the principles of Computer Science or Computer Systems. Recent graduates of Computer/Electrical Engineering or Computer Science degree programs should not take it. Such students would normally proceed directly to courses for which 94.574 is a prerequisite.
 

Resources: There is no single textbook that adequately covers such a diverse range of topics (and buying multiple textbooks is clearly not very appealing financially). I therefore made copies of my set of transparencies available as course notes and they are available in the bookstore. I will arrange for some books to be available on reserve in the library. Here are some textbooks that are helpful for various parts of the course:

·Greg W. Scragg, Computer Organization - A Top-Down Approach, McGraw-Hill 1992, ISBN 0-07-05843-4.

·Leland L. Beck, System Software: An Introduction to Systems Programming, 3rd edition, Addison-Wesley 1997, ISBN 0-201-42300-6.

·William Stallings, Computer Organization and Architecture: Designing for Performance, 4th edition, Prentice Hall, 1996, ISBN 0-13-359985-X.
 

There exists a course newsgroup, carleton.courses.94574f. To the best of my knowledge, these course newsgroups are not exported outside Carleton University (to U of Ottawa, for example), so I will refrain from using this resource. All information/announcements will be posted on the course homepage at http://kunz-pc.sce.carleton.ca/sce574/, (marks, assignments, solutions, etc.).
 

Marking Scheme: There will be three assignments, each worth 15% of the final mark, a midterm exam worth 20% and a final exam worth 35%. To pass the course (in addition to obtaining an appropriate overall mark), all assignments must be completed, and the final exam must be passed. Students who do not write the final exam have the option to write an exam at a later point in time. This rule, aimed at students who are sick during exam periods, apparently led to some abuse by students who strategically choose which exam to write when. In an effort to be fair to students who cannot write the exam for a legitimate reason, while at the same time discouraging the abuse of this rule, the following policy is being adopted in the Engineering Faculty: 

The Faculty no longer allows supplemental examinations. Students taking deferred examinations have several more months to study than their colleagues. Also they have a less-crowded examination schedule. Thus it is only fair to the majority of students to expect a substantially better performance on the deferred examination than on the final.

This is the policy that will also apply to this course. Note that the above formulation leaves it up to the instructor whether the deferred examination will be harder or the marking scheme will be more rigorous. 
 

Due Dates: There will be three assignments. Right now, I plan to schedule them as follows. Assignment 1 will be handed out on September 22 and is due three weeks later (before the beginning of class). Assignment 2 will be handed out on October 25 and is due two weeks later, Assignment 3 will be handed out November 15 and is due two weeks later. These dates are subject to change, depending on the progress in class. I will not accept late assignments, if you do not hand in on time, you will receive a mark of 0. However, depending on the circumstances, you might not fail the course. If you foresee any problem with an assignment deadline, please come and talk to me early, in particular before the assignment deadline. The midterm will be in class, on October 23, the final exam will be in class on December 4 (the last day of classes in the Fall term).
 
Handed Out
Due
Weight
Assignment 1
September 27
October 18
15 %
Assignment 2
October 25
November 8
15 %
Assignment 3
November 15
November 29
15 %
Midterm Exam
October 23
20 %
Final Exam
December 4
35 %

 

Cheating: Collaboration on assignments is not permitted. Suspected collaboration will be investigated and will be reported to the Dean of Engineering, see also General Regulation 14. Cheating covers a wide range of offences, including submitting another student’s work as your own solution or providing solutions to assignments that are copied from publicly available material without proper citation.
 

Outline: The following is a tentative outline of the course; it might change, based on time constraints, student interest, and my ability to stay within the time frame. It is slightly changed from the calendar description, to update the course content, to accommodate newer developments in computer systems organization, and to touch on areas of computer systems organization that are of particular interest to local industry. I do not expect that we will cover all topics; in particular the last topic should be viewed as optional:

1.Classes of systems and their major features

2.Basics of computer architecture

3.Assembler language

4.High-level languages and data structures

5.Algorithms and algorithm analysis 

6.Compilers and compilation

7.Operating systems

8.Computer networks (optional)