Vinaora Nivo Slider 3.x

Fondamenti di Informatica

CFU: 9

Prerequisites

None.

Preliminary Courses

None.

Learning Goals 

To provide the basic notions for computer disciplines, introducing the student to the study of the theoretical foundations of computer science, computer architecture, and high-level programming languages. To provide the knowledge required for the development of programs for solving problems of limited complexity.

Expected Learning Outcomes 

Knowledge and understanding

The student should be able to demonstrate knowledge, understanding, and ability to describe the basic concepts relating to theoretical computer science, computer architecture, and high-level programming languages. Furthermore, the student must demonstrate knowledge and understanding of programs for solving problems of limited complexity.

Applying knowledge and understanding

The student should be able to demonstrate to be able to apply the knowledge learned for the solution of simple programming problems, designing and developing programs for the solution of problems of limited complexity.

Course Content - Syllabus

- The concept of elaboration and algorithm. Models in Computer Science. Finite state automata: definition, graph and table representations. Turing machine. Calculability.

- Boolean algebra: definitions and De Morgan's theorem. Boolean functions. The algebra of the logic of propositions.

- The coding and representation of information. Representation of natural, relative, and real numbers.

- Fundamentals of computer architecture: the Von Neumann model, processor operation. Memories, Input/Output.

- The operating system. The life cycle of a program. Compilers and interpreters. Programming languages: grammars; the Backus-Naur Form.

- Fundamentals of programming: simple structured data types; elementary instructions and control structures.

- Structured programming. Array. Standard subroutines and libraries.

- Dynamic allocation and pointers. Algorithms on sequences and arrays. Structures and strings. Input/Output operations to mass memories.

The types of abstract data: lists, stacks, queues. Search and sorting algorithms.

- The C ++ language. Use of a program development environment with examples of fundamental algorithms and management of abstract data types. Elements of object-oriented programming.

Readings/Bibliography

A. Chianese, V. Moscato, A. Picariello, C. Sansone: Le radici dell’Informatica: dai bit alla programmazione strutturata, Maggioli Editore, 2017.

E. Burattini, A. Chianese, A. Picariello, V. Moscato, C. Sansone, Che C serve? per iniziare a programmare, Maggioli Editore, 2016.

MOOC “Fondamenti di Informatica” disponibile sulla piattaforma Federica.EU (www.federica.eu).

Teaching Methods

The teachers will use: a) frontal lectures for about 60% of the total hours, b) exercises on programming in C ++ language for about 40% of the total hours.

The exercises are carried out in the classroom and/or in the laboratory with the use of an integrated development environment and through platforms for virtual laboratories.

Examination/Evaluation criteria

Exam type

The exam is made of a computer-based programming test and an oral examination.

Evaluation pattern

Passing the programming test is required to have access to the oral exam.

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.