20810526-2 - FOUNDATIONS OF COMPUTER SCIENCE

To provide the fundamental skills concerning the “top-down approach” to algorithm design and modular programming, as well as the main methods that allow performing both qualitative and quantitative comparisons among different algorithmic solutions.

Specific objectives:

- To understand and apply problem-solving techniques for algorithm design, with particular reference to approaches based on problem decomposition and simplification;
- To understand and apply modular and recursive programming paradigms;
- To understand and apply methodological tools for the asymptotic evaluation of algorithm efficiency;
- To understand and apply both formal and pragmatic techniques for algorithm correctness verification and program validation;
- To gain practical skills in using fundamental data collections in code development.

Curriculum

Canali

scheda docente | materiale didattico

Programma

* Basic concepts *

Top-down design principles
Decompositions and reductions between problems
Recursion


*Operations*

Basic operations for persistent data management (CRUD)
Use and manipulation of collections

*Data Structures*

Sets
Lists
Maps

* Advanced concepts *

Asymptotic notation
Recursion
Integrated development environments
Libraries
Files


Testi Adottati

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

Modalità Frequenza

Attendance is not compulsory, but it is strongly recommended.

Modalità Valutazione

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.

scheda docente | materiale didattico

Programma

* Basic concepts *

Problems, algorithms, and programs
Computer architecture
Languages and Compilation
Style and conventions
I / O, variables and constants



* Operations *

Information representation
Binary arithmetic
Types of data
Expressions
Boolean algebra

* Control structures *

Selection
Iteration
Functions

* Data structures *

Array
Strings
Matrices

* Advanced concepts *

Recursion
Integrated development environments
Errors
Libraries
File

Testi Adottati

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

Modalità Erogazione

In-person classes and in-class labs (except for periods of sanitary emergency). Attendance is not compulsory, but it is strongly recommended.

Modalità Frequenza

Attendance is not compulsory, but it is strongly recommended.

Modalità Valutazione

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

Canali

scheda docente | materiale didattico

Programma

* Basic concepts *

Top-down design principles
Decompositions and reductions between problems
Recursion


*Operations*

Basic operations for persistent data management (CRUD)
Use and manipulation of collections

*Data Structures*

Sets
Lists
Maps

* Advanced concepts *

Asymptotic notation
Recursion
Integrated development environments
Libraries
Files


Testi Adottati

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

Modalità Frequenza

Attendance is not compulsory, but it is strongly recommended.

Modalità Valutazione

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.

scheda docente | materiale didattico

Programma

* Basic concepts *

Problems, algorithms, and programs
Computer architecture
Languages and Compilation
Style and conventions
I / O, variables and constants



* Operations *

Information representation
Binary arithmetic
Types of data
Expressions
Boolean algebra

* Control structures *

Selection
Iteration
Functions

* Data structures *

Array
Strings
Matrices

* Advanced concepts *

Recursion
Integrated development environments
Errors
Libraries
File

Testi Adottati

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

Modalità Erogazione

In-person classes and in-class labs (except for periods of sanitary emergency). Attendance is not compulsory, but it is strongly recommended.

Modalità Frequenza

Attendance is not compulsory, but it is strongly recommended.

Modalità Valutazione

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

Canali

scheda docente | materiale didattico

Programma

* Basic concepts *

Top-down design principles
Decompositions and reductions between problems
Recursion


*Operations*

Basic operations for persistent data management (CRUD)
Use and manipulation of collections

*Data Structures*

Sets
Lists
Maps

* Advanced concepts *

Asymptotic notation
Recursion
Integrated development environments
Libraries
Files


Testi Adottati

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

Modalità Frequenza

Attendance is not compulsory, but it is strongly recommended.

Modalità Valutazione

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.

scheda docente | materiale didattico

Programma

* Basic concepts *

Problems, algorithms, and programs
Computer architecture
Languages and Compilation
Style and conventions
I / O, variables and constants



* Operations *

Information representation
Binary arithmetic
Types of data
Expressions
Boolean algebra

* Control structures *

Selection
Iteration
Functions

* Data structures *

Array
Strings
Matrices

* Advanced concepts *

Recursion
Integrated development environments
Errors
Libraries
File

Testi Adottati

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

Modalità Erogazione

In-person classes and in-class labs (except for periods of sanitary emergency). Attendance is not compulsory, but it is strongly recommended.

Modalità Frequenza

Attendance is not compulsory, but it is strongly recommended.

Modalità Valutazione

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

Canali

scheda docente | materiale didattico

Programma

* Basic concepts *

Top-down design principles
Decompositions and reductions between problems
Recursion


*Operations*

Basic operations for persistent data management (CRUD)
Use and manipulation of collections

*Data Structures*

Sets
Lists
Maps

* Advanced concepts *

Asymptotic notation
Recursion
Integrated development environments
Libraries
Files


Testi Adottati

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

Modalità Frequenza

Attendance is not compulsory, but it is strongly recommended.

Modalità Valutazione

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.

scheda docente | materiale didattico

Programma

* Basic concepts *

Problems, algorithms, and programs
Computer architecture
Languages and Compilation
Style and conventions
I / O, variables and constants



* Operations *

Information representation
Binary arithmetic
Types of data
Expressions
Boolean algebra

* Control structures *

Selection
Iteration
Functions

* Data structures *

Array
Strings
Matrices

* Advanced concepts *

Recursion
Integrated development environments
Errors
Libraries
File

Testi Adottati

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

Modalità Erogazione

In-person classes and in-class labs (except for periods of sanitary emergency). Attendance is not compulsory, but it is strongly recommended.

Modalità Frequenza

Attendance is not compulsory, but it is strongly recommended.

Modalità Valutazione

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