[ QUANTO SEGUE E' SOLO RELATIVO AL PRIMO MODULO DEL CORSO,
QUELLO DI FONDAMENTI DI INFORMATICA ]
Dato un problema, lo studente deve essere in grado di progettare le strutture dati e l'algoritmo capace di risolverlo utilizzando il lunguaggio C.
Given a problem, the student must be able to design the data structures and the algorithm capable of solving it. If for the solution of the problem it is appropriate to create a new abstract data type, the student must be able to accurately and correctly design the relative class, using the C++ programming language.
L'esame consiste di prova pratica di programmazione (al calcolatore) e prova orale.
Written test with closed answers, computer test and oral test.
Capacità di passare dal problema all'algoritmo risolutivo. Capacità di lavorare con
vettori, matrici, strutture dati e liste. Capacità di implementare in Linguaggio C l'algoritmo risolutivo.
Ability to identify the most suitable data structure to solve a given problem.
Implementation ability, that is to implement in C++ language the class that solves the assigned problem.
Lo studente dovrà dimostrare di aver acquisito i concetti base della programmazione
strutturata in Linguaggio C.
The student must demonstrate to have acquired the basic concepts of structured programming and programming using abstract data types.
N/A
N/D
N/A
N/D
Non richiesti.
Not required.
Si consiglia caldamente di partecipare alle lezioni ed ai laboratori. È fondamentale inoltre esercitarsi al calcolatore, non solo con carta e penna.
It is highly recommended to participate in lessons and workshops. It is also essential to have the opportunity to practice the computer at home, trying to solve the exam tests from previous years.
Rappresentazione dell'informazione e organizzazione di un calcolatore: Modello generale dell'architettura del calcolatore. Rappresentazione dell'informazione all'interno dei calcolatori: numeri, testi ed immagini. Il linguaggio assembler (cenni).
Fondamenti di programmazione: Il concetto di algoritmo. Il calcolatore come esecutore di algoritmi. Sintassi e semantica di un linguaggio di programmazione. Metodologie di programmazione strutturata e orientata alle procedure. Il linguaggio C++: tipi fondamentali. Istruzioni semplici, strutturate e di salto. Funzioni. Ricorsione. Riferimenti e puntatori. Array. Strutture e unioni. Memoria libera. Visibilità e collegamento. Strutture dati: Liste, Code, Pile. Alcuni algoritmi di ricerca e di ordinamento.
Un ambiente di sviluppo per programmi in linguaggio C++: Code::Blocks
Basic concepts of programming. Information representation.
Programming in C. Basic concepts of object-oriented programming.
Programming in C++. Design and implement abstract data types.
1) Andrea Domenici, Graziano Frosini, "Introduzione alla Programmazione ed Elementi di Strutture Dati con il Linguaggio C++",
Milano: Franco Angeli (va bene dalla quinta edizione in poi)
2) Paolo Corsini e Graziano Frosini, "Note sull’organizzazione di un calcolatore e Rappresentazione dell’informazione", Edizioni ETS, Pisa, 2011
3) Slide del corso, in formato PDF, fornite agli studenti.
1) Andrea Domenici, Graziano Frosini, "Introduzione alla Programmazione ed Elementi di Strutture Dati con il Linguaggio C++", Milano: Franco Angeli (okay from the fifth edition onwards)
2) Paolo Corsini, Graziano Frosini, "Note sull’organizzazione di un calcolatore e Rappresentazione dell’informazione", Edizioni ETS, Pisa, 2011
3) Course slides, in PDF format, published on the course site.
Study in depth the reference texts and the material published on the web page of the course (in particular the material done in the laboratory).
Prova pratica al calcolatore, seguita da prova orale.
Written test with closed answers, computer test and oral test.