CSCI 322
Computing Systems Organization

Time

MWF 11:10am-12:00pm (A4)

Location

MCREY 110

Overview

How do computers work? This course answers this deceptively simple question by providing a deep dive into the layers of abstraction composing modern computing systems. Throughout the semester, you will put your new knowledge into practice by building your own complete, working (simulated) computer. Course topics include numeric representation, digital logic, CPU design, machine and assembly language, the program stack, virtual machines, compilers, assemblers, memory management and device drivers.

Learning Goals

Upon completing this course, you will be able to:

Resources

Troubleshooting


Calendar

Date Topic Reading Deadlines
W 21 Jan Boolean Logic Circuits Chapter 1  
F 23 Jan Hardware Description Language Appendix A  
       
M 26 Jan Boolean Arithmetic Chapter 2 Project 1: Boolean logic
W 28 Jan Boolean Arithmetic    
F 30 Jan Sequential Logic & Memory Chapter 3 Project 2: Boolean arithmetic
       
M 2 Feb Sequential Logic & Memory    
W 4 Feb Machine & Assembly Language Chapter 4 Project 3: Memory
F 6 Feb Hack Assembly Examples   Formative Assessment 1
       
M 9 Feb Turing Machine CPU Chapter 5  
W 11 Feb More Turing Machine CPU   Project 4: Machine language
F 13 Feb CPU History   Formative Assessment 2
       
M 16 Feb NO CLASS: Midwinter Break    
W 18 Feb NO CLASS: Away at conference    
F 20 Feb NO CLASS: Away at conference    
       
M 23 Feb Assemblers Chapter 6 Project 5: Computer architecture
W 25 Feb Assemblers    
F 27 Feb 6502 Architecture    
       
M 2 March Virtual Machines & Stacks Chapter 7 Project 6: Assembler
W 4 March VM to Hack Translation    
F 6 March VM to Hack Translation   Formative Assessment 3
       
M 9 March VM Branching Chapter 8 Project 7: VM I: Stack Arithmetic
W 11 March VM Function Activation Records    
F 13 March More about VMs    
       
M 16 March Introduction to Jack Chapter 9 Project 8: VM II: Program control
W 18 March Jack Example: Monotris    
F 20 March Jack work day   Project 9: High-level programming
       
M 23 March NO CLASS: Spring Break    
W 25 March NO CLASS: Spring Break    
F 27 March NO CLASS: Spring Break    
       
M 30 March Tokenizing input Chapter 10  
W 1 April Simple LISP Compiler   Formative Assessment 4
F 3 April Compiling Jack to VM Chapter 11 Project 10/11A: Tokenizer
       
M 6 April Compiling Symbol Tables    
W 8 April Compiling Conditionals/Loops   Project 10/11B: Statements
F 10 April NO CLASS: Away at conference    
       
M 13 April Compiling Arrays    
W 15 April Compiling Classes/Objects   Project 10/11C: Conditionals and Loops
F 17 April Compiling Classes/Objects    
       
M 20 April OS: Start, Stop, Keyboard, Arrays Chapter 12 Project 10/11D: Classes and Arrays
W 22 April OS: Strings, Advanced Arithmetic    
F 24 April OS: Heap   Formative Assessment 5
       
M 27 April OS: Graphics   Project 12A: Operating System II
W 29 April OS: Output    
F 1 May Retrospective    
       
M 4 May (Reading Day)   Project 12B: Operating System II
       
F 8 May Final Exam Period (8:30-11:30 am)   Formative Assessment: Final

Grading

Project credits

Formative Assessments

Assessment Project Group Deadline
1 Projects 1, 2 F 6 Feb
2 Projects 3, 4 F 13 Feb
3 Projects 5, 6 F 6 March
4 Projects 7, 8 W 1 April
5 Projects 9, 10/11 A-D F 24 April
Final Projects 12A-B F 8 May

Course Grade

To earn any grade of C or higher:

Credit thresholds


Coursework and policies

Projects

Your work in this course will consist of a series of challenging projects from our textbook. Taken all together, they will result in a complete, working (simulated) computer.

The average completion time shown for each project is based on self-reported time spent by students in Spring 2022. However, keep in mind that actual reported times varied widely. There was not enough data to compute a meaningful average for project 12B, but it is probably similar to 12A.

Assignment submission form


# Topic Avg time (hrs)
1 Boolean logic 5
2 Boolean arithmetic 5
3 Memory 5
4 Machine language 6
5 Computer archtecture 7
6 Assembler 8
7 VM I: stack arithmetic 8
8 VM II: program control 8
9 High-level programming 7
10/11A Tokenizer 5
10/11B Statements 7
10/11C Conditionals and loops 8
10/11D Classes and arrays 8
12A Operating system I 6
12B Operating system II ?

Academic integrity

Projects must be completed individually. Your experience of learning how a computer works depends directly on your independent completion of these projects.

Since completion of the projects is the fundamental learning opportunity in this class, issues of academic integrity will be taken very seriously. Typically, plagiarism on a project will carry a recommended sanction of failure in the course.


Expectations and accommodations

Expectations

Although you and I play different roles in the course, we both have your learning as a common goal. There are things I expect from you as a student in the course, but there are also things you can expect of me as the course instructor and facilitator.

If I am not fulfilling my responsibilities outlined below, you are welcome (and encouraged!) to call me out, perhaps via the anonymous feedback form. I will also initiate a conversation if you are not fulfilling yours. However, none of us will meet all of the expectations perfectly—me included!—so it’s also important that we have grace and patience with one another.

What I expect from you What you can expect from me
Communication
  • Check your email and Teams for occasional course announcements.
  • Let me know via email or Teams message if you will need to miss class for some reason.
  • Let me know as soon as possible if you feel you are struggling, would like extra help, or have something going on that will affect your engagement in the course or your ability to fulfill your responsibilities.
  • Clearly communicate expectations, assignment details and dates, and grading standards.
  • Return grades and feedback on submitted work within two weekdays of submission.
  • Respond to emails within 24 hours.
Preparation
  • Come prepared to fully engage in class meetings, with distractions minimized, to the best of your ability.
  • Spend time outside of class actively practicing unfamiliar or shaky concepts or skills (not just reading over notes).
  • Have a concrete plan for how we will spend each class meeting, prepared to lead you through the plan.
Engagement
  • Make myself available to meet outside of class, and give you my full attention during a meeting.
  • Be committed to your learning, open to feedback and willing to respond in substantive ways to your suggestions or concerns.

Attendance

Attendance in this class is not required as part of your grade. However, I do expect you to attend and appreciate knowing in advance if you will need to miss class.

Disabilities

If you have a documented disability or some other reason that you cannot meet the above expectations, and/or your learning would be best served by a modification to the usual course policies, I would be happy to work with you—please get in touch (via Teams or email)! The course policies are just a means to an end; I don’t care about the policies per se but I do care about you and your learning.

It is the policy of Hendrix College to accommodate students with disabilities, pursuant to federal and state law. Students should contact Julie Brown in the Office of Academic Success (505.2954; brownj@hendrix.edu) to begin the accommodation process. Any student seeking accommodation in relation to a recognized disability should inform the instructor at the beginning of the course.

Diversity and Inclusion

Hendrix College values a diverse learning environment as outlined in the College’s Statement on Diversity. All members of this community are expected to contribute to a respectful, welcoming, and inclusive environment for every other member of the community. If you believe you have been the subject of discrimination please contact Dean Mike Leblanc at leblanc@hendrix.edu or 501-450-1222 or the Title IX Coordinator Jennifer Fulbright at titleix@hendrix.edu or 501-505-2901. If you have ideas for improving the inclusivity of the classroom experience please feel free to contact me. For more information on Hendrix non-discrimination policies, visit hendrix.edu/nondiscrimination.

Mental and Physical Health

Hendrix recognizes that many students face mental and/or physical health challenges. If your health status will impact attendance or assignments, please communicate with me as soon as possible. If you would like to implement academic accommodations, contact Julie Brown in the office of Academic Success (brownj@hendrix.edu). To maintain optimal health, please make use of free campus resources like the Hendrix Medical Clinic or Counseling Services (501.450.1448). Your health is important, and I care more about your health and well-being than I do about this class!