Course Details for A.Y. 2018/2019
Name:
Laboratorio di Architettura degli Elaboratori / Computer Architectures Lab
Basic information
Credits:
: Bachelor Degree in Computer Science 6 CFU (b)
Degree(s):
Bachelor Degree in Computer Science 1st anno curriculum General Compulsory
Language:
Italian
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.
Course Content
- 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
Learning Outcomes (Dublin Descriptors)
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
Prerequisites and Learning Activities
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
Assessment Methods and Criteria
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.
Textbooks
- G. Conte, A. Mazzeo, N. Mazzocca, P. Prinetto, Architettura dei calcolatori , CittàStudiEdizioni. 2015 (prima edizione). Testo d riferimento
- Kim N. King, C Programming: a Modern Approach , W.W.Norton & Company. 2008 (second edition). Testo di riferimento http://knking.com/books/c2/index.html
- David A. Patterson, John L. Hennessy, Struttura e progetto dei calcolatori , Zanichelli. 2015 (quarta edizione, condotta sulla quinta edizione americana). Testo consigliato per approfondimenti
Course page updates
This course page is available (with possible updates) also for the following academic years:
To read the current information on this course, if it is still available, go to the university course catalogue .
Course information last updated on: 17 febbraio 2016, 18:26