20810526-1 - 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

COURSE PROGRAM

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

Pointers and dynamic memory allocation
Data structures, struct, files
Recursion
Sorting and searching algorithms
Computational cost of programs
- Big O, Omega and Theta notations
- best, average, and worst case analysis
Data types: lists



Testi Adottati

Alessandro Bellini, Andrea Guidi
Linguaggio C - Quinta edizione
ISBN: 9788838668210- Autore: Kernighan, Ritchie
Titolo: Il linguaggio C. Principi di programmazione e manuale di riferimento
Editore: Pearson


Modalità Erogazione

- live and online lectures, live and online exercise sessions - attending is not mandatory

Modalità Frequenza

- attending is not mandatory

Modalità Valutazione

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

scheda docente | materiale didattico

Programma

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

Testi Adottati

Author: Bellini, Guidi
Title: Linguaggio C - Una guida alla programmazione con elementi di Objective-C
Edition: 5-th edition
Editor: McGraw-hill
Year: 2013

Bibliografia Di Riferimento

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

Modalità Erogazione

live and online lectures, live and online exercise sessions

Modalità Frequenza

attending is not mandatory

Modalità Valutazione

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

scheda docente | materiale didattico

Programma

COURSE PROGRAM

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

Pointers and dynamic memory allocation
Data structures, struct, files
Recursion
Sorting and searching algorithms
Computational cost of programs
- Big O, Omega and Theta notations
- best, average, and worst case analysis
Data types: lists



Testi Adottati

Alessandro Bellini, Andrea Guidi
Linguaggio C - Quinta edizione
ISBN: 9788838668210- Autore: Kernighan, Ritchie
Titolo: Il linguaggio C. Principi di programmazione e manuale di riferimento
Editore: Pearson


Modalità Erogazione

- live and online lectures, live and online exercise sessions - attending is not mandatory

Modalità Frequenza

- attending is not mandatory

Modalità Valutazione

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

scheda docente | materiale didattico

Programma

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

Testi Adottati

Author: Bellini, Guidi
Title: Linguaggio C - Una guida alla programmazione con elementi di Objective-C
Edition: 5-th edition
Editor: McGraw-hill
Year: 2013

Bibliografia Di Riferimento

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

Modalità Erogazione

live and online lectures, live and online exercise sessions

Modalità Frequenza

attending is not mandatory

Modalità Valutazione

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

scheda docente | materiale didattico

Programma

COURSE PROGRAM

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

Pointers and dynamic memory allocation
Data structures, struct, files
Recursion
Sorting and searching algorithms
Computational cost of programs
- Big O, Omega and Theta notations
- best, average, and worst case analysis
Data types: lists



Testi Adottati

Alessandro Bellini, Andrea Guidi
Linguaggio C - Quinta edizione
ISBN: 9788838668210- Autore: Kernighan, Ritchie
Titolo: Il linguaggio C. Principi di programmazione e manuale di riferimento
Editore: Pearson


Modalità Erogazione

- live and online lectures, live and online exercise sessions - attending is not mandatory

Modalità Frequenza

- attending is not mandatory

Modalità Valutazione

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

scheda docente | materiale didattico

Programma

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

Testi Adottati

Author: Bellini, Guidi
Title: Linguaggio C - Una guida alla programmazione con elementi di Objective-C
Edition: 5-th edition
Editor: McGraw-hill
Year: 2013

Bibliografia Di Riferimento

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

Modalità Erogazione

live and online lectures, live and online exercise sessions

Modalità Frequenza

attending is not mandatory

Modalità Valutazione

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

scheda docente | materiale didattico

Programma

COURSE PROGRAM

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

Pointers and dynamic memory allocation
Data structures, struct, files
Recursion
Sorting and searching algorithms
Computational cost of programs
- Big O, Omega and Theta notations
- best, average, and worst case analysis
Data types: lists



Testi Adottati

Alessandro Bellini, Andrea Guidi
Linguaggio C - Quinta edizione
ISBN: 9788838668210- Autore: Kernighan, Ritchie
Titolo: Il linguaggio C. Principi di programmazione e manuale di riferimento
Editore: Pearson


Modalità Erogazione

- live and online lectures, live and online exercise sessions - attending is not mandatory

Modalità Frequenza

- attending is not mandatory

Modalità Valutazione

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

scheda docente | materiale didattico

Programma

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

Testi Adottati

Author: Bellini, Guidi
Title: Linguaggio C - Una guida alla programmazione con elementi di Objective-C
Edition: 5-th edition
Editor: McGraw-hill
Year: 2013

Bibliografia Di Riferimento

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

Modalità Erogazione

live and online lectures, live and online exercise sessions

Modalità Frequenza

attending is not mandatory

Modalità Valutazione

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.