CMSC313, Computer Organization & Assembly Language Programming, Spring 2013
Course Description
Textbooks
- Essentials of Computer Organization and Architecture, third
edition, by Linda Null & Julia Lobur. Jones & Bartlett Learning,
2010. ISBN: 1449600069.
- Assembly Language Step-by-Step: Programming with Linux, third
edition, by Jeff Duntemann. Wiley, 2009. ISBN: 0470497025.
Catalog Description
This course introduces the student to the low-level abstraction of a
computer system from a programmer's point of view, with an emphasis on
low-level programming. Topics include data representation, assembly
language programming, C programming, the process of compiling and
linking, low-level memory management, exceptional control flow, and
basic processor architecture.
Prerequisites
You should have mastered the material covered in the following courses:
CMSC 202 Computer Science II and CMSC 203 Discrete Structures.
You need the programming experience from CMSC202. Additional experience
from CMSC 341 Data Structures would also be helpful. You must also
be familiar with and be able to work with truth tables, Boolean algebra
and modular arithmetic.
Objectives
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, C programming and digital logic. These
topics prepare the students to take CMSC411 Computer Architecture and
CMSC421 Operating Systems which are required courses for the computer
science major.
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.
C programming topics will concentrate on dynamic memory allocation.
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).
Your final grade will be based upon 5 homework assignments (15% total)
and 8 programming assignments (40% total). There will also be a midterm
exam (20%) and a final exam (25%). However, if some homework or
programming assignments are canceled and not made up, the proportion of
your grade from homework, projects and exams will remain the same. For
example, if a programming assignment is canceled, then each programming
assignment would be worth 5.714% (instead of 5%). That keeps programming
assignments at 40% of your final grade.
Your final letter grade is based on the standard formula:
0 ≤ F < 60, 60 ≤ D < 70,
70 ≤ C < 80, 80 ≤ B < 90, 90 ≤
A ≤ 100
Depending upon the final distribution of grades in the class, there
may be a curve in your favor, but under no circumstances will grades be
curved downward.
Your grade is given for work done during the semester;
incomplete grades will only be given for medical illness or other dire
circumstances.
Due Dates
There will be a homework assignment or programming assignment due every week of class (except the week after Spring Break). Written homework assignments are due at the beginning of lecture. Programming assignments and logic simulations are submitted online and are due at 11:59pm of the due date.
Late Assignments
Assignments turned in one day late (either submitted online or in person) will incur a 5% penalty. Assignments turned in two days late will be penalized 10%. Those three days late, 15%. For example, for a programming project due on Tuesday at 11:59pm:
Submitted: | Penalty: |
Tuesday 11:59pm | 0% |
Wednesday 11:59pm | 5% |
Thursday 11:59pm | 10% |
Friday 11:59pm | 15% |
after Saturday 12:01am | 100% |
Late assignments will not be accepted after 3 days. However, each student may submit one assignment (of any kind) up to one week late without penalty using his/her one time late pass.
Academic Integrity
You are allowed to discuss the homework assignments with other students.
However, circuit simulation exercises and programming projects must be
completed by individual effort. (See the Academic Integrity 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.
Further information is available in the UMBC
Undergraduate Student Academic Conduct Policy.
Exams
The midterm exam has been scheduled for Thursday, March 14. The final exam is on Tuesday, May 21. For Section 01 (TuTh 10am), the time of the final exam is 10:30am – 12:30pm. For Section 02 (TuTh 1pm), the final exam is 1pm – 3pm.
Last Modified:
22 Jul 2024 11:28:11 EDT
by
Richard Chang
to Spring 2013 CMSC 313 Homepage