1 YEAR | 2 semester | 9 CFU |
Flavio Lombardi | 2018-19 |
Enrico Simeoli | 2019-20 |
Walter Liguori |
since 2020-21 |
Gianluca ROSSI | 2023-24 |
Cesare ROSETI Mauro DE SANCTIS Tommaso ROSSI |
2024-25 |
Code: 8037947 SSD: ING-INF/05 |
OBJECTIVES
LEARNING OUTCOMES:
The course aims to provide students with knowledge and skills for effectively using computer methodologies and tools in the engineering field, especially for developing algorithms.
KNOWLEDGE AND UNDERSTANDING:
Acquire knowledge of the internals of computer architectures.
Acquire knowledge of data structures and algorithms.
Acquire knowledge of the principles of programming languages, including the object-oriented paradigm and tools and techniques for software development.
APPLYING KNOWLEDGE AND UNDERSTANDING:
Acquire the ability to analyze problems and design and implement software artifacts addressing them.
Acquire the capability of a group working on software development and documentation.
MAKING JUDGEMENTS:
Being able to choose appropriate languages and tools for software development.
Being able to evaluate the correctness and efficiency of a software implementation.
COMMUNICATION SKILLS:
Be able to describe and document software artifacts correctly and effectively.
LEARNING SKILLS:
Using the technical documentation and the reference manuals of systems, products and languages effectively.
COURSE SYLLABUS
-
“Introduction to the computational method. Von Neumann architecture. Programming languages: assembler, compiled, and interpreted languages. Basic concepts of programming languages: variables; data types and assignment; control structures (loops, conditional selection); basic data structures; input and output. Functions and recursion. Searching and sorting algorithms. Computational complexity. Dynamic data structures: array; linked lists; trees; hash tables. Object-oriented programming.
The programming languages taught are Python and C.”