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

Reference Bibliography

Authors: Brian W. Kernighan, Dennis M. Ritchie Title: The C Programming Language: ANSI C - Second Edition Editor: Prentice Hall

Type of delivery of the course

Lectures, laboratories, self-assessment quizzes. All the material presented during lectures is available on Moodle.

Attendance

Attendance is not mandatory, but it is definitely recommended.

Type of evaluation

During the COVID-19 emergency period, the exam will be carried out following the terms of art.1 of the Rectoral Decree n. 703 of 5 May 2020. The oral exam is crucial for the attribution of the final assessment. Usually, 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.

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.

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. During the COVID-19 emergency 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 - 5-th edition
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

Lectures, laboratories, self-assessment quizzes. All the material presented during lectures is available on Moodle.

Attendance

Attendance is not mandatory, but it is definitely recommended.

Type of evaluation

During the COVID-19 emergency period, the exam will be carried out following the terms of art.1 of the Rectoral Decree n. 703 of 5 May 2020. The oral exam is crucial for the attribution of the final assessment. Usually, 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.

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

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.

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. During the COVID-19 emergency 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.