20810526-2 - FOUNDATIONS OF COMPUTER SCIENCE

To provide the basics of "computer culture" through the introduction of effective methodological and conceptual tools, aiming to face in a flexible way the evolution of technology and the broad world of applications, emphasizing the role of Computer Science as a discipline for the automatic solution of problems.
Specific objectives:
- To understand the essential elements related to computer architecture and operating systems, as well as information representation;
- To gain the ability to design and code simple algorithms using structured programming and basic programming techniques such as iteration, as well as elementary data structures;
- To understand and use testing methodologies (debugging) for the produced code.

Curriculum

Canali

teacher profile | teaching materials

Programme

Recursion

Program Complexity

- Big O notation

Sorting and Searching Algorithms

Notable Divide-and-Conquer Algorithms
- Karatsuba algorithm
- Strassen's algorithm
Pointers and Dynamic Memory Allocation

Data Set Management, Structures and Files

Singly and Doubly Linked Lists

Prerequisiti

The course does not require any prerequisite.

Core Documentation

A. Bellini, A. Guidi, "Linguaggio C. Una guida alla programmazione con elementi di Python", VI Edition, McGraw-Hill.

Reference Bibliography

A. Bellini, A. Guidi Titolo: "Linguaggio C. Una guida alla programmazione con elementi di Python", VI Edition, McGraw-Hill. Kernighan, Ritchie - The C programming language

Attendance

Attendance is not compulsory, but it is strongly recommended.

Type of evaluation

The exam consists of a written test including programming exercises, multiple choice questions, theoretical questions regarding the course program to be carried out in the laboratory.

teacher profile | teaching materials

Programme

Recursion
Computational Complexity
- Big O Notation
Sorting and Searching Algorithms
Notable Divide and Conquer Algorithms (Karatsuba, Strassen)
Pointers and Dynamic Memory Allocation
Data Set Management, Structs, and Files
Singly and Doubly Linked Lists

Prerequisiti

None

Core Documentation

Autore: Bellini, Guidi
Titolo: Linguaggio C - Guida alla programmazione con elementi di Python
Edizione: Settima edizione
Editore: McGraw-hill
Anno: 2025


Reference Bibliography

Author: Kernighan, Ritchie Title: Il linguaggio C. Principi di programmazione e manuale di riferimento Edition: Seconda edizione Editor: Pearson Year: 2004

Type of delivery of the course

live and online lectures, live and online exercise sessions

Attendance

attending is not mandatory

Type of evaluation

The exam consists of some multiple-choice answers and of some programming exercises, to be realized on a computer. Two intermediate examinations, together with a preliminary one, replace the exam, if passed with success. Student assessment is based on the Dublin Descriptors and takes into account the level of knowledge, understanding, and critical processing of the topics covered in the course. Students who demonstrate that they have acquired the fundamental concepts and are able to apply them in simple contexts will receive a passing grade. Average grades will be awarded to those who, in addition to mastering the basics, show the ability to analyze and independently elaborate on more complex concepts. The highest grades are reserved for students who demonstrate in-depth understanding, synthesis skills, critical thinking, and autonomy in solving problems, including new ones or those not explicitly addressed during the course.

Canali

teacher profile | teaching materials

Mutuazione: 20810526-2 FONDAMENTI DI INFORMATICA II MODULO in Ingegneria Informatica e dell'Intelligenza Artificiale L-8 R CANALE 1 LIMONGELLI CARLA

Programme

Recursion

Program Complexity

- Big O notation

Sorting and Searching Algorithms

Notable Divide-and-Conquer Algorithms
- Karatsuba algorithm
- Strassen's algorithm
Pointers and Dynamic Memory Allocation

Data Set Management, Structures and Files

Singly and Doubly Linked Lists

Prerequisiti

The course does not require any prerequisite.

Core Documentation

A. Bellini, A. Guidi, "Linguaggio C. Una guida alla programmazione con elementi di Python", VI Edition, McGraw-Hill.

Reference Bibliography

Author: Kernighan, Ritchie Title: Il linguaggio C. Principi di programmazione e manuale di riferimento Edition: Seconda edizione Editor: Pearson Year: 2004

Attendance

Attendance is not compulsory, but it is strongly recommended.

Type of evaluation

The exam consists of a written test including programming exercises, multiple choice questions, theoretical questions regarding the course program to be carried out in the laboratory.

teacher profile | teaching materials

Mutuazione: 20810526-2 FONDAMENTI DI INFORMATICA II MODULO in Ingegneria Informatica e dell'Intelligenza Artificiale L-8 R CANALE 2 FRATI FABRIZIO

Programme

Recursion
Computational Complexity
- Big O Notation
Sorting and Searching Algorithms
Notable Divide and Conquer Algorithms (Karatsuba, Strassen)
Pointers and Dynamic Memory Allocation
Data Set Management, Structs, and Files
Singly and Doubly Linked Lists

Prerequisiti

None

Core Documentation

Autore: Bellini, Guidi
Titolo: Linguaggio C - Guida alla programmazione con elementi di Python
Edizione: Settima edizione
Editore: McGraw-hill
Anno: 2025


Reference Bibliography

Author: Kernighan, Ritchie Title: Il linguaggio C. Principi di programmazione e manuale di riferimento Edition: Seconda edizione Editor: Pearson Year: 2004

Type of delivery of the course

live and online lectures, live and online exercise sessions

Attendance

attending is not mandatory

Type of evaluation

The exam consists of some multiple-choice answers and of some programming exercises, to be realized on a computer. Two intermediate examinations, together with a preliminary one, replace the exam, if passed with success. Student assessment is based on the Dublin Descriptors and takes into account the level of knowledge, understanding, and critical processing of the topics covered in the course. Students who demonstrate that they have acquired the fundamental concepts and are able to apply them in simple contexts will receive a passing grade. Average grades will be awarded to those who, in addition to mastering the basics, show the ability to analyze and independently elaborate on more complex concepts. The highest grades are reserved for students who demonstrate in-depth understanding, synthesis skills, critical thinking, and autonomy in solving problems, including new ones or those not explicitly addressed during the course.

Canali

teacher profile | teaching materials

Mutuazione: 20810526-2 FONDAMENTI DI INFORMATICA II MODULO in Ingegneria Informatica e dell'Intelligenza Artificiale L-8 R CANALE 1 LIMONGELLI CARLA

Programme

Recursion

Program Complexity

- Big O notation

Sorting and Searching Algorithms

Notable Divide-and-Conquer Algorithms
- Karatsuba algorithm
- Strassen's algorithm
Pointers and Dynamic Memory Allocation

Data Set Management, Structures and Files

Singly and Doubly Linked Lists

Prerequisiti

The course does not require any prerequisite.

Core Documentation

A. Bellini, A. Guidi, "Linguaggio C. Una guida alla programmazione con elementi di Python", VI Edition, McGraw-Hill.

Reference Bibliography

Author: Kernighan, Ritchie Title: Il linguaggio C. Principi di programmazione e manuale di riferimento Edition: Seconda edizione Editor: Pearson Year: 2004

Attendance

Attendance is not compulsory, but it is strongly recommended.

Type of evaluation

The exam consists of a written test including programming exercises, multiple choice questions, theoretical questions regarding the course program to be carried out in the laboratory.

teacher profile | teaching materials

Mutuazione: 20810526-2 FONDAMENTI DI INFORMATICA II MODULO in Ingegneria Informatica e dell'Intelligenza Artificiale L-8 R CANALE 2 FRATI FABRIZIO

Programme

Recursion
Computational Complexity
- Big O Notation
Sorting and Searching Algorithms
Notable Divide and Conquer Algorithms (Karatsuba, Strassen)
Pointers and Dynamic Memory Allocation
Data Set Management, Structs, and Files
Singly and Doubly Linked Lists

Prerequisiti

None

Core Documentation

Autore: Bellini, Guidi
Titolo: Linguaggio C - Guida alla programmazione con elementi di Python
Edizione: Settima edizione
Editore: McGraw-hill
Anno: 2025


Reference Bibliography

Author: Kernighan, Ritchie Title: Il linguaggio C. Principi di programmazione e manuale di riferimento Edition: Seconda edizione Editor: Pearson Year: 2004

Type of delivery of the course

live and online lectures, live and online exercise sessions

Attendance

attending is not mandatory

Type of evaluation

The exam consists of some multiple-choice answers and of some programming exercises, to be realized on a computer. Two intermediate examinations, together with a preliminary one, replace the exam, if passed with success. Student assessment is based on the Dublin Descriptors and takes into account the level of knowledge, understanding, and critical processing of the topics covered in the course. Students who demonstrate that they have acquired the fundamental concepts and are able to apply them in simple contexts will receive a passing grade. Average grades will be awarded to those who, in addition to mastering the basics, show the ability to analyze and independently elaborate on more complex concepts. The highest grades are reserved for students who demonstrate in-depth understanding, synthesis skills, critical thinking, and autonomy in solving problems, including new ones or those not explicitly addressed during the course.

Canali

teacher profile | teaching materials

Mutuazione: 20810526-2 FONDAMENTI DI INFORMATICA II MODULO in Ingegneria Informatica e dell'Intelligenza Artificiale L-8 R CANALE 1 LIMONGELLI CARLA

Programme

Recursion

Program Complexity

- Big O notation

Sorting and Searching Algorithms

Notable Divide-and-Conquer Algorithms
- Karatsuba algorithm
- Strassen's algorithm
Pointers and Dynamic Memory Allocation

Data Set Management, Structures and Files

Singly and Doubly Linked Lists

Prerequisiti

The course does not require any prerequisite.

Core Documentation

A. Bellini, A. Guidi, "Linguaggio C. Una guida alla programmazione con elementi di Python", VI Edition, McGraw-Hill.

Reference Bibliography

Author: Kernighan, Ritchie Title: Il linguaggio C. Principi di programmazione e manuale di riferimento Edition: Seconda edizione Editor: Pearson Year: 2004

Attendance

Attendance is not compulsory, but it is strongly recommended.

Type of evaluation

The exam consists of a written test including programming exercises, multiple choice questions, theoretical questions regarding the course program to be carried out in the laboratory.

teacher profile | teaching materials

Mutuazione: 20810526-2 FONDAMENTI DI INFORMATICA II MODULO in Ingegneria Informatica e dell'Intelligenza Artificiale L-8 R CANALE 2 FRATI FABRIZIO

Programme

Recursion
Computational Complexity
- Big O Notation
Sorting and Searching Algorithms
Notable Divide and Conquer Algorithms (Karatsuba, Strassen)
Pointers and Dynamic Memory Allocation
Data Set Management, Structs, and Files
Singly and Doubly Linked Lists

Prerequisiti

None

Core Documentation

Autore: Bellini, Guidi
Titolo: Linguaggio C - Guida alla programmazione con elementi di Python
Edizione: Settima edizione
Editore: McGraw-hill
Anno: 2025


Reference Bibliography

Author: Kernighan, Ritchie Title: Il linguaggio C. Principi di programmazione e manuale di riferimento Edition: Seconda edizione Editor: Pearson Year: 2004

Type of delivery of the course

live and online lectures, live and online exercise sessions

Attendance

attending is not mandatory

Type of evaluation

The exam consists of some multiple-choice answers and of some programming exercises, to be realized on a computer. Two intermediate examinations, together with a preliminary one, replace the exam, if passed with success. Student assessment is based on the Dublin Descriptors and takes into account the level of knowledge, understanding, and critical processing of the topics covered in the course. Students who demonstrate that they have acquired the fundamental concepts and are able to apply them in simple contexts will receive a passing grade. Average grades will be awarded to those who, in addition to mastering the basics, show the ability to analyze and independently elaborate on more complex concepts. The highest grades are reserved for students who demonstrate in-depth understanding, synthesis skills, critical thinking, and autonomy in solving problems, including new ones or those not explicitly addressed during the course.