CMSC313 Syllabus
Computer Organization & Assembly Language
Course Syllabus
Instructors:
Name: |
Hank Katz |
Gary Burt |
Office: |
ITE220 |
ITE225 |
Office Hours: |
TBA |
By appointment |
Telephone: |
(410) 455-2587 |
(410) 455-3298 (No voice mail) |
E-mail: |
katz@umbc.edu |
burt@umbc.edu |
Teaching Assistant:
TBA
Time and Place
Course |
Title |
Section |
Date and Time |
Room |
CMSC313 |
Computer Organization and Assembly Language |
0201 |
WF 2:00-3:15 pm |
SS003 |
CMSC313 |
Computer Organization and Assembly Language |
0301 |
TTh 11:30 am - 12:45 pm |
PHYS201 |
Textbook
- Logic and Computer Design Fundamentals, by Mano and Kime
- Linux Assembly Language Programming, by Neveln.
Course Web Page
http://www.csee.ubmc.edu/courses/undergraduate/CMSC313/fall04/burt_katz
Prerequisites
You should have mastered the material covered in the following courses:
- CMSC202 Computer Science II
- CMSC203 Discrete Structures
In particular, we will assume that you have had extensive programming experience with C/C++. Also, you must be familiar with
and 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 and computer organization.
Under the heading of assembly language 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
includes 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 CMSC411 Computer Architecture.
Required Software -- B^Squared Logic Software
UMBC has made an arrangement with Beige Bag Software to purchase
100 units at a cost of $30 per unit (regular price per unit is
$55). The software is available for either Windows or Mac.
You are to give the instructor a check for $30, made out to Beige
Bag Software, with a note specifying either Windows version
or Mac version. The software will be delivered to you in
the classroom.
Grading
Your final grade will be based upon:
programming homework assignments | 100 points each |
short programming assignments | 100 points each |
pop-quizzes | 5-15 points each |
circuit simulation exercises | 50 points each |
assembly mid-term exam | 150 points each |
assembly final exam | 300 points each |
digital logic mid-term exam | 150 points each |
digital logic final exam | 300 points each |
Your grade is given for work done during the semester; incomplete grades will only be given for medical illness or
other such dire circumstances. NOTE: Incompletes must be resolved within one semester or it will become a failing
grade (F), automatically.
Lecture Policy
Your are expected to attend all lectures. You
are responsible for all materials covered in the lecture as well
as those in the assigned reading. There is material in
the lectures that is not covered in the book and there is
material in the book not covered in the lecture! You can be
tested on both! 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 programming assignments, simulation
exercises and homework assignments. If you miss a lecture, you will need to
get the material you missed from a classmate!
Due Dates
There will be homework or exercises due on most weeks. Homework, exercises, projects are turned in via on-line submissions
are due by 11:59 of the due date.
Academic Integrity
You are allowed to discuss the homework assignments with other students. You are also encouraged to form study groups to
help you learn the material. 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.
Exams
The exams will be closed-book, closed-notes, and no calculators!
The date of the midterm and final will be announced at a later time.
The midterm will cover the material from the first part of the course and the final exam will cover the mater presented
after the midterm. (Note: If the material is presented twice, it could be on both exams.)
Course Schedule
The lecture schedule will be posted on the lecture schedule web page for this course. The dates are only tentative and
can be modified by the instructors.
Policy on Programming Projects and Exercises
Critical programming skills cannot be learned by attending lecture only. You should budget enough time to work on the
programming assignments as well. Please consult the time table given on the lecture schedule and plan ahead. Programs
are due by 11:59 of the due date. Programs will be submitted using the Blackboard system at UMBC. Late assignments will
not be accepted. Programs will be graded on five criteria: correctness, design, style, documentation, and efficiency. So,
turning in a project that merely "works" is not sufficient to receive full credit. For this course, programming projects
must be developed using the NASM assembler for the Linux operating system. running on an Intel Pentium CPU. This arrangement
is not compatible with other flavors of UNIX, with Linux running on non-Intel CPUs or with assemblers for
Windows 95/98/2000/ME/XP/NT. When in doubt the UMBC machine linux.gl.umbc.edu will be the final arbiter of what constitutes
a working programming. You may work on your own machines running Linux, but you will have to be your own system administrator.
None of the instructors, TA or support staff at OIT will be available to help ou install or debug Linux.
NOTE: UMBC's Linux Users Group (LUG) can be a resource for you to get help with the installation of Linux and Linux
questions in general. However, when you contact them for assistance, you must first tell them that you are taking CMSC313
and you can not try to have them answer any of your homework questions.
Cheating
Read this section carefully! It describes what constitutes cheating for this course. If you have questions, ask the
instructor. Ignorance will not be accepted as an excuse after the fact.
All programming assignments and circuit simulation exercises must be completed by your own individual effort. You should never
have a copy of someone else's program either on paper or electronically under any circumstance. Also, you should never give a
copy of your program or circuit, either on paper or electronically, to another student. This also means that you cannot work
on the programming assignments or circuit simulation exercises together. Cases of academic dishonesty will be dealt with
severely. Egregious cases of cheating will be reported as a major infraction. In this case, you will not be allowed to drop
the course. Also, a major infraction would appear as a permanent part of your student record and would be seen by potential
employers when they ask for an official copy of your transcript. We will be using special software to check for cheating.
The software is quite sophisticated, has been tuned for assembly language programs and has surprised some students in the past.
We will, of course, not release the details of the internal workings of this cheat-checking software, but you are also
forewarned that there is no difficulty in comparing every pair of submitted projects. Finally, you are also warned that
if your program is turned in by someone else, then, at a minimum, bot you and the person who copied your program will receive
a 0 for that assignment and you will be penalized ten percent of the total possible score for the entire
course. (That will reduce your final grade by more than one letter!) This includes substantially similar programs.
Furthermore, all parties concerned will have their prior programs checked for cheating. So, if you cheat on the last
assignment, you can lose all the points from all of your assignments -- even if you did all the work and just let other
people copy from you.
UMBC |
CSEE |