CS 3432 Computer Architecture I
Topic Sequence ,
Text, lab manual, notes, reference,
- Teaching Assistant (TA):
Harish Kumar Bayyavarapu
- Students must register for the lecture and one lab
- Texts and reference material:
- Absolutely required: Kerningham, Brian W & Ritchie, Dennis M. "The C Programming
Language, Second edition," Prentice Hall, ISBN: 0-13-115817-1. a paperback edition
exists, though I don't think it is being printed at the moment
- MSPGCC cross-tools manual (55 pages):
- TI Documentation :
MSP430x2xx Family User's Guide
- Lab Manual:
The Lab Manual
is published to the web and constantly being updated
by the PLTLs.
- Class notes: They are posted on a wiki. Please
contribute, and let us know that you did (espeically current
students who make substantial contributions).
- Important dates
- Midterm: Thursday, 23 October, 2008
- Email blaster
Much communication is via email: JOIN THE CLASS MAILING LIST:
- Topic Sequence
This course is actively being revised and this document will be
updated during the course.
- Prerequisites: A grade of C or better in CS 2402 (CS3) and EE
- Catalog Course Description: Symbolic coding of instructions and data, MACRO definition and use, subroutines and linkage, input/output handling at the assembly level.
- Course objectives: Establish and be able to communicate,
verbally and in written form, a foundational knowledge of computer
architecture via assembler language, which is necessary for CS 3320,
Introduction to Computer Architecture II, an understanding of C and
- Introduction to basic machine organization (includes historical
overview), stored program
concept, program counter, fetch/decode execute process, machine
state, RAM, ROM, EPROM, registers, machine code, assembly code.
- Functions of assembler, linker, and loader, the assembly
process, symbol table, and assembler directives, relocatable code,
instruction set architecture, instruction formats, addressing modes,
effective address calculation, overflow and underflow.
- Data manipulation, data movement, control-flow, condition-code
register, translation of high-level programming language constructs
to assembly language constructs, representation of numeric and
- Data/text/stack segments, subroutine linkage, calculation of
execution time and how it is linked to cycles per instruction
- Input/output including memory-mapped & DMA I/O, interrupt and
exception handling (and how related to operating systems). Operational & security issues in serial &
parallel interfaces, persistent storage (magnetic & optical disk, flash).
- Program design, implementation (modularization), testing,
debugging, documentation, introduction to basic concepts of software
- Teams: We believe that the ability to work with other software
developers is essential. Therefore, students will be required to work
effectively in teams throughout the semester.
- Examinations: Examinations are assumed to be closed book, closed
notes, and in-class, unless otherwise specified. I do not give
make-up examinations. If you miss an examination for a legitimate
reason ( such as illness, death in the family, participation in a
college sponsored activity), then your (comprehensive) final
examination will be counted extra to compensate for the missed
exam. If you miss an examination with out a legitimate reason, a
grade of 0 will be recorded for that examination. If you know you
will be missing an exam date due to a college sponsored activity, you
may arrange to take the exam in advance.
Programs, Homework, and Laboratory Assignments
You can anticipate approximately one
In addition, there
will be a final project for which approximately six weeks will be
given. Some homework and lab assignments will cover material not yet
covered in class; other homework and lab assignments will cover
material already covered in class.
- laboratory assignment,
- homework, or
- programming assignment,
- Homework assignments are
considered learning experiences and will not be graded.
- The laboratory assignments are not optional; attendance at
laboratory sessions is mandatory. Grading of lab assignments will be
based on effort and understanding of concepts; if it appears that you
have made a serious effort to solve the problems and have a firm
understanding of the associated concepts then you will be given full
credit. Lab submissions must be legibly printed (with a dark pen) or
typed, and must be handed in on time. No credit will be given for lab
assignments submitted after the due date.
- Partial credit may be given for partially completed
programs/final projects; however, programs with syntax errors will
receive no credit. Start on your programs/final project early so that
you can get help with assembly and logic errors before the due
- The final project for the course will entail controlling a
motorized vehicle via software that interfaces motors and sensors
that are part of the vehicle. The homework, lab, and programming
assignments will lead you, incrementally, to the completion of the
- Programs and projects will be submitted on or before the
specified due dates. Late programs and projects will be downgraded
one numeric grade for every 2 days of lateness.
(For grading purposes, a calendar day is defined as any day in
which the main lab is open.)
Grades are determined largely from lab and exam grades. There
will also be frequent in-class quizzes, which can increase grades by a
Since grades are difficult to measure precisely, I will not
pretend that they are. Instead, as appropriate, the quality of
student work will
be assessed on a scale of [0..4] roughly corresponding to conventional
- 5: Answer demonstrates both mastery and excellent understanding
of context. Counts like a "4", but is noted
by the professor. Typically awarded for particularly concise yet
clear and complete answers that also demonstrate mastery.
- 4: indicates that the answer demonstrates mastery and ability to
transfer knowledge to new contexts.
- 3: indicates that the the answer demonstrates understanding of
concepts, but significant errors in application are evident
- 2: indicates that the the answer demonstrates signficant understanding of
concepts, but significant errors in logic are evident
- 1: indicates that the answer demonstrates an awareness of
concepts but limited understanding
- 0: indicates no or small demonstration of relevant knowledge
Lab & exam grades have a large influence on final grade (typically
40% lab, 60% exams, where the exam component is max(final, 0.6*final +
- Time: This course requires a great deal of time. You must start
assignments early and work steadily to be successful.
- Grading errors: You have one week after graded material is
returned to the class to rectify any grading errors or to argue for
additional credit. After the week has passed, no changes in grades
will be made.
- Class Attendance and Participation: As a college student, you
have the freedom to choose whether or not to attend class. However,
in this department we are committed to cooperative techniques, which
can only work if students attend regularly.
- Incomplete: Students receive a grade of Incomplete only under
extraordinary circumstances: when they have substantially completed
the course work with a passing grade, but cannot finish the course
for a legitimate reason. Legitimate reasons include severe illnesses
and debilitating accidents. Class or workloads that are too demanding
are NOT legitimate reasons.
- Academic dishonesty: Students are expected to behave courteously
and professionally according to the standards published at
http://www.utep.edu/~upfa/stud.htm. Cheating is defined as submitting
work under your name that was not done entirely by you for individual
assignments or by your team for team assignments. (This includes
taking programs from the web or cutting text from web pages and
pasting them into documents, even if the source is cited). Cheating
will not be tolerated--those caught cheating will be reported to the
Dean of Students. You should be aware of the Standards of Conduct
Individual vs. Cooperative Work
You are encouraged to participate in class and to have open
discussions with classmates about the topics covered in the
course. However, this does not imply in any way that your programs
should represent cooperative efforts. With respect to programming
assignments, you are encouraged to discuss with others the related
concepts that will help you design and implement programs, but the
programs that you submit must be your own code, written and documented
by you, and therefore, understood by you. In contrast, labs and the
final projects represent cooperative efforts, i.e., the work of you
and another student who is assigned to work with you. Note that even a
cooperative effort must be fully understood by you!
The official course outcomes are available online. A tentative update is also being prepared.
I will attempt to accommodate
students with disabilities; however, I make these accommodations in
accordance with University policy. If you feel you may have a
disability that requires accommodation, contact the Disabled Student
Services Office at 747-5148, go to Room 106E Union, or e-mail