Lo studente che completa l'insegnamento con successo avrà conoscenze su (i) concetti di base della rappresentazione dell'informazione e dell'architettura di un calcolatore; (ii) principi della programmazione strutturata in un linguaggio di alto livello; (iii) un sottoinsieme significativo del linguaggio di programmazione C++.
The student who successfully completes the course is expected to acquire: (i) basic concepts on binary data representation and computer architecture; (ii) fundamentals of problem solving in computer programming; (iii) learning of a relevant subset of the programming language C++.
Durante la prova scritta lo studente dovrà dimostrare di avere acquisito le conoscenze mediante domande da rispondere per iscritto sulla parte di teoria e la scrittura di un programma a partire dalle specifiche di un problema.
In the written exam, the student must be able to demonstate knowledge on the material of the course by answering to questions on the presented topics, and by developing a program in C++ programming language.
L'insegnamento ha l'obiettivo di sviluppare le capacità (i) di analisi di un problema informatico, (ii) di identificazione di procedimenti risolutivi (algoritmi) (iii) di scrittura di programmi utilizzando correttamente un linguaggio di programmazione.
The course aims at developing capabilities on (i) understanding a computer programming problem, (ii) designing an algorithm to solve it (iii) write the program using a programming language.
Le capacita' verranno verificate durante l'esame facendo svolgere esercizi di programmazione allo studente a partire dalle specifiche del problema descritte in linguaggio naturale.
Capabilities will be verified by having students solve exercises of programming starting from the specification of a problem in natural language during the exam.
Lo studente acquisirà un approccio rigoroso all'analisi di problemi informatici, alla descrizione di algoritmi e allo sviluppo di programmi.
The student is expected to acquire a rigorous approach to the analysis of problems, to the description of solving procedure and to the development of programs.
I comportamenti verranno verificati in sede di prova scritta richiedendo allo studente la scrittura in C++ di un programma a partire dalle specifiche del problema.
Behaviours will be verified during the written exam, by giving a student the description of a problem to be solved by writing a program in C++.
Nessuno.
No one
Lezioni frontali con l'ausilio di diapositive.
Esercitazioni svolte in aula, anche con l'utilizzo dei PC personali degli studenti, e utilizzando materiale fornito dal docente.
Sito web del corso per il materiale didattico usato durante le ore di lezione e esercitazione in classe e per ulteriori esercizi assegnati durante il corso.
Face two face lectures with slides.
Hands-on activities in classroom, using students’ personal computers, and the material provided by the teacher.
Course website used for downloading teaching materials and practical exercises.
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. Limiti della programmazione a moduli. Tipi di dato astratto. Introduzione alle Classi.
Un ambiente di sviluppo per programmi in linguaggio C++: Code::Blocks
Fundamentals of binary data representation and computer architecture.
Computer Programming Basics: the notion of algorithm, syntax and sematics of a programming language; structured programming paradigm. C++ Programming Language: data types, operators and expressions; control structures; arrays; pointers and references; functions; structures and unions; dynamic memory allocation, input/output. Search and ordering algorithms. Modular programming technique. Introduction to classses.
An integrated development environment for C++:Code::Blocks
La frequenza non è obbligatoria ma fortemente consigliata. Le diapositive con gli argomenti svolti a lezione e le esercitazioni sono disponibili sulla pagina web del corso.
Attendance is not mandatory but highly recommended. Slides supporting lectures and practical exercises are available on the website of the course.
Prova scritta con domande ed esercizi di programmazione.
Prova orale basata sulla discussione della prova scritta.
-----------------------------------------
A causa dell'emergenza sanitaria COVID-19, gli esami si svolgeranno a distanza e saranno formati da (i) test di ammissione alla prova orale (2) prova orale (durante la quale potrà essere richiesta la scrittura di parti di codice).
Written exam with exercises involving questions and coding.
Oral exam based on individual discussion of students written exam.
-----------------
Because of the COVID-19 pandemic, the exam has been changed into an online exam which cosists of (1) a test for the admission to an oral examnation and (2) an oral examination (during which the student can be requasted to write small parts of code)
Nessuno.
No one
Nessuna.
No one