20810526-2 - FOUNDATIONS OF COMPUTER SCIENCE

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. Specific objectives are:- To introduce computer science as a discipline for automatic problem solving;- To examine basic concepts related to programming electronic computers; in particular, syntax and semantics, methods and techniques for formal programming, algorithm efficiency and correctness;- To introduce programming techniques such as iteration and recursion;- To introduce fundamental data structures such as arrays and lists.
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

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.