- Docente: Francesco Giacomini
- Credits: 6
- SSD: FIS/01
- Language: Italian
- Moduli: Francesco Giacomini (Modulo 1) Angelo Carbone (Modulo 2)
- Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
- Campus: Bologna
- Corso: First cycle degree programme (L) in Physics (cod. 9244)
Learning outcomes
This course would give to students a knowledge of C++ programming language sufficient to face and solve simple problems in Physics through computer programs. In particular the student would become able to perform any operation of data reading and writing, both in text and binary formats, and to use them according to all necessities involved in carrying on physical experiments.
Course contents
Elements of computer architecture and operating systems
Machine languages and high-level programming languages
Why C++
Objects, types, variables, literals
Manipulating objects through expressions
Structuring a program through statements
Definition and use of functions
Definition of new types
Input/output system
Generic programming
Dynamic memory allocation
The C++ Standard Library: containers and algorithms
Dynamic polymorphism (a.k.a. object-oriented programming)
Preventing and managing errors
Elements of concurrency and parallelism
Elements of software engineering and supporting tools
Readings/Bibliography
As gentle introduction to C++: B. Stroustrup A tour of C++
As reference: C++ reference
Teaching methods
Lectures (in italian speech) and training in laboratory (mandatory)
Assessment methods
The exam is in two parts:
- a project concerning the development of a C++ program following the instructions given during the lessons. The project is developed in part during the laboratory sessions, in part autonomously.
- an oral exam including a discussion about the project and questions about theory and practice of programming in C++ based on what presented during the lectures.
An evaluation of "sufficient" for the project is needed to access the oral exam.
More details are available on IOL.
Additional information is also available on IOL for students who followed the course in past years.
Teaching tools
The presentation and the examples shown during the lessons are available in a git repository
Office hours
See the website of Francesco Giacomini
See the website of Angelo Carbone