Advanced Programming: course material

md-to-pages

This repository contains material for the Advanced Programming course. Academic Year 2023-2024.

This course is offered jointly by SISSA (International School for Advanced Studies) and UniTS (Università degli Studi di Trieste), Trieste, Italy.

License

CC BY-NC-SA 4.0

Unless otherwise specified, all content here is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

CC BY-NC-SA 4.0


⚠️ Exam rules

⚠️ Detailed exam rules are available here.


📆 Exam dates

⚠️ 10 Sep 2024, 09:00. Room 133 @ SISSA. (written + computer-based exam)

⚠️ 17 Sep 2024, 09:00. Room 133 @ SISSA. (written + computer-based exam)

Optional oral exams will follow in subsequent days.

ℹ️ Students from UniTS: please register on Esse3.

ℹ️ Students from SISSA: please register by sending me an email.


Documents

Links and resources


Homeworks


Timetable

            Date                     Time         Room     Topic
Tue 26 Sep 2023 14:00 - 16:00 005 Introduction to the course. The UNIX shell. The build process. [Markdown] [HTML] [PDF]
Thu 28 Sep 2023 14:00 - 16:00 005 Exercise session. [Markdown] [HTML] [PDF]
Tue 03 Oct 2023 14:00 - 16:00 137-138 Introduction to C++. Built-in data types. Variables, pointers and references. Control structures. Functions. [Markdown] [HTML] [PDF]
Thu 05 Oct 2023 14:00 - 16:00 005 Exercise session. [Markdown] [HTML] [PDF]
Tue 10 Oct 2023 14:00 - 16:00 005 Object oriented programming. Classes and access control in C++. Operators. [Markdown] [HTML] [PDF]
Thu 12 Oct 2023 14:00 - 16:00 005 Exercise session. [Markdown] [HTML] [PDF]
Tue 17 Oct 2023 14:00 - 16:00 005 Inheritance and polymorphism. [Markdown] [HTML] [PDF]
Thu 19 Oct 2023 14:00 - 16:00 005 Exercise session. [Markdown] [HTML] [PDF]
Tue 24 Oct 2023 14:00 - 16:00 005 Functions. Templates and generic programming. [Markdown] [HTML] [PDF]
Thu 26 Oct 2023 14:00 - 16:00 005 Exercise session. [Markdown] [HTML] [PDF]
Tue 31 Oct 2023 14:00 - 16:00 128 The Standard Template Library. [Markdown] [HTML] [PDF]
Thu 02 Nov 2023 --- --- ---
Tue 07 Nov 2023 14:00 - 16:00 005 Smart pointers, move semantics, STL utilities. [Markdown] [HTML] [PDF]
Thu 09 Nov 2023 14:00 - 16:00 005 Exercise session. [Markdown] [HTML] [PDF]
Tue 14 Nov 2023 14:00 - 16:00 005 Libraries: principles, building, and use. [Markdown] [HTML] [PDF]
Thu 16 Nov 2023 14:00 - 16:00 005 Introduction to GNU Make. Exercise session. [Markdown] [HTML] [PDF]
Tue 21 Nov 2023 14:00 - 16:00 005 Introduction to CMake. Optimization, debugging, profiling, testing. [Markdown] [HTML] [PDF]
Thu 23 Nov 2023 14:00 - 16:00 005 Exercise session. [Markdown] [HTML] [PDF]
Tue 28 Nov 2023 --- --- ---
Thu 30 Nov 2023 14:00 - 16:00 Big Meeting Room (7th floor) Introduction to Python. Built-in data types. Variables, lists, tuples, dictionaries, sets. Control structures. Functions. Docstrings. [Markdown] [HTML] [PDF]
Exercise session. [Markdown] [HTML] [PDF]
Tue 05 Dec 2023 14:00 - 16:00 128-129 Object-oriented programming. Classes, inheritance and polymorphism. Modules and packages. [Markdown] [HTML] [PDF]
Thu 07 Dec 2023 14:00 - 16:00 128-129 Exercise session. [Markdown] [HTML] [PDF]
Tue 12 Dec 2023 14:00 - 16:00 128-129 Introduction to NumPy and SciPy for scientific computing. Data visualization. Introduction to pandas for data analysis. [Markdown] [HTML] [PDF]
Thu 14 Dec 2023 14:00 - 16:00 128-129 Exercise session. [Markdown] [HTML] [PDF]
Tue 19 Dec 2023 14:00 - 16:00 128-129 Integrating C++ and Python codes. [Markdown] [HTML] [PDF]
Tue 21 Dec 2023 14:00 - 16:00 128-129 Exercise session. [Markdown] [HTML] [PDF]
Tue 09 Jan 2024 14:00 - 16:00 005 Exam simulation. [Part 1] [Part 2]
Tue 11 Jan 2024 14:00 - 16:00 005 Exam simulation. [Part 1] [Part 2]