Computation Structures

Student Pages for INFO0012-2/3

General Information

Course Description

The course goals can be found on the University course catalog:

The notes, references and material covered by the theoretical lessons can be found on Prof. Wolper's pages.


The course takes place during the first quarter on Tuesdays in Institut Montefiore (B28), room R3. The theoretical lessons are programmed from 14:00 to 16:00 and the practical sessions from 16:00 to 18:00.

The students are advised to come with their theoretical lessons material at each practice sessions.
Students may bring an owl OR a cat OR a toad.


  • Written exam — Open book for the material covered in the four first lectures (up to and including virtual memory), and closed book for the rest of the material covered.
  • Programming assignments — These have to be completed during the course period (more details in due time).

When my professor says "The final will be easy if you study!" [source]:

Exercises (μ-code and β-assembly)

Exercises (Parallelization and shared memory)

Exercises (Cache and optimizations)

Assignment 1

  This project is over and grades were communicated — A complete solution is available here.

Update 05/10/2015 Project assignment

Your code will be run on βSim, a β-machine simulator written in Java included in the assignment archive. Use it for testing your code!

The deadline is 20/10/2015 at 23:59. Late submissions will be penalized. Use the Montefiore Submission Platform to submit your work.

  • ERRATUM 05/10/2015 At the top of page 3, we say:

    To load into R1 the Reg[R2]-th integer of list (starting with 0), you can use LD(R2, list, R1).
    This is not true; you should of course do something like MULC(R2, 4, R2) and then only LD(R2, list, R1). The project assignment has been updated to correct this sentence.

Frequently Asked Questions Update 06/10/2015

  • Do I have to implement the node addition as a recursive procedure? May I just put everything in main and use no procedures at all?

    No, you may not. We ask you to implement in assembly language the algorithm given in the assignment, which uses a recursive function.

  • Instead of modifying next_mem, could I use a fixed register as a global variable representing it?

    No, you may not. It is part of the project to make you play with memory instructions.

  • May I modify another file than tree.uasm?

    No, you may not: if your code does not work with the original provided files, it is wrong. However, to test your code on other lists of number, you are free to modify your version of config.uasm.

Assignment 2

Update 30/10/2015 Project assignment

This project is about parallel programming.

The deadline is 07/12/2015 at 23:59. Late submissions will be penalized. Use the Montefiore Submission Platform to submit your work.

Frequently Asked Questions Update 12/11/2015

  • How can I be sure that my program will work correctly when being tested?

    Be sure to test your program on the students' machines ( (xx = 01 to 25)). For access to these machines (if you don't already have one), go here and fill in the form. If your program fails to work properly on these machines, it will be considered as non working, even if it works on your personal machine.

  • My operating system is Windows. How can I work on the project?

    You have at least four options:

    1. You may enter the students' machines room and work directly on these machines.
    2. You may work remotely on the students’ machines by using softwares like PuTTY, Filezilla, etc. I have a personal preference for Cygwin, that allows you to run (some, but not all, and unfortunately not System V programs) Linux programs as well as offering ssh and sftp functionalities.
    3. You can also install virtual machines (using e.g. VirtualBox) and have an emulated Linux to work with locally (including with System V). I recommend Fedora as Linux distribution, since Fedora is the OS on the students' machines.
    4. Or, you can create a dual boot on your machine and install Linux on a new partition.


For any questions regarding the course, I'm reachable by email. However, feel free to take an appointment so that you can explain your problem more easily to me :)

  • Office — 2.96, Montefiore Institute (B28)
  • E-Mail