Introduction to Computer Architecture
Computer Science 210
- Instructor: John Donaldson
- Office: King
- Office hours: MWF 11
am-noon (or by appointment)
- Meeting time and place:
MWF 2:30-3:20 King 227
- Teaching assistants: TBA
CSCI 241 (Systems Programming)
Patterson and Hennessy, Computer Organization and
Design: The Hardware/Software Interface, 5th
edition, Morgan Kaufmann, 2014. ISBN 978-0-12-407726-3
- To learn about the hardware architecture of computer systems,
with focus on instruction set architectures and their
- To learn fundamental background topics needed for the study of
computer architecture, such as number systems and digital logic.
- To learn the basics of assembly language programming for the
- To learn how design decisions impact performance in today's
Your grade will be based on labs, problem sets, and and two exams.
Point breakdown (tentative):
|Midterm Exam (March 15)
|Final Exam (May 13, 7-9
Late labs are strongly discouraged. You may hand up to two labs
one day late without penalty. Be sure to submit early!
Labs that are up 24 hours late will be penalized by 25%.
Labs that are more than 24 hours late will not be graded.
Problem sets are due at the beginning of lecture. Late
problem sets are not accepted.
If due to extenuating circumstances (such as a severe illness)
you will not be able to complete a lab or take a test, talk to me
immediately, and prior to the deadline. I will handle these
situations on a case-by-case basis.
Regular class attendance and participation is expected.
Excessive absence may result in a lower final grade.
All late assignments must be submitted by the end of the reading
period (May 9).
If you have a disability that might impact your performance in
this course, or requires special accommodation, please contact me
as soon as possible so that appropriate arrangements can be
made. Support is available through Student Academic
Services. You will need to contact them to get your
disability documented before accommodations can be made.
All work in this course is to be performed in accordance with the
Honor Code. You must write the Honor Pledge and sign it
at the end of every submission. Electronic submissions must
include the honor pledge in the comments and your name. The
pledge is "I have adhered to the Honor Code in this assignment."
In particular, on all of the exams you are responsible for your own
work; you may neither give nor receive aid during the course of the
exam. No electronic devices are permitted in exams.
That being said, in a hands-on course such as this one, some
discussion of lab assignments is expected and encouraged. A
few specific do's and don't's:
- ask questions about the requirements of an assignment
- discuss with your classmates general approaches to solving a
problem prior to
starting your own design and coding
- get/give help from/to another student in solving a
particularly tough debugging problem
In the end, the work you submit must be your own. If you're
not sure what is acceptable in a given situation, please ask me
- obtain a copy of another student's code or problem set
answers (including a student who has taken the course before)
- give a copy of your code or problem set answers to another
student (including a student taking the course in the future)
- collaborate with a partner or group to work on an assignment
- discuss an exam in any way with another student who may be
taking the exam at another time
- Introduction to computer architecture. Basic computer
components. Levels of abstraction. (chapter 1)
- Data representation. (chapter 2)
- The MIPS architecture. Assembly language
programming. (chapter 2)
- Digital logic. (appendix B)
- CPU design. (chapter 4)
- Advanced CPU design. Pipelining. (chapter 4)
- Memory systems. Cache memory. (chapter 5)