2023-2024 / INFO0012-2

Computation structures

Duration

26h Th, 26h Pr, 40h Proj.

Number of credits

 Bachelor of Science (BSc) in Engineering5 crédits 
 Bachelor of Science (BSc) in Computer Science5 crédits 
 Master of Science (MSc) in Computer Science and Engineering5 crédits 
 Master of Science (MSc) in Computer Science and Engineering (double degree programme with HEC)5 crédits 
 Master of Science (MSc) in Computer Science5 crédits 
 Master of Science (MSc) in Computer Science (joint-degree programme with HEC)5 crédits 

Lecturer

Pascal Fontaine, Laurent Mathy

Language(s) of instruction

English language

Organisation and examination

Teaching in the first semester, review in January

Schedule

Schedule online

Units courses prerequisite and corequisite

Prerequisite or corequisite units are presented within each program

Learning unit contents

The objectives of the course is to provide to the student a deep understanding on the inner working of the modern computer.  The course is organized in two parts:

- the first part is conducting the student through the basic concepts underlying processors, and explains how imperative programs can be translated into machine code;

- the second part provides knowledge on selected techniques that are mandatory for efficiency in modern computers (e.g. pipe-line, cache memory).

 

Learning outcomes of the learning unit

At the end of this course, the student will understand

  • how semiconductor devices can be built to provide Turing-complete computing machines
  • how imperative programs can be translated into processor instructions
  • how modern techniques for efficient processors impact the execution of programs
This course contributes to the learning outcomes I.1, I.2, II.1, II.2, III.1, III.2, VI.1, VI.2, VII.1, VII.4, VII.5 of the BSc in engineering.

This course contributes to the learning outcomes I.1, I.2, II.1, II.2, III.1, III.2, IV.5, IV.7, VI.1, VI.2, VII.1, VII.4, VII.5 of the MSc in electrical engineering.

Prerequisite knowledge and skills

Although not a prerequisite, basic knowledge of digital circuits (logic gates, flip-flops, registers, RAM, ROM) is useful; those notions will be quickly reviewed at the start of the course.  We assume knowledge of binary encoding (including two's complement of signed integers) and hexadecimal encoding.

Familiarity with imperative programming is absolutely mandatory.

 

Planned learning activities and teaching methods

Lectures are given in English.  Courses are given on Wednesday afternoon and they generally comprise two hours of ex cathedra course (interaction and question are welcome) followed by two hours of lab or problem session.

The lab sessions cover the design of a basic processor.  The problem session essentially focus on the design of a microcode based processor and assembly language programming.

The course also includes programming assignments and building a processor within a digital circuit simulator.

Podcasts are provided in a best effort manner, but they are not updated.  It is the responsibility of the student to be aware of the contents of the in-person theoretical and practical sessions, and to know these contents for the exam.

There is an online discussion forum to ask questions about the course.  This is the preferred way of interaction.  There is no guarantee that mails will be answered.

Mode of delivery (face to face, distance learning, hybrid learning)

Face-to-face course


Additional information:

The course is given during the 1st quadrimester (fall).

Podcasts are provided in a best effort manner, but they are not updated. It is the responsibility of the student to be aware of the contents of the in-person theoretical and practical sessions, and to know these contents for the exam.

 

Recommended or required readings

Reference text; notes and transparencies available on the course space on eCampus.

Exam(s) in session

Any session

- In-person

written exam ( open-ended questions )

Written work / report


Additional information:

For the written exam, one sheet (2 pages) with a reasonably large typeset or handwritten font (>=10pt) is allowed.

There are two main graded assignments for the course:

  • the first consists in building a basic computer from logic gates on, within a simulator of digital circuits;
  • the second is a little programming problem to solve using the assembly language of the above computer.
The exam will evaluate the student's

  • understanding of the inner working of a basic computer;
  • understanding of the inner working of a microcode based computer;
  • capability to program in a simple assembly language;
  • understanding of the modern hardware techniques for efficient computing.
Students must be aware that the last point (understanding of the modern hardware techniques for efficient computing) represents around 50% of the written exam grade.

The grade will be the weighted average of the assignment grade (30%) and of the written exam grade (70%).

There is no guaranteed support for resits.

 

Work placement(s)

Organisational remarks and main changes to the course

The contents of the theoretical and practical sessions, as well as the assignments and useful links, will be made available on the e-Campus space for the course.

Contacts

Teachers: Pascal Fontaine, Laurent Mathy
Phones: 04 366 28 75, 04 366 27 03
e-mails: Pascal.Fontaine@uliege.be, Laurent.Mathy@uliege.be
Assistants: Gaulthier Gain, François Piron
e-mails: Gaulthier.Gain@uliege.be, Francois.Piron@uliege.be
Student assistant: Thibaud Vanmechelen

Association of one or more MOOCs

Items online

Course material available on eCampus
Course material available on eCampus