This site uses only proprietary and third party technical cookies. By continuing to browse the site you are agreeing to our use of cookies. I agree I want to find out more
Browse the Department site:
Browse the Teaching site:

Programme of Course "Laboratorio di Architettura degli Elaboratori"



Type of course unit:

Bachelor Degree in Computer Science curriculum General: Compulsory

Level of course unit:

Undergraduate Degrees


2nd semester

Number of credits:

Bachelor Degree in Computer Science: 6 (workload 150 hours)


Luca Forlizzi (LucadotForlizziatunivaqdotit)

1. Course Objectives

This Course provides the students with the intermediate knowledge of imperative programming, of memory management techniques, of assembly language programming and related technologies, and of machine languages. At the end of the course the students will understand non-elementary programs written with an imperative programming language, will be able to realize constructs of a high level programming language with machine language instructions, and to understand and use the technology underlying a programming language. The students are expected to develop capacities for being attentive to details in algorithms implementation, to program portability, to the respect of programming languages standards and rules, as well as for looking for efficient implementations of algorithms. 

2. Course Contents and learning outcomes (Dublin Descriptors)

Topics of the course include:

  • Structured computed organization, computational models, programming languages and their standards
  • Imperative programming with high level languages oriented towards system programming
  • Basic and derived data types; data types representation
  • Memory management; low-level programming
  • Assembly language programming; translation of the main constructs of a high level programming language in an assembly language
  • Machine languages; assembly and disassembly processes

On successful completion of this course, the student should

  • have intermediate-level notions about imperative programming; have in-depth knowledge about memory management techniques, assembly language programming and related technologies, and about machine languages
  • be able to interpret non-elementary programs written with an imperative programming language;  be able to implement constructs of a high level programming language with machine language instructions and interpret technical specifications of high-level programming languages, assembly languages and machine languages
  • be able to select, among different ways to implement programs, those leading to better performances
  • be able to discuss, with appropriate vocabulary, languages and computer architectures 
  • be able to use an imperative language oriented towards system programming in subsequent courses about computer architectures; be able to see links between real computers and computational models as presented in theoretical computer science courses

3. Course Prerequisites

Knowledges: elementary knowledge of imperative programming, basics of computer systems architecture, elementary knowledge of mathematics, reading and understanding English language. Abilities: implementing correctly elementary algorithms, compiling and running simple programs on a computer

4. Teaching methods and language

Lectures and exercises


Reference textbooks

  • G. Conte, A. Mazzeo, N. Mazzocca, P. Prinetto, Architettura dei calcolatori. CittàStudiEdizioni. 2015 (prima edizione).
  • Kim N. King, C Programming: a Modern Approach. W.W.Norton & Company. 2008 (second edition).
  • David A. Patterson, John L. Hennessy, Struttura e progetto dei calcolatori. Zanichelli. 2015 (quarta edizione, condotta sulla quinta edizione americana).

5. Assessment Methods

Pre-Assessment There is no formal pre-assessment, but Course pre-requisites are clearly stated on the website.  Formative Assessment The formative assessment is performed via interaction between teacher and students during lectures. Students are involved in questioning and discussion, by means of open oral questions to the entire class. Summative Assessment  The course grade is determined by a written test followed by an oral exam. It will be also provided an optional mid-term written test, which is meant to cover the first part of the course, in order to help the students to split the workload. The written tests consist in a series of exercises and open questions, to which the student has to provide a detailed extended answer, aimed to verify the practical abilities and level of knowledge acquired. The oral exam will occur within two weeks of the written test and will typically cover the areas of the written answers that need clarification, plus, possibly, additional subjects proposed by the teacher. Criteria of evaluation will be: level of knowledge and practical ability; the property of use of the technical/mathematical language; the clarity and completeness of explanations; capacity to make sensible decisions in the writing and translation of programs.

Course information last updated on: 17 febbraio 2016, 18:26