Computer Systems and Architecture 

On this page you will find information about the course "Computersystemen en -architectuur" (1001WETCAR) for the first semester of the 2015-2016 academic year at the University of Antwerp.

This page is written in English for the benefit of foreign Erasmus students.

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

For which parts of the book correspond to the lectures, 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% on the practical exam and projects, and a score of at least 50% on the theory exam. If not, your grade will be min(7, your_score).
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
    • 40% project computer architecture during the year ("permanent evaluation")
    • 15% 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 parts for which you got a score of at least 50% (i.e., "partiële vrijstelling"). You should explicitly ask for this 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. These will be slight modifications of the original ones (see below). Deadline for these assignments is 31 August 2016 at 23:55. 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 online (on Blackboard, not updated frequently) and at the URL announced in class (updated frequently). Before each class, the slides are last year's. By the next lecture, the slides are updated to reflect this year's changes (including pictures of blackboard scribbles, where appropriate).
byRefenceVSbyValue.c demonstrates the use of call-by-value and call-by-reference in C.

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)

After each lab session, a new "assignment" is enabled on Blackboard, with a strict deadline. You submit your solution of the assignments before the deadline (typically one week after the lab session). You submission must have these characteristics:

  • Fill in all solutions to the assignments in the file oefeningen.html. Each solution consists of text, screenshots and/or hyperlinks to files (i.e. scripts, MIPS-files, ...).
  • 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 assignments 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.

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

1Tuesday 22 September 10:45 - 12:45TheoryG.005Introduction, Computer Abstractions
1Wednesday 23 September 16:00 - 18:00TheoryA.143Computer Abstractions: Performance
1Friday 25 September 13:45 - 18:00No class
2Tuesday 29 September 10:45 - 12:45TheoryG.005Data Representation (Unsigned Integers, Signed Integers)
2Wednesday 30 September 16:00 - 18:00No class
2Friday 2 October 08:30 - 10:30 (Group A)
Friday 2 October 10:45 - 12:45 (Group B)
Lab SessionG.025Introduction to UNIX
3Tuesday 6 October 10:45 - 12:45TheoryG.005Data Representation (Fixed Point)From Analog to Digital
3Wednesday 7 October 16:00 - 18:00TheoryA.143Data Representation (Floating Point)
3Friday 9 October 08:30 - 12:45Lab SessionG.025 (Group A)
G.026 (Group B)
Regular expressions and sedGates and Wires
4Tuesday 13 October 10:45 - 12:45TheoryG.005Data Representation (Floating Point)
4Wednesday 14 October 16:00 - 18:00TheoryA.143Logic Design, Logic Gates
4Friday 16 October 08:30 - 12:45Lab SessionG.025 (Group A)
G.026 (Group B)
UNIX ScriptingAdders
5Tuesday 20 October 10:45 - 12:45TheoryG.005Data Representation (character representations)
5Wednesday 21 October 16:00 - 18:00TheoryA.143Logic Gates: memory
5Friday 23 October 08:30 - 12:45Lab SessionG.025 (Group A)
G.026 (Group B)
Data RepresentationALU
6Tuesday 27 October 10:45 - 12:45TheoryG.005Assembler
6Wednesday 28 October 16:00 - 18:00TheoryA.143Memory/Finite State Machines
6Friday 30 October 08:30 - 12:45Lab SessionG.025 (Group A)
G.026 (Group B)
viContinue work on ALU (supervised "light")
7Tuesday 3 November 13:00 - 15:00TheoryA.143Assembler
7Wednesday 4 November 16:00 - 18:00TheoryA.143Simple Datapath
7Friday 6 November 08:30 - 10:30 (Group A)
Friday 6 November 10:45 - 12:45 (Group B)
Lab SessionG.025FSM
8Tuesday 10 November 10:45 - 12:45TheoryG.005AssemblerSimple Datapath (full)
8Wednesday 11 November 16:00 - 18:00No Class
8Wednesday 11 November 23:55 Project deadlineBlackboardProject 1-3
8Friday 13 November 08:30 - 12:45Evaluation and feedbackG.025Evaluation Adders + ALU
9Wednesday 18 November 16:00 - 18:00TheoryA.143Assembler: data/control indirection, pointers, functions
9Friday 20 November 08:30 - 12:45Lab SessionG.025 (Group A)
G.026 (Group B)
9Friday 20 November 16:00 - 18:00TheoryA.143Assembler: leaf functions, pass by value/reference
10Tuesday 24 November 10:45 - 12:45TheoryG.005Assembler: non-leaf functions, Frames/Activation Records
10Wednesday 25 November 16:00 - 18:00TheoryA.143representing matrices
10Friday 27 November 08:30 - 12:45Lab SessionG.025 (Group A)
G.026 (Group B)
MIPS: Stacks and SubroutinesDatapath 2
11Tuesday 1 December 10:45 - 12:45TheoryG.005Assembler: non-leaf functions, Frames/Activation RecordsComputer Arithmetic (circuits/assembler)
11Wednesday 2 December 13:45 - 15:45TheoryA.143Computer ArithmeticComputer Arithmetic
11Wednesday 2 December 23:55 Project deadlineBlackboardProject 4-5
11Friday 4 December 08:30 - 12:45Evaluation and feedbackG0.25Evaluation FSM + Datapath
12Tuesday 8 December 10:45 - 12:45TheoryG.005linking and loading
12Wednesday 9 December 16:00 - 18:00TheoryA.143dynamic linking; other architectures (than MIPS)
12Friday 11 December 08:30 - 12:45Lab SessionG.025 (Group A)
G.026 (Group B)
MIPS: RecursionUsing the datapath
13Tuesday 15 December 10:45 - 12:45TheoryG.005Datapath with pipelining
13Wednesday 16 December 13:45 - 15:45TheoryA.143ExceptionsCourse overview + exam questions
13Wednesday 16 December 23:55 Project deadlineBlackboardProject 6-7
13Friday 18 December 08:30 - 12:45Evaluation and feedbackG.025Evaluation final datapath
Monday 4 January 14:00 -- 18:00ExamG.010TheoryTheory
Tuesday 5 January 09:00 -- 18:30Exam (group 1)G.025Practical + oral defense in G.116
Wednesday 6 January 09:00 -- 18:30Exam (group 2)G.025Practical + oral defense in G.116
Thursday 7 January 09:00 -- 18:30Exam (group 3)G.025Practical + oral defense in G.116
Friday 8 January 09:00 -- 18:30Exam (group 4)G.025Practical + oral defense in G.116

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 and Sed

Introduction and assignments on regular expressions and sed.


Exercises 3: UNIX Scripting

Introduction to and assignments on UNIX Scripting.


Exercises 4: Data Representation

Assignments on data representation




Exercises 6: MIPS

Assignments on MIPS


Exercises 7: MIPS: Stacks and subroutines

Assignments on MIPS Stacks and subroutines


Exercises 8: MIPS: Recursion

Assignments on MIPS Recursion


Second Session

The following exercises must be completed:

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 8-bit adder (ripple carry adder and carry lookahead adder).


Project 3: ALU

Build a 8-bit ALU.


Project 4: FSM

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


Project 5: Datapath (1)

Build a program counter and a datapath.


Project 6: Datapath (2)

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


Project 7: Using the Datapath

Write programs to run on your datapath.


Second Session

This is a variation on the projects of the first session. The goal is to individually solve a variation of all projects, with the differences explained in the following assignment:

Maintained by Hans Vangheluwe. Last Modified: 2016/09/20 10:17:26.