Computer Systems and Architecture 

You can find slides of the "proefles" for this course held on Tuesday 21 February 2023 here.

You can find slides of the "(meeloop)les" for this course held on Tuesday 23 October 2023 here.


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
in the Computer Science (Informatica) Bachelor 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 is the first semester of the 2023-2024 academic year version of this course. Have a look at Prof. Vangheluwe's teaching page for earlier incarnations of this course.

In the first semester 2020-21 version of this course you will find recordings of online lectures. Though this year's course will cover roughly the same material, it does deviate in some parts. The recordings are provided as background material, not as a replacement for the lectures. You should attend all lectures.

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

Contact Information

Hans Vangheluwe (Prof.)
M.G.116
Hans.Vangheluwe@uantwerpen.be
Computer Systems and Architecture Theory


Kasper Engelen (Teaching Assistant, main contact and responsible for all Labs/Assignments)
Kasper.Engelen@uantwerpen.be
Computer Architecture Labs/Assignments

Student Teaching Assistants:


Textbook

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.


Exams
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 or Inginious. Which platform should be used will be explicitly mentioned in the assignment. 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.
  • For the "during the year" parts, you will need to individually finish and submit (and maybe defend) the "Computer Systems" assignments and a "Computer Architecture" project. You can find the assignments here for Computer Systems and here for Computer Architecture. Submission is done via Blackboard or Inginious.
  • 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.
  • 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. Note that the grades for the practical exam and the architecture projects are "linked together". This means that if you failed to get a passing grade for the practical exam you will also have to re-do the architecture projects, and vice-versa. You should explicitly ask for an exemption via e-mail and you will be notified via e-mail whether this request was granted.
  • In order to determine which parts you have to re-do, you can use the following table:
    Score Action
    You passed the course in the 1st session You do not have to re-take anything
    Your score for the theory exam is less than 50%
    You have to re-do the theory exam
    Your score for the practical exam is less than 50% You have to re-do the practical exam and the architecture exercises
    Your score for the architecture exercises is less than 50% You have to re-do the architecture exercises and the practical exam
    Your score for the systems exercises is less than 50% You have to re-do the systems exercises
Exemptions Across Academic Years

In case you did not pass the course in year N, (partial) exemptions may be granted in year N+1. These exemptions are always determined on a case-by-case basis. You need to request exemptions by e-mail to the prof. with the assistant in cc:. You will then receive a reply describing the exemption(s) granted. Keep that reply e-mail and send it back to the prof. (and assistant in cc:) before the exam period as an official reminder and proof that exemption(s) were granted. Note that if you do not request exemptions via e-mail, none will be granted implicitly.

The general principle for exemptions in year N+1 is that you may receive a partial exemption for those parts of the course for which you obtained at least (greater than or equal) a score of 70% on that part of the course in year N. Parts are: (1) theory exam AND computer systems assignments during the term, (2) practical exam AND computer architecture assignments during the term. "AND" means that the minimum score of 70% is required for both components. Note that exemptions do not carry across more than one year (i.e., to year N+k, with k greater than 1).


Theory
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".


Lab Sessions

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

Assignments (CS)
The assignments for Computer Systems are made individually. Every assignment will clearly indicate what is to be done, the deadline, as well as how you need to send in the solutions.

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.

All your solution files and answers must be included in this archive. You need to submit the archive via Blackboard.

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.

Tools

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 studento.uantwerpen.be server) you can use WinSCP. You can simply use the scp command ("secure copy") if you are using UNIX.

You can only access the studento.uantwerpen.be 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.

Planning

Computer Systems
Program of the lab sessions

Session 1: Introduction to Unix

Exercises on Unix shell commands. These exercises are not graded. However, they are an important preparation for the UNIX project which is graded!

Material:

Session 2: Regular Expressions

Exercises on Regular Expressions and the use of grep and sed. These exercises are not graded. However, they are an important preparation for the UNIX project which is graded!

Material:

Session 3: UNIX Scripting

Exercises on UNIX Scripting in Bash. These exercises are not graded. However, they are an important preparation for the UNIX project which is graded!

Material:

Session 4: UNIX Project

In this assignment you will apply the things you have learned in the past sessions. This assignment has to be handed in on the Inginious platform and will be graded.

Material:

Intermezzo: vi

To be announced

Session 5: Data Representation

In this assignment you will apply the things you have learned in the theory lectures about data representation. This assignment has to be handed in on Blackboard and will be graded.

Material:

Session 6: MIPS: Introduction

In this assignment we will become familiar with the MIPS assembly language. This assignment has to be handed in on the Inginious platform and will be graded.

Session 7: MIPS Project part 1: Components

For the MIPS project you will have to make a video game. In this assignment we will first build a number of components that will be used in the next assignment. This assignment has to be handed in on Blackboard and will be graded.

These two text files can be used to see if your file reader works correctly:

Session 8: MIPS Project part 2: Game

For this assignment you will combine the components you made during the previous sessions into a fully working video game.

Second Session

All assignments from the 1st semester have to be handed in before Wednesday August 14 2024, 22h00:

  • UNIX project: the same assignment
  • Data representation: Important: new assignment PDF
  • MIPS intro: the same assignment
  • MIPS project: Important: the scoring for the MIPS project has changed. Your score, as given by the table in the PDF, will be re-scaled. You need to get 30/40 in order to pass the assignment. If you score below 30/40, you score will be reduced to 19/40

Computer Architecture
Program of the lab sessions

Project 1: Gates and Wires

Introduction to Logisim and the use of gates.

Material:

Project 2: Adders

Build an adder (ripple carry adder and carry lookahead adder).

Material:

Project 4: Memory

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

Material:

Project 5: Datapath

Build a program counter and a datapath.

Material:

Project 6: Full Datapath

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

Material:

Second Session

This is a variation on the projects of the first semester.

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: 2024/04/03 19:08:00.