Programming c
A.A. 2023/2024
Obiettivi formativi
L'insegnamento di propone di sviluppare la comprensione dei concetti fondamentali dei linguaggi imperativi di programmazione, di compilare semplici algoritmi e di apprendere il linguaggio di programmazione C.
Risultati apprendimento attesi
Lo studente sara' in grado di scrivere semplici programmi utilizzando il linguaggio di programmazione C.
Periodo: Secondo semestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Corso singolo
Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.
Programma e organizzazione didattica
Edizione unica
Responsabile
Periodo
Secondo semestre
Programma
- The way to program: CPUs, programming languages, compilers/interpreters, errors and debugging, "Hello world" in C.
- Variables and simple data types: boolean, integer, floating point, string, complex number, pointer.
- Functions: parameters, local variables and scope, return values, recursion, pass-by-value/pass-by-reference, C mathematical functions.
- Conditionals: if and switch. Iteration: for and while. File I/O & formatting. Arrays, dynamic memory allocation, vectors and matrices, numerical algorithms.
- Derived types: struct, union, typedef, classes and objects, templates.
- Standard container types: list, queue, hash, map. Algorithms: sort, find, swap, copy, move, swap, transform, remove, shuffle.
- Advanced topics: multi-threading with OpenMP, modular programming, using external libraries
- Variables and simple data types: boolean, integer, floating point, string, complex number, pointer.
- Functions: parameters, local variables and scope, return values, recursion, pass-by-value/pass-by-reference, C mathematical functions.
- Conditionals: if and switch. Iteration: for and while. File I/O & formatting. Arrays, dynamic memory allocation, vectors and matrices, numerical algorithms.
- Derived types: struct, union, typedef, classes and objects, templates.
- Standard container types: list, queue, hash, map. Algorithms: sort, find, swap, copy, move, swap, transform, remove, shuffle.
- Advanced topics: multi-threading with OpenMP, modular programming, using external libraries
Prerequisiti
Nothing
Metodi didattici
16 hours lecture, 32 hours computer lab (total 48h). Frequency not mandatory
Materiale di riferimento
- Allen B. Downey, How to Think Like a Computer Scientist in C++ (Green Tea Press), http://www.greenteapress.com/thinkcpp/index.html
- MIT IAP2010, Practical Programming in C, http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-087-practical-programming-in-c-january-iap-2010/
- MIT IAP2011, Introduction to C++, http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-096-introduction-to-c-january-iap-2011/
- MIT IAP2010, Practical Programming in C, http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-087-practical-programming-in-c-january-iap-2010/
- MIT IAP2011, Introduction to C++, http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-096-introduction-to-c-january-iap-2011/
Modalità di verifica dell’apprendimento e criteri di valutazione
Written exam (students will be asked to write a C program, with documentation strings in English). The final marks will depend on number of programming errors. Extra credits (i.e. lode) depending on extra features and graphical appearance.
Docente/i