UMBC CMSC 313, Computer Organization & Assembly Language, Fall 2001, 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), the 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 (15% total), 4
projects (1% for Project 0 and 8% each for Projects 1-3 for a total of
25%), a midterm exam (25%) and a final exam (35%). Your grade is given for
work done during the semester; incomplete grades will only be given for
medical illness or other such dire circumstances.
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 projects and on the homework assignments.
There will be a total of 5 homework assignments. Homework is due at the
beginning of lecture --- this is so you do not work on your homework during
lecture. Late homework will not be accepted --- this is to allow for timely
grading and discussion of the homework solutions.
You are allowed to discuss the homework assignments with other students.
However, programming projects must be completed by individual effort. (See
separate handout on Project Policy.) 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
The exams will be closed-book and closed-notes. The date for the midterm
exam is Thursday, October 25. The final exam will be comprehensive and
cover the material from the entire course. The date and time of the final
exam is Tuesday, December 18 10:30am to 12:30pm.
Circuit Emulation Software
Several possibilities for circuit emulation software are still being
evaluated. This software will be used in the digital logic portion of the
course. You may be required to purchase software for your homework
assignments. An announcement will be made at a later date.
29 Aug 2001 14:19:02 EDT
to Fall 2001 CMSC 313 Section Homepage