UMBC CMSC 313, Computer Organization & Assembly Language, Spring 2002, Section 0101

Course Description



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 programming exercises (12% total), 1 programming project (8%), 3 circuit simulation exercises (12% total), a midterm exam (20%) and a final exam (28%). Your grade is given for work done during the semester; incomplete grades will only be given for medical illness or other such dire circumstances.

Lecture Policy.

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.

Homework Policy

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. Late homework, exercises and projects will not be accepted — this is to allow for timely grading and discussion of the solutions.

Academic Integrity

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 Thursday, March 21. The final exam will be comprehensive and cover the material from the entire course. The date and time of the final exam is Thursday, May 16 10:30am to 12:30pm.

Advising Note

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.

Last Modified: 25 Jan 2002 16:18:15 EST by Richard Chang
to Spring 2002 CMSC 313 Section Homepage