Computer Systems and Architecture 

On this page you will find information about the course "Computersystemen en -architectuur"

  • 1001WETCAR, a compulsory 9-credit course for first-year Bachelor Computer Science students and
  • 2500WETCAR, a 6-credit course in the Educational Master
for the first semester of the 2021-2022 academic year at the University of Antwerp.

This page is written in English for the benefit of foreign Erasmus students. Note that the course is taught in Dutch however!

This course consists of two tightly interwoven parts:
Computer Systems
Computer Architecture

Contact Information

Hans Vangheluwe (Prof.)
Computer Systems and Architecture Theory

Brent van Bladel (Teaching Assistant)
Computer Architecture Labs/Assignments

Stephen Pauwels (Teaching Assistant)
Computer Systems Labs/Assignments


The course textbook is
David A. Patterson and John L. Hennessy.
Computer Organization and Design (MIPS Edition), the Hardware/Software Interface. Sixth Edition. Morgan Kaufmann. 2020.

For which parts of the book correspond to which lecture, have a look at the overview of what to study for the exam.

First Session

Your total score for this course is calculated as follows:

  • During the semester: permanent evaluation counts for 55% of the course grade. Assignments and Projects are handed in via Blackboard. Projects are evaluated during an oral defense.
  • Examination period: the Theory exam counts for 25% of the course grade.
    The course material covered by the theory exam is described in this overview of what to study for the exam.
  • Examination period: the practical exam together with its oral defense counts for 20% of the course grade.
    • Examination period: Practical exam (in computer lab: preparation of the design of a datapath as well as translating a high-level program to that architecture)
    • Examination period: Defense of practical exam with questions to test Computer Systems background
  • To pass the course, you need to attend or submit every part that will be graded (if not, your grade will be "AFW" - absent). Additionally, you need to get an overall score of at least 50%, and a score of at least 40% on the theory exam, and a score of at least 40% on the practical exam, and a score of at least 40% on the year projects (architecture and systems combined). If not, your grade will be min(7, your_score). your_score is the score you would get when applying the weights given above.
Second Session
  • The weights of the different parts of the course remain the same as during the January session:
    • 25% theory-exam
    • 20% practical-exam
    • 35% project computer architecture during the year ("permanent evaluation")
    • 20% exercises computer systems during the year ("permanent evaluation")
    Each of these parts may have to be re-done during the Second Session.
    You do not have to (but may) re-do those (entire) parts for which you got a score of at least 50% (i.e., "partiële vrijstelling"). By "entire" we mean that exemptions will in principle not be given for sub-parts of each of the four parts of the course. You should explicitly ask for an exemption via e-mail and you will be notified via e-mail whether this request was granted.
  • For the "during the year" parts, you will need to individually finish and submit (and defend) the "Computer Systems" assignments and a "Computer Architecture" project. For the second session, the CA assignment is here (using and the CS assignment is here. These are slight modifications of the original ones. Submission is done via Blackboard.
  • The structure of the examination remains the same. All defenses take place during the examination period.
  • The examination method and the material to study for the Second Session are identical to that of the First Session. There will again be a written theory exam about both CS and CA, as well as a practical exam with oral defense on Computer Architecture. The course material covered by the theory exam is described in this overview of what to study for the exam.

All lectures (in PDF format) can be found at the URL announced in class. Before each class, the slides are last year's. By the next lecture, the slides are updated to reflect this year's changes.
For your reference, on the 2020-2021 course website, you will find recordings of the online (due to Covid-19) lectures in the Planning section next to "online".

Class scribbles (get updated during the term).

Lab Sessions

In each lab session, you will be given some assignments (Computer Systems) and/or a project (Computer Architecture). All assignments are made individually, projects are solved in groups of two students.

Assignments (CS)
The assignments for Computer Systems are bundled in 3 larger projects and are made individually. These projects require you to apply and combine all topics seen in the weeks before the project deadline. Projects have to be submitted to Blackboard. Every project will clearly indicate what is expected.

The projects and exercises can be found here.

Projects (CA)

In each lab session, you will work on a project in pairs of two students. Projects build on each other, to converge into a unified whole at the end of the semester. During the semester, you will be evaluated three times. At these evaluation moments, you will present your solution of the past projects by giving a demo and answering some questions. You will immediately receive feedback, which you can use to improve your solution for the following evaluations.

For every project, you submit a small report of the project you made by filling in verslag.html completely. A report typically consists of a summary of everything you implemented and an explanation of the choices you made ​​in the implementation. Again, put all your files in a tgz archive. The name of that archive consists of your last and first name, without spaces. If, for example, your name is Jan De Smedt, the file name of your archive must be DeSmedtJan.tgz.

The projects can be found here.


The HTML forms you will need for the solutions (right click, save as):

You have to adapt the HTML-code manually (i.e., in notepad) to fill in the forms. A good HTML tutorial can help you with this. Remark: in the forms, the <u> element for underlining is redefined to "overline". This way, you can express NOT in Boolean algebraic expressions: e.g., NOT A OR B becomes A+B. Unfortunately, double overline is not possible. Of course, you can always use the NOT A OR B notation.


Throughout the course we will use the following tools:

Both tools require java to run. The tools are installed on the lab computers.

If you would like to run a UNIX distribution on your own computer, we suggest Ubuntu. You can install Ubuntu next to your Windows using the Windows installer. After installation, you will be able to choose on startup between Windows and Ubuntu. If you would like to run Ubuntu inside your Windows, you can install Ubuntu on VirtualBox by following these steps.

In order to copy files in Windows from and to servers (e.g., between your laptop and the server) you can use WinSCP. You can simply use the scp command ("secure copy") if you are using UNIX.

You can only access the server from a university network or through a vpn connection (to access this page, open it after you are logged in to Blackboard).

Blackboard caveats

The burden of timely submission of your work on Blackboard is on you! (late submissions are not accepted)

  • Beware that Blackboard's clock may differ slightly from that on your computer. Allow a margin for submission.
  • Be sure to check that your submission was actually made. Check for example under Grade Centre whether your (as yet unmarked) submission shows up.







Computer Systems

Computer Architecture

1Friday 1 October 20218:30 - 12:45TheoryM.A.143course introduction + practical informationFrom Analog to Digital
Logic Design, Logic Gates
2Tuesday 5 October 202110:45 - 12:45TheoryG.T.148computer abstraction
2Wednesday 6 October 202110:45 - 12:45TheoryM.A.143performance (model)
2Thursday 7 October 202110:45 - 12:45TheoryM.A.143performance (empirical)ALU, Adders
2Friday 8 October 202113:45 - 18:00Lab sessionM.G.025 (Group A)
M.G.026 (Group B)
Introduction to UNIXGates and Wires
3Tuesday 12 October 202110:45 - 12:45TheoryG.T.148ALU, Adders
3Wednesday 13 October 202110:45 - 12:45Theoryonline (streamed in M.A.143) 1, 2 data representation (unsigned and signed integers)ALU
3Thursday 14 October 202110:45 - 12:45Theoryonline (streamed in M.A.143) 1, 2 data representation (fixed point, floating point)
3Friday 15 October 202113:45 - 18:00Lab sessionM.G.025 (Group A)
M.G.026 (Group B)
Regular ExpressionsAdders
4Thursday 21 October 202116:00 - 18:00Theoryonline (streamed in M.A.143) 1, 2 data representation ((IEEE-754) floating point)
4Friday 22 October 202113:45 - 18:00Lab sessionM.G.025 (Group A)
M.G.026 (Group B)
UNIX ScriptingALU
5Thursday 28 October 202110:45 - 12:45TheoryM.A.143data representation (ASCII/EBCDIC character representations)
5Thursday 28 October 202116:00 - 18:00TheoryM.A.143data representation (Unicode character representation)
5Friday 29 October 202113:45 - 18:00Lab sessionM.G.025viContinue work on ALU
5Sunday 31 October 202123:55Project deadlineBlackboardProject 1 - 3: Gates and Wires, Adders, ALU
6Wednesday 3 November 202110:45 - 12:45Theoryonline 1, 2 memory
6Thursday 4 November 202110:45 - 12:45Theoryonline 1, 2, 3 Finite State Machines; simple datapath
6Friday 5 November 202113:45 - 18:00Lab sessionM.G.025Data Representatie
6Friday 5 November 202113:45 - 18:00Evaluation and FeedbackM.G.026Evaluation
6Sunday 7 November 202123:55Project deadlineBlackboardProject UNIX
7Wednesday 10 November 202110:45 - 12:45Theoryonline (M.A.143 available) 1, 2 simple datapath
7Thursday 11 November 202110:45 - 12:45No Class
7Friday 12 November 202113:45 - 18:00No Class
8Tuesday 16 November 20218:30 - 12:45Lab sessionM.G.025Memory
8Wednesday 17 November 202110:45 - 12:45TheoryM.A.143simple datapath (full)
8Thursday 18 November 202110:45 - 12:45TheoryM.A.143assembler
8Friday 19 November 202113:45 - 18:00Lab sessionM.G.025MIPS: IntroductionDatapath
8Sunday 21 November 202123:55Project deadlineBlackboardData Representatie
9Wednesday 24 November 202110:45 - 12:45TheoryM.A.143translating HLL control structures
9Thursday 25 November 202110:45 - 12:45TheoryM.A.143leaf functions
argument passing by value/reference
9Friday 26 November 202113:45 - 18:00Lab sessionM.G.025MIPS: Building your project's Building BlocksContinue work on Datapath
9Sunday 28 November 202123:55Project deadlineBlackboardProject 4 - 5: Memory, Simple Datapath
10Tuesday 30 November 20218:30 - 12:45Evaluation and FeedbackM.G.025Evaluatie
10Wednesday 1 December 202110:45 - 12:45Theoryonline (M.A.143 available) 1, 2 memory layout
non-leaf functions (without and with frames)
10Thursday 2 December 202110:45 - 12:45Theoryonline (M.A.143 available) 1, 2 representing matrices
addressing modes
en/de-coding instructions
10Friday 3 December 202113:45 - 18:00Lab sessionM.G.025MIPS: Putting your Project TogetherFull Datapath
11Wednesday 8 December 202110:45 - 12:45Theoryrecording (M.A.143 available) 1, 2, 3pseudo-instructions, macros, ... (17min)
linking and loading: static, dynamic (63min, 49min)
11Thursday 9 December 202110:45 - 12:45Theoryrecording (M.A.143 available) 1, 2 other architectures (than MIPS) (78min)
computer arithmetic (hardware) (30min)
11Friday 10 December 202113:45 - 18:00Lab sessionM.G.025 (Group A)
M.G.026 (Group B)
MIPS: Putting your Project TogetherDatapath in Use
11Sunday 12 December 202123:55Project deadlineBlackboardProject 6 - 7: Full Datapath
12Tuesday 14 December 20219:00 - 12:45Lab sessionM.G.025MIPS: Extending your Project
12Wednesday 15 December 202110:45 - 12:45Theoryonline (M.A.143 available) 1, 2 computer arithmetic (assembler)computer arithmetic (hardware)
12Thursday 16 December 202110:45 - 12:45No Class
12Friday 17 December 202113:45 - 18:00Evaluation and FeedbackM.G.025Evaluatie
13Wednesday 22 December 202110:45 - 12:45Theoryonline (M.A.143 available) 1, 2, 3, 4, 5, exceptions
course overview + exam questions
datapath with pipelining
13Thursday 23 December 202110:45 - 12:45No Class
13Friday 24 December 202113:45 - 18:00No Class
Wednesday 29 December 202123:55Project deadlineBlackboardProject MIPS
Saturday 29 January 202213:00 - 16:00ExamM.G.010Theory examTheory exam
Monday 31 January 202208:30 - 18:00ExamM.G.025/M.G.005/M.G.116Practical exam + oral defense (group 1)
Tuesday 1 February 202208:30 - 18:00ExamM.G.025/M.G.005/M.G.116Practical exam + oral defense (group 2)
Wednesday 2 February 202208:30 - 18:00ExamM.G.025/M.G.005/M.G.116Practical exam + oral defense (group 3)
Thursday 3 February 202208:30 - 18:00ExamM.G.025/M.G.005/M.G.116Practical exam + oral defense (group 4)
Friday 4 February 202208:30 - 11:30ExamM.G.010Theory exam (inhaalexamen)Theory exam (inhaalexamen)
Saturday 5 February 202208:30 - 18:00ExamM.G.025/M.G.005/M.G.116Practical exam + oral defense (group 5)

Computer Systems
Program of the lab sessions

Exercises 1: Introduction to Unix

Introduction session on Unix commands. The use of Unix Shell Commands is explained.


Exercises 2: Regular Expressions

Introduction and assignments on Regular Expressions and the use of sed.


Exercises 3: UNIX Scripting

Introduction to and assignments on UNIX Scripting.


Project UNIX

Project for the UNIX part of the course. For the project we use the Inginious auto-grade software. You can find it at Inginious. Log in using your UAntwerp credentials and register for the CSA2122 course.


Intermezzo: vi


Exercises 4: Data Representation

Assignments on data representation


Exercises 5: MIPS: Introduction

Introduction of MIPS and the use of MARS. For these excercises we use the Inginious auto-grade software. You can find it at Inginious. Log in using your UAntwerp credentials and register for the CSA2122 course.


Exercises 6: MIPS: Building your Projects' Building Blocks

Assignments on MIPS


Exercises 7: MIPS: Putting your Project together

Assignments on MIPS Stacks and subroutines


Exercises 8: MIPS: Extending your Project

Assignments on MIPS Recursion


Computer Architecture
Program of the lab sessions

Project 1: Gates and Wires

Introduction to Logisim and the use of gates.


Project 2: Adders

Build an 12-bit adder (ripple carry adder and carry lookahead adder).


Project 3: ALU

Build a 12-bit ALU.


Project 4: Memory

Build a register file, counter, stack, and a finite State Machine for a traffic light.


Project 5: Datapath

Build a program counter and a datapath.


Project 6: Full Datapath

Add branch, jump and immediate instructions to the instruction set.


Project 7: Datapath in Use

Write programs to run on your datapath.


Maintained by Hans Vangheluwe. Last Modified: 2022/08/28 05:02:48.