Introduction to Computer Architecture
Computer Science 210
Spring, 2019
- Instructor: John Donaldson
(john.donaldson@oberlin.edu)
- Office: King
231
- Office hours: MWF
1:30-2:20 pm (or by appointment)
- Meeting time and place:
- section 01: MWF 11:00-11:50 King 243
- section 02: MWF 2:30-3:20 King 243
- Prerequisite:
CSCI 241 (Systems Programming)
- Textbook:
Patterson and Hennessy, Computer Organization and
Design: The Hardware/Software Interface, 5th
edition, Morgan Kaufmann, 2014. ISBN 978-0-12-407726-3
Course Objectives
- To learn about the hardware architecture of computer systems,
with an emphasis on instruction set architectures and their
implementation.
- 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
MIPS architecture.
- To learn how design decisions impact performance in today's
systems.
Grading Procedures
Your grade will be based on labs, problem sets, and and two exams.
Point breakdown (approximate):
Labs and
problem sets
|
200
|
Midterm Exam (March 20)
|
100
|
Final Exam
section 01: May 16, 7-9 pm
section 02: May 18, 7-9 pm
|
150
|
Total
|
450
|
Policies
Assignments in the course will consist of written problem sets
and hands-on labs. Problem sets must be turned in at the
beginning of (or prior to) lecture on the day they are due.
Late problem sets are not accepted.
Late labs are strongly discouraged, but will be accepted subject
to the following limitations:
- Labs that are submitted one day late will be assessed a 10%
penalty.
- Labs that are submitted two days late will be assessed a 40%
penalty.
- Labs more than two days late will not be accepted.
- However, you have 2 Late Lab Exceptions that allow you to hand
in a lab up to 2 days late without penalty. To use
such an exception, include a text file in the folder you are
handing in, with file name LateLabException.txt. The body of
this file should say "This is my 1st (or 2nd) exception."
Note that these exceptions cover any reason for being late with
your work, from "I was sick over the weekend" to "My dog ate my
laptop."
Regular class attendance and participation is expected.
Excessive absence may result in a lower final grade.
Student Disabilities
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.
Academic integrity
All work in this course is to be performed in accordance with the
college's Oberlin
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:
Do:
- 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
Don't:
- 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
together
- leave your machine unattended; log out or lock the screen
- discuss an exam in any way with another student who may be
taking the exam at another time
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
about it.
Course outline
- 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)