Programming c
A.A. 2020/2021
Learning objectives
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.
Expected learning outcomes
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.
Course syllabus and organization
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.
Professor(s)