20810073 - FOUNDATIONS OF COMPUTER SCIENCE

To provide the basics of the “computer culture”, through the study of methodological and conceptual tools for facing in a flexible, effective and lasting way the evolution of technology and the wide world of applications. Specific objectives include:
- introducing computers as automatic systems for the solution of problems
- introducing basic concepts about programming electronic computers; syntactical rules, programming methodologies, both from a formal and from a pragmatic perspective; quality measures related to efficiency and correctness
- introducing programming techniques, like iteration and recursion;
- introducing data structures and algorithms for foundational problems like searching and sorting.

At the end of the course students will be able to deal with a programming problem in all its aspects, namely:
- understand and analyze the problem
- design iterative or recursive algorithms to solve problems using the most suitable data structures
- encode the algorithms in C
- carry out correctness tests
- critically judge the code in terms of readability and efficiency.

Curriculum

Canali

teacher profile | teaching materials

Programme

COURSE PROGRAM (First semester)

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

COURSE PROGRAM (Second semester)

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
Abstract data types and related structures
- lists
- queues
- stacks


Core Documentation

Alessandro Bellini, Andrea Guidi
Linguaggio C - 5-th edition
ISBN: 9788838668210

Type of delivery of the course

Exams take place at the laboratory and consist of two parts: the first one is a series of multiple-choice and open-ended questions, the second one is a program in the C language. In addition to the institutional exams, there are three intermediate tests that take place during the course. The first one is multiple-choice and open-ended questions. The second and third are programming tests.

Type of evaluation

Exams take place at the laboratory and consist of two parts: the first one is a series of multiple-choice and open-ended questions, the second one is a program in the C language. In addition to the institutional exams, there are three intermediate tests that take place during the course. The first one consists of multiple-choice and open-ended questions. The second and third are programming tests.

teacher profile | teaching materials

Programme

COURSE PROGRAM (First semester)

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

COURSE PROGRAM (Second semester)

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
Abstract data types and related structures
- lists
- queues
- stacks

Core Documentation

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

Reference Bibliography

Autori: Brian W. Kernighan, Dennis M. Ritchie Titolo: Il linguaggio C: ANSI C - Seconda Edizione Editore: Jackson Libri/Prentice Hall

Type of delivery of the course

Lectures, laboratories, self-assessment quizzes. All the material presented during lectures is available on the platform moodle1.ing.uniroma3.it. Should the COVID-19 emergency last through the year, the teaching activities will be modified accordingly. In particular, lectures will be delivered via Microsoft Teams, they will be recorded and made available on the platform moodle1.ing.uniroma3.it.

Type of evaluation

Exams take place at the laboratory and consist of two parts: the first one is a series of multiple-choice and open-ended questions, the second one is a program in the C language. In addition to the institutional exams, there are three intermediate tests that take place during the course. The first one consists of multiple-choice and open-ended questions. The second and third are programming tests. Should the COVID-19 emergency last through the year, the teaching activities will be modified accordingly. In particular, the exam will comply with art.1 del Decreto Rettorale n°. 703 del 5 maggio 2020. Specifically, the exam will consist of a written test and of an oral examination, both done by electronic means. The oral examination is decisive for the final evaluation.

teacher profile | teaching materials

Programme

COURSE PROGRAM (First semester)

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

COURSE PROGRAM (Second semester)

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
Abstract data types and related structures
- lists
- queues
- stacks


Core Documentation

Alessandro Bellini, Andrea Guidi
Linguaggio C - 5-th edition
ISBN: 9788838668210

Type of delivery of the course

Exams take place at the laboratory and consist of two parts: the first one is a series of multiple-choice and open-ended questions, the second one is a program in the C language. In addition to the institutional exams, there are three intermediate tests that take place during the course. The first one is multiple-choice and open-ended questions. The second and third are programming tests.

Type of evaluation

Exams take place at the laboratory and consist of two parts: the first one is a series of multiple-choice and open-ended questions, the second one is a program in the C language. In addition to the institutional exams, there are three intermediate tests that take place during the course. The first one consists of multiple-choice and open-ended questions. The second and third are programming tests.

teacher profile | teaching materials

Programme

COURSE PROGRAM (First semester)

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

COURSE PROGRAM (Second semester)

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
Abstract data types and related structures
- lists
- queues
- stacks

Core Documentation

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

Reference Bibliography

Autori: Brian W. Kernighan, Dennis M. Ritchie Titolo: Il linguaggio C: ANSI C - Seconda Edizione Editore: Jackson Libri/Prentice Hall

Type of delivery of the course

Lectures, laboratories, self-assessment quizzes. All the material presented during lectures is available on the platform moodle1.ing.uniroma3.it. Should the COVID-19 emergency last through the year, the teaching activities will be modified accordingly. In particular, lectures will be delivered via Microsoft Teams, they will be recorded and made available on the platform moodle1.ing.uniroma3.it.

Type of evaluation

Exams take place at the laboratory and consist of two parts: the first one is a series of multiple-choice and open-ended questions, the second one is a program in the C language. In addition to the institutional exams, there are three intermediate tests that take place during the course. The first one consists of multiple-choice and open-ended questions. The second and third are programming tests. Should the COVID-19 emergency last through the year, the teaching activities will be modified accordingly. In particular, the exam will comply with art.1 del Decreto Rettorale n°. 703 del 5 maggio 2020. Specifically, the exam will consist of a written test and of an oral examination, both done by electronic means. The oral examination is decisive for the final evaluation.

Canali

teacher profile | teaching materials

Mutuazione: 20810073 FONDAMENTI DI INFORMATICA in Ingegneria informatica L-8 CANALE 1 LIMONGELLI CARLA

Programme

COURSE PROGRAM (First semester)

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

COURSE PROGRAM (Second semester)

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
Abstract data types and related structures
- lists
- queues
- stacks


Core Documentation

Alessandro Bellini, Andrea Guidi
Linguaggio C - Quinta edizione
ISBN: 9788838668210

Reference Bibliography

Autori: Brian W. Kernighan, Dennis M. Ritchie Titolo: Il linguaggio C: ANSI C - Seconda Edizione Editore: Jackson Libri/Prentice Hall

Type of evaluation

Exams take place at the laboratory and consist of two parts: the first one is a series of multiple-choice and open-ended questions, the second one is a program in the C language. In addition to the institutional exams, there are three intermediate tests that take place during the course. The first one consists of multiple-choice and open-ended questions. The second and third are programming tests.

teacher profile | teaching materials

Mutuazione: 20810073 FONDAMENTI DI INFORMATICA in Ingegneria informatica L-8 CANALE 2 FRATI FABRIZIO

Programme

COURSE PROGRAM (First semester)

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

COURSE PROGRAM (Second semester)

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
Abstract data types and related structures
- lists
- queues
- stacks


Core Documentation

Alessandro Bellini, Andrea Guidi
Linguaggio C - Quinta edizione
ISBN: 9788838668210

Reference Bibliography

Autori: Brian W. Kernighan, Dennis M. Ritchie Titolo: Il linguaggio C: ANSI C - Seconda Edizione Editore: Jackson Libri/Prentice Hall

Type of delivery of the course

Exams take place at the laboratory and consist of two parts: the first one is a series of multiple-choice and open-ended questions, the second one is a program in the C language. In addition to the institutional exams, there are three intermediate tests that take place during the course. The first one is multiple-choice and open-ended questions. The second and third are programming tests.

Type of evaluation

Exams take place at the laboratory and consist of two parts: the first one is a series of multiple-choice and open-ended questions, the second one is a program in the C language. In addition to the institutional exams, there are three intermediate tests that take place during the course. The first one consists of multiple-choice and open-ended questions. The second and third are programming tests.

teacher profile | teaching materials

Mutuazione: 20810073 FONDAMENTI DI INFORMATICA in Ingegneria informatica L-8 CANALE 1 LIMONGELLI CARLA

Programme

COURSE PROGRAM (First semester)

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

COURSE PROGRAM (Second semester)

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
Abstract data types and related structures
- lists
- queues
- stacks


Core Documentation

Alessandro Bellini, Andrea Guidi
Linguaggio C - Quinta edizione
ISBN: 9788838668210

Reference Bibliography

Autori: Brian W. Kernighan, Dennis M. Ritchie Titolo: Il linguaggio C: ANSI C - Seconda Edizione Editore: Jackson Libri/Prentice Hall

Type of evaluation

Exams take place at the laboratory and consist of two parts: the first one is a series of multiple-choice and open-ended questions, the second one is a program in the C language. In addition to the institutional exams, there are three intermediate tests that take place during the course. The first one consists of multiple-choice and open-ended questions. The second and third are programming tests.

teacher profile | teaching materials

Mutuazione: 20810073 FONDAMENTI DI INFORMATICA in Ingegneria informatica L-8 CANALE 2 FRATI FABRIZIO

Programme

COURSE PROGRAM (First semester)

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

COURSE PROGRAM (Second semester)

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
Abstract data types and related structures
- lists
- queues
- stacks


Core Documentation

Alessandro Bellini, Andrea Guidi
Linguaggio C - Quinta edizione
ISBN: 9788838668210

Reference Bibliography

Autori: Brian W. Kernighan, Dennis M. Ritchie Titolo: Il linguaggio C: ANSI C - Seconda Edizione Editore: Jackson Libri/Prentice Hall

Type of delivery of the course

Exams take place at the laboratory and consist of two parts: the first one is a series of multiple-choice and open-ended questions, the second one is a program in the C language. In addition to the institutional exams, there are three intermediate tests that take place during the course. The first one is multiple-choice and open-ended questions. The second and third are programming tests.

Type of evaluation

Exams take place at the laboratory and consist of two parts: the first one is a series of multiple-choice and open-ended questions, the second one is a program in the C language. In addition to the institutional exams, there are three intermediate tests that take place during the course. The first one consists of multiple-choice and open-ended questions. The second and third are programming tests.