Fundamentals of Computing

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.”