Home CPSC 305

CPSC 305: Computer Systems and Architecture

Meeting Time:Tuesday and Thursday, 10:00 - 11:50, Farmer B6
Instructor:Ian Finlayson
Office:Farmer B47
Office Phone:540-654-1714
Office Hours:Monday and Wednesday 11-12, Tuesday and Thursday 9-10, Friday 9-11, or by appointment
Required TextbookCode: The Hidden Language of Computer Hardware and Software, by Charles Petzold

Course Description

This course examines the basic operation of computing systems. It takes a bottom-up approach covering each major component of such systems including hardware, logic circuit design, CPU instruction sets, assemblers, and compilers. Students will gain experience programming in assembly language and C.

Course Goals & Objectives


Grading Policy

Your grade will be determined as follows: The grading scale used for this course is as follows:

Late assignments will have a 10% reduction in grade for each day late. Lab exercises are always due at the end of the day after they are assigned. For instance, a lab assigned on Monday is due at midnight Tuesday night. Final grades will not be rounded up, and no extra credit opportunities will be given on an individual basis.

The University provides the opportunity to provide grading feedback midway through the semester. This will take into account your score on the mid-term exam and the programming projects submitted up to that point. Any student receiving less than a 65% on either of these will receive a "U" for their mid-semester grade. If this happens to you, please don't hesitate to talk with me about how we can improve your performance in this class.


Student Conduct


Honor Policy

Students are expected to conduct themselves in a manner consistent with the letter and spirit of the Honor Constitution.

For labs, collaboration is OK. The goal of the labs is to ensure you understand the concepts we are going over.

For projects, you may discuss the ideas with other students, but all of your work must be your own. You must yourself write and understand everything in each assignment you submit. It is an honor code violation to copy directly from another student either by copy and paste or by transcription, or to copy from the web.

For exams, you can not talk to anyone during the exam, or use any kind of notes.

If you have any questions or need clarification, please don't hesitate to contact me!


Disability Statement

The Office of Disability Services has been designated by the University as the primary office to guide, counsel, and assist students with disabilities. If you already receive services through the Office of Disability Services and require accommodations for this class, make an appointment with me as soon as possible to discuss your approved accommodations needs. Please bring your accommodation letter with you to the appointment. I will hold any information you share with me in the strictest confidence unless you give me permission to do otherwise. If you have not contacted the Office of Disability Services and need accommodations, I will be happy to refer you. The office will require appropriate documentation of disability. Their phone number is 540-654-1266. The office is located in Seacobeck Hall.

Tentative Schedule

Date Class Topic Reading Lab Assignment
January 16 Course Introduction 1 - 3 No Lab 
January 18 Introduction to C   String Exercise 
January 23 Circuits and Transistors 4 - 6 Transistor Exercise 
January 25 C Programming Continued   Structure Exercise 
January 30 Bytes and Bits 7 - 9 No Lab 
February 1 No Lecture 10 Switch Exercise 
February 6 GBA Programming   GBA Input Exercise 
February 8 Logic Gates 11 Gate Exercise 
February 13 No class
February 15 Carry Lookahead Adders 12 - 13 Tic-tac-toe ExerciseGame of Life
February 20 GBA Graphics Programming   No Lab 
February 22 No class
February 27 Midterm Review   Combinatorial Analysis 
March 1 Midterm Exam
March 6 Spring Break
March 8
March 13 Using Images   No Lab 
March 15 Sequential Logic 14 Flip Flop Exercise 
March 20 GBA Tile Modes   Parallax Exercise 
March 22 Memory Systems 15 - 16 No LabPong
March 27 GBA Hardware Sprites 17 No Lab 
March 29 Assembly Programming 18 - 19 No Lab 
April 3 Assembly Programming Branches   Collatz ExerciseGame Description
April 5 Memory in Assembly 20 - 21 Uppercase Exercise 
April 10 Building a CPU   No LabCPU Part 1
April 12 GBA Sound Programming 22 - 23 No Lab 
April 17 Pipelining   No Lab 
April 19 Parallelism 24 - 25   
April 24 No Class Game Due
April 26 Final Exam Topics     
May 1Final Exam, 8:30 - 11:00 / Build a CPU Part 2

Copyright © 2022 Ian Finlayson | Licensed under a Attribution-NonCommercial 4.0 International License.