UMBC CMSC 313, Computer Organization & Assembly Language, Fall 2001, 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), 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.

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 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 severely.


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.

Last Modified: 29 Aug 2001 14:19:02 EDT by Richard Chang
to Fall 2001 CMSC 313 Section Homepage