CFU: 9
Prerequisites
None except the knowledge and skills acquired in the “Fondamenti di Informatica” course.
Preliminary Courses
Fondamenti di Informatica.
Learning Goals
The objective of the course is to provide students with the methodological, theoretical and practical skills of procedural and object-oriented programming necessary for the correct development of small and medium-sized software projects.
Expected Learning Outcomes
Knowledge and understanding
The student must demonstrate to have acquired the understanding needed to elaborate the concepts underlying modular programming and object-oriented programming. The course aims to provide the knowledge and tools that will allow students to develop autonomous skills of design and development of simple software applications, according to both procedural and object-oriented paradigm.
Applying knowledge and understanding
The student must demonstrate the ability to apply the acquired skills by designing and implementing simple software applications, using the reference programming language (C++) and the UML language. In particular, he/she must be able to recognize and realize the relationships between classes and objects in the proposed domain and context, and know how to implement the basic data structures (list, stack, queue).
Course Content - Syllabus
- Advanced aspects of procedural programming: Recursion; Dynamic memory allocation; Exception handling; Feature overload; Inline functions;
- Modular programming: data and control abstraction, module concept, module relationships, coupling, information hiding, modularization techniques and tools, separate compilation, the make utility;
- Data Structures, Abstract Data Types: ADT: Abstract Data Types. Lists, Stacks, Queues, Search and Sort Algorithms;
- Object-oriented programming: The OO paradigm; Classes and Objects; Inheritance; Polymorphism.
- Object-oriented programming and generic programming in C++: Classes, objects, constructor and destructor; Overloading; Type conversions; Inheritance and multiple inheritance; The hierarchy for 'I/O operations and use of standard libraries; Abstract classes; other encapsulation mechanisms (namespace).
- Generic programming: Template, functions and model classes, presentation of the Standard Template Library
- Design and UML: Software Design (hints); Phases of Object Oriented Design; The UML language in O.O.; from UML to C++.
Readings/Bibliography
Textbook, tutorial and exercises, presentations.
FURTHER INFORMATION: PLEASE VISIT THE PROFESSOR’S WEBSITE AT WEB DOCENTI (www.docenti.unina.it)
Teaching Methods
Lectures (50%), exercises (25%) and laboratory activities (25).
Examination/Evaluation criteria
Exam type
Written and oral. Questions of the written exam refer to programming exercises.
Evaluation pattern
The written exam performance is binding to have access to the oral exam. The total grade is the average between the grade of the oral test and the grade of the written test.