Academic year
2020/2021 Syllabus of previous years
Official course title
Course code
CT0005 (AF:332800 AR:176662)
On campus classes
ECTS credits
Degree level
Bachelor's Degree Programme
Educational sector code
2nd Semester
Course year
Go to Moodle page
The teaching falls within the basic educational activities of the degree course in Computer Science.
It allows to learn foundations and techniques for the design of the main components of a computer: Processor - Input/Output - Memory.
It also allows to deepen the knowledge on the machine / assembly levels of a conventional computer.
The course provides further knowledge on measures and techniques for performance evaluation of a computer.
Finally, the course emphasizes the hardware/software interface of computers.
Knowledge and understanding.

The student will have mastered the specific technical terminology.
She will be able to recognize and understand the theoretical foundations and techniques for designing the main components of a computer.
She will have knowledge on representation of information and on measures for performance evaluation.
She will understand the complexity of modern computer architectures, and their influence on software design and performance.
Furthermore, the student will acquire knowledge on the level of machine / assembly programming, and on the translation of simple high-level programs in assembly language.

Ability to apply knowledge and understanding.

The student will be able to carry out exercises aimed at applying the knowledge acquired in the various topics of the course; in particular, on the representation of integer and real numeric values, on the logical design of circuits, on the parallelism at the level of instructions, on the realization of the various levels of memory hierarchies, on performance evaluation of processors and I/O subsystems, on assembly translation of high-level imperative programs.
She will also be able to make hardware / software choices applying the principles of performance evaluation.
Module 1 of the courses "Computer Architecture", and elements of C programming taught in the courses of programming.
- Machine instructions: MPIS processor
- Advanced project of a CPU: pipeline
- Performance evaluation
- Memory hierarchies
- Input/Output
- Program execution: compiler, assembler, linker, loader
- The translation process: from C to MIPS assembly
- The SPIM simulator
Lecture notes.

David A. Patterson, John L. Hennessy. "Computer Organization & Design: The Hardware/Software Interface - 5th edition". Morgan Kaufmann Publisher, 2013.

The exam is organized into two parts.
The first is concerned with a set of theoretical open-ended questions, which aims to test the proficiency of the student with respect to the various topics of the course and the specific technical terminology.
The second part of the exam is related to the skill assessment, through the solution of exercises on the course subjects.
Theoretical lectures.
Exercise lectutes.
Practical lectures.
Definitive programme.
Last update of the programme: 26/04/2020