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:
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)