Computer Engineering

This is the homepage for the computer engineering course. You can find all course information here.

This course is part of the CESE masters programme. This course's curriculum will be continued by the course Processor Design Project

Course Description

The goal of this course is to explain in significant depth what is involved in designing a computer system and to provide more detailed knowledge on specific topics in the area of Computer and Embedded Systems Engineering. The course introduces the entire computer engineering stack and it’s interconnecting layers consisting of both hardware and software. Along with the main principles behind design tools and techniques used in this field. This makes the course an excellent introduction to the field of Computer and Embedded Systems Engineering, the widely used terminology and the most relevant current trends.

Learning Objectives

By the end of the course you will be able to:

  1. Describe number representation system, conversion between number representation.
  2. Perform binary arithmetic operation such as addition, multiplication, and division.
  3. Implement fixed- and floating-point numbers in C/C++ and compare their accuracy.
  4. Explain basic concepts of computer architecture such as processing unit, memory system, control unit and datapath.
  5. Use logic gates to implement simple combinational circuits such as adder, multiplexer.
  6. Write a simplified RISC-V assembly code and Cuda program for grayscale image conversion.
  7. Explain system software and operating systems fundamentals, task management, synchronization, compilation, and interpretation.
  8. Use design and automation tools to perform synthesis and optimization.

Course Schedule

Lecture Schedule

TopicDate & TimeLocation
L1.1Representing Numbers4th Sept (13:45)EEMCS-Hall Ampere
L1.2Binary Computer Arithmetic6th Sept (08:45)AS-Hall E
L2.1Putting together a Micro-architecture, RISC-V11th Sept (13:45)EEMCS-Hall Ampere
L2.2The Architecture of RISC-V (1)13th Sept (08:45)AS-Hall E
L3.1The Architecture of RISC-V (2)18th Sept (13:45)EEMCS-Hall Ampere
L3.2The Role of the Assembly Language RISC-V20th Sept (08:45)AS- Hall E
L4.1RISC-V Input/Output (I/O) and Interrupts25th Sept (13:45)EEMCS-Hall Ampere
L4.2Computer Systems Memory Hierarchy27th Sept (08:45)AS-Hall E
L5.1Processors Working Together2nd Oct (13:45)EEMCS-Hall Ampere
L5.2Moving the Data4th Oct (08:45)AS-Hall E
L6.1Scaling out the systems9th Oct (13:45)EEMCS-Hall Ampere
L6.2System Software and OS11th Oct (08:45)AS-Hall E
L7.1Compilation and Interpretation16th Oct (13:45)EEMCS-Hall Ampere
L7.2Design Automation Methods (1)18th Oct (08:45)AS-Hall E
L8.1Design Automation Methods (2)23th Oct (13:45)EEMCS-Hall Ampere
L8.2High Level Synthesis (HLS) and
Domain Specific methods
25th Oct (08:45)AS-Hall E

Exam: 28th Oct, Monday (09:00)

Lab Schedule

TopicDate
Lab1Numerics &Functional Units17th Sept
Lab2RISCV1st Oct
Lab3Parallel Programing with CUDA15th Oct
Lab4EDA Tools22th Oct

Grading

The course consists out of a written exam and 4 lab assignments, 1 per lab session. Each lab assignment is Pass/Fail and you are required to pass each lab in order to pass the course. The lab should be completed during the lab session, a Pass/Fail will be awarded during the lab session

Passing in all the labs and a final grade of 6 is needed to pass the course.