CS3432 Computer Organization
CS 3432 is a first systems course about how computer systems work. Whereas computer architecture
describes the functional behavior of a computer, computer organization describes the structural
relationships. CS 3432 is a course in computer organization that answers questions such as the
following:
- How are programs written in a high-level language, such as C or Java, translated into the
language of the hardware, and how does the hardware execute the resulting program?
- What is the interface between the software and the hardware, and how does software
instruct the hardware to perform the necessary functions?
- What determines the performance of a program, and how can hardware designers or
programmers improve the performance?
- What are the reasons for and the consequences of the recent switch from sequential to
parallel processing?
The syllabus can be found here.
Some parts of this class are a little frustrating at first. Watch this video.
Most of the concepts taught in this class were already present in the Apollo spaceship, which is presented in this great video.
You can see the Real-Time System of the Apollo spaceship in action in this video. Watch out for program alarm 1201.
Get inspiration as well from Margaret Hamilton's work and the people who had to use rope memory.
There will be 2 main Homework Assignments in this class. Both are systems-centric and not fully 100 percent self-contained - just like any industrial systems project.
- Homework Assignment 1 is posted in the form of boilerplate code
with
comments here. It
is due 2025-02-21 at 11:59PM MST. Students must complete the code
to enable complete encoding of IA5 (ASCII) in IA2 (Baudot) and
decoding of IA2 to IA5. Links and hints to how IA2 works are given
in the boilerplate code. Students are encouraged to work in teams
for the understanding of the boilerplate code and IA2 encoding and
decoding. However, each student must submit their own work in the
form of C source code
to utep-spring-2025-arc-hw1@christoph-lauter.org. Put
your first and last names as well as student ID into the source
code file as well as in the body of your email. Attach the C
source code as an attachment. No PDFs, no Microsoft Word, no
JPEGs, no source code in the body of the email (but in
attachment), no executable. Plain C source code in
attachment. Very little credit is given to submissions that do not
compile.
- Homework Assignment 2 is
posted here. It
is due 2025-04-08 at 7:59PM MDT. Students must submit their work
as physical paper copies to the lab TA, Miguel Lucero.
There will be 3 exams in this class:
- Midterm Exam I is available here. It
is due 2025-03-06 at 5:50PM MST for the theoretical part. The theoretical part needs to be turned in on paper, directly to the instructor. The practical part is based on
the boilerplate code provided here. The practical part is
due 2025-03-07 at 1:59AM MST. It must be sent in form of C source in attachment to an email to
to utep-spring-2025-arc-midtermI@christoph-lauter.org. Put
your first and last names as well as student ID into the source
code file as well as in the body of your email. Attach the C
source code as an attachment. No PDFs, no Microsoft Word, no
JPEGs, no source code in the body of the email (but in
attachment), no executable. Plain C source code in
attachment. Very little credit is given to submissions that do not
compile. Very little credit is given to submissions that do not satisfy the
requirements on time complexity outlined in the exam statement and the boilerplate code.
- Midterm Exam II is available here. It
is due 2025-04-15 at 5:50PM MDT for the theoretical part. The theoretical part needs to be turned in on paper, directly to the instructor. The practical part is based on
the boilerplate code provided here. The practical part is
due 2025-04-16 at 1:59PM MDT. It must be sent in form of C source and Risc-V assembly in attachment to an email to
utep-spring-2025-arc-midtermII@christoph-lauter.org. Put
your first and last names as well as student ID into the source
code file, the assembly file, as well as in the body of your email. Attach the C
source code and the assembly file as an attachment. No PDFs, no Microsoft Word, no
JPEGs, no source code in the body of the email (but in
attachment), no executable. No links to Sharepoint or other resources of this type. Plain C source code, transformed in the way indicated, and Risc-V assembly in
attachment. Very little credit is given to submissions that do not
compile (for the C source code). Your assembly code is to assemble correctly on a Risc-V environment and follow the typical prologue, body and epilogue pattern for each function,
use the right ISA/ABI conventions, as restricted for the use in this course.
- The Final Exam will occur later.
Copyright (C) 2025 Christoph Lauter