Menù principale
B024281 - OBJECT ORIENTED PROGRAMMING
Main information
Teaching Language
Course Content
Suggested readings
Learning Objectives
Prerequisites
Teaching Methods
Further information
Type of Assessment
Course program
Academic Year 2019-20
Course year
First year - Second Semester
Belonging Department
Information Engineering (DINFO)
Modulo di sola Frequenza of
Scientific Area
ING-INF/05 - INFORMATION PROCESSING SYSTEMS
Credits
6
Teaching Hours
54
Teaching Term
02/03/2020 ⇒ 12/06/2020
Attendance required
No
Type of Evaluation
Giudizio Finale
Course Content
show
Course program
show
Lectureship
Mutuality
Course teached as:
B026220 - PROGRAMMAZIONE
3-years First Cycle Degree (DM 270/04) in COMPUTER ENGINEERING
Curriculum TECNICO SCIENTIFICO
B026220 - PROGRAMMAZIONE
3-years First Cycle Degree (DM 270/04) in COMPUTER ENGINEERING
Curriculum TECNICO SCIENTIFICO
Teaching Language
Italian (slides in English)
Course Content
Object oriented programming, C++ and software engineering basics
Suggested readings (Search our library's catalogue)
M. Bertini, "Programmazione object-oriented in C++. Design pattern e introduzione alle buone pratiche di programmazione", Editrice Esculapio
E. Vicario, "Fondamenti di programmazione. Linguaggio C, strutture dati, algoritmi elementari, C++", Editrice Esculapio
D.S. Malik, "Programmazione in C++", Apogeo
L.J. Aguilar, "Fondamenti di programmazione in C++", McGraw-Hill
B. Eckel, "Thinking in C++", freely available (HTML version) from: http://www.mindview.net/Books/DownloadSites
Gamma, Helm, Johnson, Vlissides, "Design patterns", Pearson Education
Additional material (course slides and additional links) available on the course website (http://www.micc.unifi.it/bertini/)
E. Vicario, "Fondamenti di programmazione. Linguaggio C, strutture dati, algoritmi elementari, C++", Editrice Esculapio
D.S. Malik, "Programmazione in C++", Apogeo
L.J. Aguilar, "Fondamenti di programmazione in C++", McGraw-Hill
B. Eckel, "Thinking in C++", freely available (HTML version) from: http://www.mindview.net/Books/DownloadSites
Gamma, Helm, Johnson, Vlissides, "Design patterns", Pearson Education
Additional material (course slides and additional links) available on the course website (http://www.micc.unifi.it/bertini/)
Learning Objectives
Learn the basics of object oriented programming and design patterns.
Students will be able to program OO software in C++, and will have a basic knowledge of OOA and OOD. Representative Design Patterns will be presented.
Students will be able to program OO software in C++, and will have a basic knowledge of OOA and OOD. Representative Design Patterns will be presented.
Prerequisites
Knowledge of C programming.
Teaching Methods
About 60% of lessons will be lectures in the classroom and 40% as programming exercises in labs.
Programming exercises will be assigned during the course, and corrections and evaluations will be delivered through a special web site.
Programming exercises will be assigned during the course, and corrections and evaluations will be delivered through a special web site.
Further information
All the course materials are provided through the e-learning site of the University of Florence.
The exam schedule is maintained on the web site (http://www.micc.unifi.it/bertini)
The exam schedule is maintained on the web site (http://www.micc.unifi.it/bertini)
Type of Assessment
There are 2 types of examination, used to verify :
- the knowledge of basic C++ instructions
- the knowledge of basics of object oriented programming
- the capability to design classes and methods
- the capability to apply basic design patterns to design classes
1) Written and oral examination:
Written examination will consist of 3-4 questions about theoretical aspect of the course, and 2-4 short programming problems. Oral examination will consist of questions about the topics of the written exam and related arguments.
Successful evaluation of a mid-term exam regarding the C++ language allows to avoid the questions on the theoretical aspects in the final exam
.
2) development of a C++ program:
The goal of the program has to be decided in accordance with the instructor. Every 10-14 days the student will meet the instructor to show the progress, discuss development problems and will be given feedback about his work.
- the knowledge of basic C++ instructions
- the knowledge of basics of object oriented programming
- the capability to design classes and methods
- the capability to apply basic design patterns to design classes
1) Written and oral examination:
Written examination will consist of 3-4 questions about theoretical aspect of the course, and 2-4 short programming problems. Oral examination will consist of questions about the topics of the written exam and related arguments.
Successful evaluation of a mid-term exam regarding the C++ language allows to avoid the questions on the theoretical aspects in the final exam
.
2) development of a C++ program:
The goal of the program has to be decided in accordance with the instructor. Every 10-14 days the student will meet the instructor to show the progress, discuss development problems and will be given feedback about his work.
Course program
C++ language:
-Classes and objects
-Data abstraction
-Methods
-Operator Overloading
-Class Inheritance and Multiple Inheritance
-Virtual functions and abstract base classes
-Polymorphism
-Generic programming and templates
-Exceptions handling
OOA, OOD and OOP
-encapsulation
-delegation
-inversion of responsibility
-substitution
-implementation and interface inheritance
-fragile base class
-resource allocation
-responsibility, cohesion, coupling
Introduction to design patterns and idioms
-RAII
Fundamental Design Patterns:
-Observer
-Factory and Singleton
-Adapter
-Classes and objects
-Data abstraction
-Methods
-Operator Overloading
-Class Inheritance and Multiple Inheritance
-Virtual functions and abstract base classes
-Polymorphism
-Generic programming and templates
-Exceptions handling
OOA, OOD and OOP
-encapsulation
-delegation
-inversion of responsibility
-substitution
-implementation and interface inheritance
-fragile base class
-resource allocation
-responsibility, cohesion, coupling
Introduction to design patterns and idioms
-RAII
Fundamental Design Patterns:
-Observer
-Factory and Singleton
-Adapter