Subject: OBJECT PROGRAMMING (A.A. 2021/2022)
Unit Programmazione a oggetti
Information Technology (lesson)
The aim is to provide the fundamental concepts of Object-Oriented Programming, exploited to build modular, reusable and maintainable programs.
At the end of the course, the student should be able to exploit the object oriented programming to develop programs.
Basic knowledge of programming.
To have passed the exam of Programming 1 (must)
The course provides the following topics:
1. Object Oriented Programming (1 CFU): general concepts, such as encapsulation, inheritance and polymorphism; concepts of reusability and composition of software components, showing the passage from the modular programming to Object Oriented Programming;
2. The Java language: it will be exploited as an example of object-oriented language, explaining how the general concepts are implemented in Java (2 CFU); moreover, the Java library to build GUI will be shown and explained (3 CFU); in addition, topic like data structures in Java and thread programming will be provided (3 CFU).
Lectures (6 CFU) and laboratory exercises (3 CFU), both in presence. Attending is not mandatory. The course is in Italian. Students not attending can access the slides of the lectures and the material of exercises.
The assessment will include two exams. A 1-hour written exam in which the student must model and implement in Java simply entities to verify that the student has acquired the notions of abstraction, classification, inheritance and polymorphism. During the exam the students can read material. The score will be published by ESSE3 around 7-10 days after the exam. Oral exam (around 20 minutes) of presentation of a project developed in Java on a text given by the teacher to verify the skill to develop an object-oriented application. Both exams will have a mark from 0 to 30. The final mark is the weighted mean: 1/3 the written exam and 2/3 the oral exam. Tentatively, there will be 2 written exams and 3 oral exams in the Winter session, 1 written exam and 3 oral exams in the Summer session, 1 written exam and 2 oral exams in the Fall session.
Knowledge and understanding
- features of the object oriented programming;
- Java programming language;
- development of graphical user interfaces;
- Java data structures.
Applying knowledge and understanding
Students will have the skill to:
- model real-world entities;
- implement them in Java;
apply the features of encapsulation, inheritance and polymorphism of Java;
- develop graphical user interfaces;
- exploit data structures.
The student will have a good ability to retrieve data and information relevant to the fulfillment of her work, particularly in the formulation of problems and the definition of strategies for resolving them. She will be able to provide independent judgments on the choices made and to critically evaluate the results obtained, even in terms of these choices.
The student knows how to organize and present with clarity and conciseness, as well as with appropriate technical language (where necessary), the developed software.
Students must acquire high capacity for continuous and self learning also because of the characteristics of the discipline, Computer Science, which is constantly and rapidly changing.
G. Cabri, F. Zambonelli, "Programmazione a oggetti in Java: dai fondamenti a Internet", Pitagora editrice, 2003.
Slide presentate a lezione messe a disposizione all'inizio dell'insegnamento.