Computer Systems and Architecture 

On this page you will find information about the course "Computersystemen en -architectuur" (1001WETCAR) for the first semester of the 2016-2017 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 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.


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. 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 TBA (To Be Announced). 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.

Theory
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.
byRefenceVSbyValue.c demonstrates the use of call-by-value and call-by-reference in C.

Blackboard scribbles [pdf].

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.

Files

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

Week

Date

Type

Room

Computer Systems

Computer Architecture

1Tuesday 27 September 2016 10:45 - 12:45TheoryA.143Introduction, Computer Abstractions
1Friday 30 September 2016 08:30 - 12:45Lab sessionG.025 (Group A)
G.026 (Group B)
Introduction to UNIX
2Tuesday 04 October 2016 10:45 - 12:45No class
2Tuesday 04 October 2016 16:00 - 18:00TheoryA.143Computer Abstractions: Performance
2Thursday 06 October 2016 08:30 - 10:30TheoryA.143Data Representation (Unsigned Integers)From Analog to Digital
2Friday 07 October 2016 08:30 - 12:45Lab sessionG.025 (Group A)
G.026 (Group B)
Regular expressions and sedGates and Wires
2Friday 07 October 2016 16:00 - 18:00TheoryA.143Data Representation (Signed Integers)
3Tuesday 11 October 2016 10:45 - 12:45TheoryA.143Logic Design, Logic Gates
3Thursday 13 October 2016 08:30 - 10:30TheoryA.143Adders, ALU
3Friday 14 October 2016 08:30 - 12:45Lab sessionG.025 (Group A)
G.026 (Group B)
UNIX ScriptingAdders
3Friday 14 October 2016 16:00 - 18:00TheoryA.143Data Representation (Fixed Point, Floating Point)
4Tuesday 18 October 2016 10:45 - 12:45TheoryA.143Data Representation (IEEE-754 Floating Point, ASCII/EBCDIC character representations)
4Thursday 20 October 2016 08:30 - 10:30TheoryA.143Data Representation (Unicode character representation); Assembler
4Friday 21 October 2016 08:30 - 12:45Lab sessionG.025Data RepresentationALU
4Friday 21 October 2016 16:00 - 18:00TheoryA.143Logic Gates: memory
5Tuesday 25 October 2016 10:45 - 12:45TheoryA.143AssemblerFinite State Machines
5Friday 28 October 2016 08:30 - 12:45Lab sessionG.025Continue work on ALU / Memory
5Friday 28 October 2016 16:00 - 18:00TheoryA.143Leaf functions, pass by value/reference
6Tuesday 01 November 2016 10:45 - 12:45No class
6Friday 04 November 2016 08:30 - 12:45Lab sessionG.025viContinue work on Memory
6Friday 04 November 2016 16:00 - 18:00TheoryA.143Simple Datapath
7Tuesday 08 November 2016 10:45 - 12:45TheoryA.143Simple Datapath (full)
7Tuesday 08 November 2016 13:45 - 15:45TheoryA.143Data/control indirection, pointers, functions
7Friday 11 November 2016 08:30 - 12:45No class
8Tuesday 15 November 2016 10:45 - 12:45TheoryA.143Memory layout/mapping C
8Tuesday 15 November 2016 13:45 - 15:45TheoryA.143Non-leaf functions, Frames/Activation Records
8Wednesday 16 November 2016 23:55Project deadlineBlackboardProject 1-3
8Friday 18 November 2016 08:30 - 12:45Lab sessionG.025MIPSDatapath
9Tuesday 22 November 2016 09:00 - 15:00Evaluation and feedbackG.025Evaluation Gates and Wires + Adders + ALU
9Tuesday 22 November 2016 10:45 - 12:45No class
9Tuesday 22 November 2016 13:45 - 15:45No class
9Friday 25 November 2016 08:30 - 12:45Lab sessionG.025Continue work on Datapath
10Tuesday 29 November 2016 10:45 - 12:45TheoryA.143Representing matrices
10Tuesday 29 November 2016 13:45 - 15:45TheoryA.143Linking and loading
10Friday 02 December 2016 08:30 - 12:45Lab sessionG.025MIPS: Stacks and SubroutinesFull Datapath
11Tuesday 06 December 2016 10:45 - 12:45TheoryA.143(Dynamic) linking
11Tuesday 06 December 2016 13:45 - 15:45TheoryA.143other architectures (than MIPS)
11Wednesday 07 December 2016 23:55Project deadlineBlackboardProject 4-5
11Friday 09 December 2016 08:30 - 12:45Evaluation and feedbackG.025Evaluation Memory + Datapath
12Tuesday 13 December 2016 10:45 - 12:45TheoryA.143Computer Arithmetic (assembler)Computer Arithmetic (circuits)
12Tuesday 13 December 2016 13:45 - 15:45TheoryA.143Datapath with pipelining
12Friday 16 December 2016 08:30 - 12:45Lab sessionG.025MIPS: RecursionDatapath in Use
13Tuesday 20 December 2016 10:45 - 12:45TheoryA.143Exceptions
13Tuesday 20 December 2016 13:45 - 15:45TheoryA.143Course overview + exam questionsCourse overview + exam questions
13Wednesday 21 December 2016 23:55Project deadlineBlackboardProject 6-7
13Friday 23 December 2016 08:30 - 12:45Evaluation and feedbackG.025Evaluation Full Datapath + Datapath in Use
Monday 16 January 2017 09:00 - 12:00ExamG.010Theory examTheory exam
Tuesday 17 January 2017 09:00 - 17:00ExamG.025/G.116Practical exam + oral defense (group 1)
Wednesday 18 January 2017 09:00 - 17:00ExamG.025/G.116Practical exam + oral defense (group 2)
Thursday 19 January 2017 09:00 - 17:00ExamG.025/G.116Practical exam + oral defense (group 3)
Friday 20 January 2017 09:00 - 17:00ExamG.025/G.116Practical exam + oral defense (group 4)

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.

Material:

Exercises 2: Regular Expressions and Sed

Introduction and assignments on regular expressions and sed.

Material:

Exercises 3: UNIX Scripting

Introduction to and assignments on UNIX Scripting.

Material:

Exercises 4: Data Representation

Assignments on data representation

Material:

vi

Material:

Exercises 6: MIPS

Assignments on MIPS

Material:

Exercises 7: MIPS: Stacks and subroutines

Assignments on MIPS Stacks and subroutines

Material:

Exercises 8: MIPS: Recursion

Assignments on MIPS Recursion

Material:

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.

Material:

Project 2: Adders

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

Material:

Project 3: ALU

Build a 8-bit ALU.

Material:

Project 4: Memory

Build a register file, counter, clock divider and 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:

Project 7: Datapath in Use

Write programs to run on your datapath.

Material:

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: 2017/09/15 14:29:59.