SLU logo

CSCI 2400 - Computer Architecture
ECE 3217 - Computer Architecture and Organization

Spring 2017

Instructor David Ferry, Homepage
Course Web Site
Course meeting times Monday, Wednesday, & Friday from 1:10 - 2:00, Ritter Hall Rm. 115
Midterm exams
March 10th, April 12th, regular class time and place
Final exam
May 15th, 12:00AM - 1:50AM
Office hours By appointment (email), feel free to stop by (schedule)

  1. Course Description
  2. Acknowledgements
  3. Prerequisites
  4. Assignments
  5. Course Schedule
  6. Textbooks and Other Resources
  7. Grading
  8. Links
  9. Academic Honesty
  10. Academic Support
  11. Disability Services
  12. Title IX Statement

Course Description

Computers are designed to perform useful work by executing software, and users of computer systems typically think of computer operation in terms of software and source code. However, computers are physical artifacts and software ultimately executes on hardware. The purpose of this course is to show how high level programs are achieved in hardware, and how modern computer systems are designed in order to facilitate efficient execution.

The purpose of this course is for each student to learn:

Topical Outline:

Learning Outcomes:

Catalog Description: Introduction to the organization and architecture of computer systems, including aspects of digital logic, data representation, assembly level organization, memory systems and processor architectures.


This course owes a debt of gratitude to Prof. Jason Fritts, who designed the original format and course materials.



Required course textbook: Computer Systems: A Programmer's Perspective, 3rd Ed. by Bryant and O'Hallaron, Pearson, 2016

(book's website)

(code examples)

(book errata)

Supporting: C Programming (a free online book providing a useful C reference)


There will be approximately 7-9 assignments for this course. These are a mix of written and programming assignments whose purpose is to apply course concepts.

Assignments submitted on time will be given full credit. Assignments submitted up to 24 hours late will be given a ten percent penalty. Assignments submitted between 24 hours and 48 hours late will be given a twenty percent penalty. Assignments submitted after 48 hours late will not be given credit, except in the case of extenuating circumstances pre-approved by the instructor.

Course Schedule

A tentative course schedule is below. Note that this schedule may change over the course of the semester. When changes occur, students will be given enough advance notice so that readings and other preparation may be accommodated.
Date Topic Readings Notes
Jan 18 Course Intro (PDF) CSAPP Ch. 1
Jan 20 Data Representation: bits, bytes, ints, text, pointers (PDF)
Topic: Bits. Bytes. Binary, Octal, and Hexadecimal number systems.
Bit-Depth and Color Representation
3-byte RBG color codes
Jan 23 Topic: Unsigned integer representation CSAPP Ch. 1
Jan 25 Topic: Signed integer representation CSAPP Sec. 2.1-2.4
Jan 27 Topic: Text data and pointers CSAPP Sec. 2.1-2.4
Ascii Table
Unicode Table
Hwk #1 Assigned
Jan 30 Topic: Bitwise and Arithmetic Operations (PDF) CSAPP Sec. 2.2-2.4
Feb 1 Topic: Complements, Addition, Subtraction CSAPP Sec. 2.2-2.4
Feb 3 Topic: Multiplication, Division
Topic: Floating Point (PDF)
CSAPP Sec. 2.2-2.4 Hwk #1 Due
Feb 6 Topic: Floating Point Examples CSAPP Sec. 2.3-2.4
Feb 8 Topic: IEEE Floating Point CSAPP Sec. 2.3-2.4
Feb 10 Topic: Floating Point Add, Multiply, Cast CSAPP Sec. 2.3-2.4
Feb 13 Intro to Linux and C No Readings Hwk #2 Assigned
Feb 15 Topic: Intro to Linux and C (PDF)
C Programming Exercises
Feb 17 Continuing Intro to C
Feb 20 Continuing Intro to C
Feb 22 Topic: Machine-Level Programming (PDF) CSAPP Sec. 3.1-3.5 Hwk #2 Due
Feb 24 Topic: History of x86 ISA CSAPP Sec. 3.1-3.5
Feb 27 Topic: Turning C into Object Code / Assembly Example CSAPP Sec. 3.1-3.5 C Programs Due
Mar 1 Topic: Assembly Instructions, Registers, Operands, mov and swap example CSAPP Sec. 3.1-3.5 Hwk #3 Assigned
Mar 3 Assembly Demo Day 1 CSAPP Sec. 3.1-3.5
Mar 6 Assembly Demo Day 2
Mar 8 Exam #1 Review Hwk #3 Due
Mar 10 Exam #1
Mar 13 No class - Spring Break
Mar 15 No class - Spring Break
Mar 17 No class - Spring Break
Mar 20 Exam Discussion CSAPP Sec. 3.4-3.6
Mar 22 Assembly Programming 1: Hello, world! CSAPP Sec. 3.4-3.6 Hwk #4 Assigned
Mar 24 Topic: Machine Programming 2
Assembly Programming 2: Addressing
CSAPP Sec. 3.4-3.6
Mar 27 Assembly Programming 3: Arithmetic CSAPP Sec. 3.6-3.7
Mar 29 Assembly Programming 4: Flags CSAPP Sec. 3.6-3.7
Mar 31 Assembly Programming 5: Control Flow CSAPP Sec. 3.6-3.7
Apr 3 Assembly Programming 6: Array Search CSAPP Sec. 3.7-3.8
Apr 5 In-Class Programming CSAPP Sec. 3.7-3.8 Hwk #4 Due
Apr 7 In-Class Programming CSAPP Sec. 3.7-3.8 HW #5 Assigned
Apr 10 Exam Review CSAPP Sec. 3.7-3.8
Apr 12 Exam #2
Apr 14 No class - Easter Break
Apr 17 No class - Easter Break
Apr 19 Topic: Intro to the Y86 ISA - an Instruction Set to Implement CSAPP Sec. 4.1-4.3
Apr 21 Topic: Sequential Processor Architecture CSAPP Sec. 4.1-4.3
Apr 24 Continuing Sequential Architecture CSAPP Sec. 4.1-4.3 Hwk #6 Assigned
Apr 26 Topic: Pipelined Processor Architecture CSAPP Sec. 4.3-4.5
Apr 28 Continuing Pipelined Architecture CSAPP Sec. 4.3-4.5
May 1 Pipeline Hazards CSAPP Sec. 4.3-4.5
May 3 Topic: Cache Organization CSAPP Sec. 4.5, 6.2-6.4, 9.4, and 9.6 HW #6 Due
Hwk #7 Assigned
May 5 Topic: Cache Organization CSAPP Sec. 4.5, 6.2-6.4, 9.4, and 9.6
May 8 Topic: Cache Organization CSAPP Sec. 4.5, 6.2-6.4, 9.4, and 9.6
May 15 Final Exam - 12:00 to 1:50 Hwk #7 Due


Your grade will be determined as follows:

Activity Grade Percentage
Assignments 45%
Participation 5% each
Midterm Exams 15% each
Final 20%

Grading is done on a straight scale (uncurved). The following scores are guaranteed. The grading scale may be curved upwards (in your favor) at the discretion of the instructor.

Links / Resources

Data Representation:
ASCII info on Wikipedia    (table of printable characters)
ASCII Table at
(An ASCII table is available in the textbook, though it's not as easy to read)

Digital Logic:
MultiMedia Logic digital logic simultor
Intro to Digital Logic at

Intel x86 Assembly:
template.s -- a simple .s assembly file you can use as a template for further development
asm2exe -- script to create executable from .s file   (e.g.    ./asm2exe abs_asm.s -g      // '-g' optional for debugging)
x86 Assembly and GDB Debugger Tutorial

Linux/Unix links:
Linx Command Line Cheat Sheet   by Dave Child       (middle column most relevant to class)
Unix Tutorial for Beginners       (great tutorial if you're new to Linux)

vi Editor:
vi Cheat Sheet

Assembly Programming Game!
TIS-100 (requires no experience)

Academic Honesty

Academic integrity is honest, truthful and responsible conduct in all academic endeavors. The mission of Saint Louis University is "the pursuit of truth for the greater glory of God and for the service of humanity." Accordingly, all acts of falsehood demean and compromise the corporate endeavors of teaching, research, health care, and community service via which SLU embodies its mission. The University strives to prepare students for lives of personal and professional integrity, and therefore regards all breaches of academic integrity as matters of serious concern.

The governing University-level Academic Integrity Policy was adopted in Spring 2015, and can be accessed on the Provost's Office website here. The College of Arts and Sciences policies on academic honesty can be found here.

If you are ever in doubt whether a particular action is a violation of academic honesty, please ask first!

Academic Support

In recognition that people learn in a variety of ways and that learning is influenced by multiple factors (e.g., prior experience, study skills, learning disability), resources to support student success are available on campus. The Student Success Center assists students with academic and career related services, is located in the Busch Student Center (Suite, 331) and the School of Nursing (Suite, 114). Students can visit to learn more about:

Disability Services

Students with a documented disability who wish to request academic accommodations must contact Disability Services to discuss accommodation requests and eligibility requirements. Once successfully registered, the student also must notify the course instructor that they wish to access accommodations in the course.

Please contact Disability Services, located within the Student Success Center, at or 314.977. 3484 to schedule an appointment. Confidentiality will be observed in all inquiries. Once approved, information about the student’s eligibility for academic accommodations will be shared with course instructors via email from Disability Services and viewed within Banner via the instructor’s course roster.

Note: Students who do not have a documented disability but who think they may have one are encouraged to contact to Disability Services.

Title IX Statement

Saint Louis University and its faculty are committed to supporting our students and seeking an environment that is free of bias, discrimination, and harassment. If you have encountered any form of sexual misconduct (e.g. sexual assault, sexual harassment, stalking, domestic or dating violence), we encourage you to report this to the University. If you speak with a faculty member about an incident of misconduct, that faculty member must notify SLU’s Title IX coordinator, Anna R. Kratky (DuBourg Hall, room 36;; 314-977-3886) and share the basic facts of your experience with her. The Title IX coordinator will then be available to assist you in understanding all of your options and in connecting you with all possible resources on and off campus.

If you wish to speak with a confidential source, you may contact the counselors at the University Counseling Center at 314-977-TALK. To view SLU’s sexual misconduct policy and for resources, please visit the following web addresses: