Computer Systems and -Architecture 

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

To indicate which parts of the book correspond to the lectures, have a look at last year's overview of what to study for the exam (minor updates will be made shortly to reflect this year's small changes in the course).


Exams
First Session

Your total score for this course depends on the following:

  • Permanent evaluation: Assignments computer systems
  • Permanent evaluation: Project computer architecture
    Permanent evaluation counts for 55% of the course grade.
  • Examination period: Theory exam
    The theory exam counts for 25% of the course grade.
  • Examination period: Practical exam
  • Examination period: Defense practical exam
    The practical exam together with its oral defense counts for 20% of the course grade.
  • To pass the course, you need to get an overall score (sum of all of the above) of at least 50%. Note that as of next year (Academic Year 2014-2015), it will be necessary to obtain an overall score of at least 50% and a score of at least 50% on the theory exam.
Second Session
  • The weights of the different parts of the course remain the same as during the January session:
    • 25% theory-exam
    • 20% practical-examen
    • 55% assignments 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 "assignments during the year" part, 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. Deadline for these assignments is 15 August 2014 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. An overview of the material to study for the exams is given here.

Theory
All lectures (in PDF format) can be found online (on Blackboard) as announced in class. Before each class, the slides are last year's. By the end of the 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.

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 radix.ua.ac.be server) you can use WinSCP. You can simply use the scp command 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.

Planning

Week

Date

Type

Room

Computer Systems

Computer Architecture

1 Tuesday 24 September 13:45 - 15:45 Theory A.143 Introduction, Computer Abstractions
1 Wednesday 25 September 16:00 - 18:00 Theory G.010 Computer Abstractions
1 Friday 27 September 13:45 - 15:45 Theory V.008 (Campus Groenenborger) Data Representation (Unsigned Integers) From Analog to Digital
2 Tuesday 1 October 13:45 - 15:45 (Group A)
Tuesday 1 October 16:00 - 18:00 (Group B)
Lab Session G.025 Introduction to UNIX
3 Wednesday 9 October 16:00 - 18:00 Theory G.010 Data Representation (Signed Integers)
3 Friday 11 October 10:45 - 12:45 Theory G.010 Logic Design, Logic Gates
4 Tuesday 15 October 13:45 - 18:00 Lab Session G.025 (Group A)
G.026 (Group B)
Regular expressions and sed Gates and Wires
4 Wednesday 16 October 16:00 - 18:00 Theory G.010 Performance
4 Friday 18 October 10:45 - 12:45 Theory G.010 Logic Gates: memory
5 Tuesday 22 October 13:45 - 18:00 Lab Session G.025 (Group A)
G.026 (Group B)
UNIX Scripting Adders
5 Wednesday 23 October 16:00 - 18:00 Theory G.010 Data Representation (Fixed/Floating Point)
5 Friday 25 October 10:45 - 12:45 Theory G.010 Data Representation (Floating Point)
6 Tuesday 29 October 13:45 - 18:00 Lab Session G.025 (Group A)
G.026 (Group B)
Data Representation ALU
7 Tuesday 5 November 13:45 - 18:00 Lab Session G.025 (Group A)
G.026 (Group B)
vi FSM
7 Wednesday 6 November 16:00 - 18:00 Theory G.010 Data Representation (character representations)
Assembler
7 Friday 8 November 10:45 - 12:45 Theory G.010 Memory/Finite State Machines
Simple Datapath
7 Sunday 10 November 23:55 Project deadline Blackboard Project 1-3
8 Tuesday 12 November 13:00 - 19:00 Evaluation and feedback G.025 Evaluation Adders + ALU
8 Wednesday 13 November 16:00 - 18:00 Theory G.010 Assembler
8 Friday 15 November 10:45 - 12:45 Theory G.010 Assembler: leaf functions
9 Tuesday 19 November 13:45 - 18:00 Lab Session G.025 (Group A)
G.026 (Group B)
MIPSDatapath
9 Wednesday 20 November 16:00 - 18:00 Theory G.010 Assembler: pointers, pass by value/reference
9 Friday 22 November 10:45 - 12:45 Theory G.010 Assembler: non-leaf functions
Assembler: Frames/Activation Records
Simple Datapath (full)
10 Tuesday 26 November 13:45 - 18:00 Lab Session G.025 (Group A)
G.026 (Group B)
MIPS: Stacks and Subroutines Datapath 2
10 Wednesday 27 November 16:00 - 18:00 Theory G.010 Assembler: Frames/Activation Records (static link chain)
representing matrices
10 Friday 29 November 10:45 - 12:45 Theory G.010 representing dynamic (size) matrices Computer Arithmetic (circuits)
10 Sunday 1 December 23:55 Project deadline Blackboard Project 4-5
11 Tuesday 3 December 13:00 - 18:00 Evaluation and feedback G0.04 Evaluation FSM + Datapath
11 Wednesday 4 December 16:00 - 18:00 Theory G.010 Computer Arithmetic (assembler)
11 Friday 6 December 10:45 - 12:45 Theory G.010 Assembler: more instructions
linking and loading
12 Tuesday 10 December 13:45 - 18:00 Lab Session G.025 (Group A)
G.026 (Group B)
MIPS: Recursion Using the datapath
12 Wednesday 11 December 16:00 - 18:00 Theory G.010 Assembler: linking and loading
other architectures (than MIPS)
12 Friday 13 December 10:45 - 12:45 Theory G.010 other architectures (than MIPS) Datapath with pipelining
12 Sunday 15 December 23:55 Project deadline Blackboard Project 6-7
13 Tuesday 17 December 13:00 - 18:00 Evaluation and feedback G0.06 Evaluation final datapath
13 Wednesday 18 December 16:00 - 18:00 Theory G.010 Exceptions
13 Friday 20 December 10:45 -12:45 Theory G.010
Course overview + exam questions
Datapath with pipelining
Course overview + exam questions
Tuesday 28 January 09:00 -13:00 Exam G.010 Theory
Wednesday 29 January 09:00 -18:30 Exam G.025, oral defense in G.116 Practice, group A
Thursday 30 January 09:00 -18:30 Exam G.025, oral defense in G.116 Practice, group B
Friday 31 January 09:00 -18:30 Exam G.025, oral defense in G.116 Practice, group C

Computer Systems
Program of the lab sessions

Introduction to Unix

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

Material:

Regular Expressions and Sed

Introduction and assignments on regular expressions and sed.

Material:

UNIX Scripting

Introduction to and assignments on UNIX Scripting.

Material:

Data Representation

Assignments on data representation

Material:

vi

Material:

MIPS

Assignments on MIPS

Material:

MIPS: Stacks and subroutines

Assignments on MIPS Stacks and subroutines

Material:

MIPS: Recursion

Assignments on MIPS Recursion

Material:


Computer Architecture
Program of the lab sessions

Gates and Wires

Introduction to Logisim and the use of gates.

Material:

Adders

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

Material:

ALU

Build a 16-bit ALU.

Material:

FSM

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

Material:

Datapath (1)

Build a program counter and a datapath.

Material:

Datapath (2)

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

Material:

Using the Datapath

Write programs to run on your datapath.

Material:

Maintained by Hans Vangheluwe. Last Modified: 2014/09/18 15:53:16.