You are here

Advanced Programming

Alberto Sartori
Course Type: 
PhD Course
Master Course
Anno (LM): 
First Year
Academic Year: 
48 h
CFU (LM): 

The course aims to provide advanced knowledge of both theoretical and practical programming in C++11 and Python3, with particular regard to the principles of object-oriented programming and best practices of software development.


  • Introduction to C++11. You will learn the logic and the basics of C++11, the built-in data types and how to effectively use them. Best practices in programming will be addressed.
  • Object orientation in C++11. The principles of Object-Oriented programming will be presented with particular attention to their implementations in C++11. Some of the most important Design Patterns will be discussed.
  • Advanced features of C++14/17. Some of the new features of standard C++/14/17 will be introduced and explained.
  • Python3. After a recap of the basics of Python3, you will learn how to program in object-oriented fashion in the Python3 programming language.
  • How to combine the two languages. Several methods to combine the two languages will be presented.


  • Programming: Principles and Practice using C++ (Second Edition), Bjarne Stroustrup, Addison-Wesley 2014, ISBN 978-0-321-99278-9
  • The C++ Programming Language, Bjarne Stroustrup, Addison-Wesley 2013, ISBN 978-0321563842

The material is continuously uploaded to the GitHub repository


Familiarity with linux terminal and a text editor (e.g., emacs, vim)
A bit of knowledge of git
On 9/10 and 11/10 the lectures will be held in A-004
Next Lectures: 
Thursday, December 20, 2018 - 16:00 to 18:00
Tuesday, January 8, 2019 - 14:00 to 16:00
Thursday, January 10, 2019 - 16:00 to 18:00
Tuesday, January 15, 2019 - 14:00 to 16:00
Thursday, January 17, 2019 - 16:00 to 18:00

Sign in