UMBC CMSC 313, Computer Organization & Assembly Language,
Fall 2002, Section 0101
- Principles of Computer Architecture, Murdocca and Heuring,
- Linux Assembly Language Programming, Neveln, Prentice-Hall, 2000.
You should have mastered the material covered in the following courses:
CMSC 202 Computer Science II and CMSC 203 Discrete Structures. In
particular, we will assume that you have had extensive programming
experience in C/C++. Also, you must be familiar with and be able to work
with truth tables, Boolean algebra and modular arithmetic.
The purpose of this course is to introduce computer science majors to
computing systems below that of a high-level programming language. The
material covered can be broadly separated into the categories of
assembly language programming and computer organization. Under the
heading of assembly language programming students will be introduced to
the i386 instruction set, low-level programming, the Linux memory
model, as well as the internal workings of compilers, assemblers and
linkers. Topics under computer organization include digital logic
design (combinational circuits, sequential circuits, finite state
machines) and basic computer architecture (system bus, memory hierarchy
and input/output devices). A secondary goal of this course is to
prepare computer science majors for CMSC 411 Computer Architecture.
Your final grade will be based upon 5 homework assignments (20%
total), 3 short programming assignments (12% total), 1 long
programming assignment (8%), 3 circuit simulation exercises (12%
total), a midterm exam (24%) and a final exam (24%). Your grade
is given for work done during the semester; incomplete grades
will only be given for medical illness or other such dire
You are expected to attend all lectures. You are responsible for
all material covered in the lecture as well as those in the assigned
reading. However, this subject cannot be learned simply by listening
to the lectures and reading the book. In order to master the
material, you need to spend time outside the classroom on the
programming assignments, simulation exercises and homework
There will be homework or exercises due on most weeks. Homeworks
are due at the beginning of lecture. Exercises and projects turned
in via online submissions are due 1 minute past 11:59pm of the due
date. With one exception, late homework, exercises and
programming assignments will not be accepted --- this is to
allow for timely grading and discussion of the solutions. The
exception is that each student may submit one assignment (of any
kind) up to one week late during the semester.
You are allowed to discuss the homework assignments with other
students. However, exercises and projects must be completed by
individual effort. Furthermore, you must write up your homework
independently. This means you should only have the
textbooks and your own notes in front of you when you write up your
homework --- not your friend's notes, your friend's homework or
other reference material. You should not have a copy of someone
else's homework or project under any circumstance.
For example, you should not let someone turn in your homework.
Cases of academic dishonesty will be dealt with severely.
The exams will be closed-book and closed-notes. The date for the
midterm exam is Tuesday, October 22. The final exam will cover the
material from the second part of the course. The date and time of
the final exam is Thursday, December 12 10:30am to 12:30pm.
This course is a replacement for CMSC 211 Assembly Language
Programming and CMSC 311 Computer Organization. Students who have
taken either CMSC 211 or CMSC 311 previously should not take this
class. Furthermore, computer science majors who take this class
must also take CMSC 411 Computer Architecture to satisfy the
requirements of a BS degree in computer science. CMSC 313 by itself
will not be sufficient for graduation.
20 Aug 2002 11:10:48 EDT
to Fall 2002 CMSC 313 Section Homepage