PROGRAMMING II AND LAB. A - EModule PROGRAMMAZIONE II
Academic Year 2023/2024 - Teacher: ALESSANDRO ORTISExpected Learning Outcomes
The goal of this class is to provide a strong background of Object Oriented Programming (OOP) and C++ .
The goals of this course in terms of expected results are
- Knowledge and understanding. Students will be able to understand the fundamental ideas and the basic principles of object oriented programming. More specifically students will learn basic data structures and how to write programs in C++.
- Applying knowledge and understanding Students will learn how to properly use concepts related to object oriented programming (such as polymorphisms and inheritance).
- Making judgements. By studying concrete examples students will learn how to, autonomously, use what studied in class.
- Communication Skills. Students will learn how to properly communicate using the technical language of C++ programming.
- Learning Skills. A goal of this course is to provide a good theoretical and practical background of the OOP paradigm. It is expected that students will learn how to autonomously address problems that require the usage of basic data structures and object oriented programming.
Course Structure
Teaching will be carried out through lectures (for a total of 72 hours) during which the contents of the course will be presented, also through practical demonstrations. In addition, the students will have access to a learning platform. The platform will allow students to practice and self- evaluate themselves on the contents of the course. The same platform provides a valid tool for the exam preparation.
Detailed Course Content
The course will introduce the concepts of OOP and the basic concepts of computational complexity will be introduced.
The course will focus also to the main data structure management algorithms, and specifically, sorting algorithms and recursion.
The C ++ language will be used as the main underlying programming language to present the implementations of data structures and algorithms.
Textbook Information
The reference book is "Fondamenti di programmazione in C++", written by Luis Joyanes Aguilar and published by McGraw-Hill. The book introduces the principles of programming and choose the C++ language to teach them. The reason that drives us in this direction is the desire to reduce the training time of programmers, making then apply, since the early algorithms, to a professional language actually used in large software suites.
Fondamenti di Programmazione in C++
Algoritmi, strutture dati e oggetti
Autore: Luis Joyanes Aguilar
Casa Editrice: McGraw-Hill
sito web del libro
Introduction to Algorithms
T. H Cormen
C. E. Leiserson
R. L. Rivest
C. Stein
The MIT Press
Course Planning
Subjects | Text References | |
---|---|---|
1 | Introduzione alla OOP | Testo 1 e dispense |
2 | Introduzione a C++ | Testo 1 e dispense |
3 | Costrutti del linguaggio C++ (es. array, puntatori e riferimenti, allocazione dinamica della memoria) | Testo 1 |
4 | Classi e oggetti | Testo 1 |
5 | Template | Testo 1 |
6 | Introduzione alla complessità computazionale | Testi 1-2 |
7 | Ordinamento e ricerca | Testi 1-2 |
8 | Ricorsione | Testo 1 |
9 | Classi derivate | Testo 1 |
10 | Sovraccaricamento degli operatori | Testo 1 |
11 | Liste | Testi 1-2 |
12 | Pile e Code | Testi 1-2 |
13 | Alberi | Testi 1-2 |
14 | Grafi | Testo 2 e dispense |