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

* 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


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

Computer operations and representation of information
-computer architecture
-operating systems
-binary arithmetic
-compilation and execution of programs

Algorithms
-program specification
-programming quality
-representation and algorithm design

Programming Fundamentals
-programming langauges
-variables
-Instructions
-types data
-Instructions structured
-style programming
-structure of the program
-functions

Software correctness
-testing methods
-debugging

Management of data sets
-arrays
-strings

Core Documentation

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


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.

Canali

teacher profile | teaching materials

Programme

* 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


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

Computer operations and representation of information
-computer architecture
-operating systems
-binary arithmetic
-compilation and execution of programs

Algorithms
-program specification
-programming quality
-representation and algorithm design

Programming Fundamentals
-programming langauges
-variables
-Instructions
-types data
-Instructions structured
-style programming
-structure of the program
-functions

Software correctness
-testing methods
-debugging

Management of data sets
-arrays
-strings

Core Documentation

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


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.

Canali

teacher profile | teaching materials

Programme

* 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


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

Computer operations and representation of information
-computer architecture
-operating systems
-binary arithmetic
-compilation and execution of programs

Algorithms
-program specification
-programming quality
-representation and algorithm design

Programming Fundamentals
-programming langauges
-variables
-Instructions
-types data
-Instructions structured
-style programming
-structure of the program
-functions

Software correctness
-testing methods
-debugging

Management of data sets
-arrays
-strings

Core Documentation

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


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.

Canali

teacher profile | teaching materials

Programme

* 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


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

Computer operations and representation of information
-computer architecture
-operating systems
-binary arithmetic
-compilation and execution of programs

Algorithms
-program specification
-programming quality
-representation and algorithm design

Programming Fundamentals
-programming langauges
-variables
-Instructions
-types data
-Instructions structured
-style programming
-structure of the program
-functions

Software correctness
-testing methods
-debugging

Management of data sets
-arrays
-strings

Core Documentation

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


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.