Academic year
2018/2019 Syllabus of previous years
Official course title
Course code
CT0372 (AF:248806 AR:136465)
On campus classes
ECTS credits
Degree level
Bachelor's Degree Programme
Educational sector code
1st Semester
Course year
Go to Moodle page
This course is one of the basic educational activities of the Bachelor course in Computer Science that enable the student to gain knowledge and understanding
major programming paradigms and acquire the ability to design and implement software.
The aim of the course is to provide knowledge related to the object-oriented programming paradigm as well as specific knowledge of the Java language.
The course aims to develop in the student the necessary familiarity with the Object Programming paradigm and at the same time consolidate the programming bases acquired during the first year.

As with any course in programming it is essential that the training path combines methodological elements with continuous experimental stimuli, through the invitation to autonomous resolution of exercises and application problems.

The student who has successfully attended the course will have acquired a thorough knowledge of the Java language and its most important libraries. At the same time, it will be able to count on a general competence regarding object designation and the rules that underlie the design and development of software according to this paradigm. Skills that can be easily transferred to different languages and contexts.
To face the course it is essential to have a consolidated competence in imperative programming. In fact, object programming does not prescind from the imperative paradigm, but rather extends it by enriching it with mechanisms that allow to obtain desirable properties in terms of structuring, integration and partitioning of the realized code.

The student who has uncertainties in the imperative programming will have inviolable difficulties in following the course, so he is invited to fill them in advance.
Overview of the basic concepts that underlie object-oriented programming, general principles and analogies with the physical world.

General features of Java. Organization of sources and compilation.

Creation and use of objects. Variables. Reference types and value types. Access to documentation.

Introduction to programming of graphic applications.

Use of library objects for the development of small applications.

Design and implement simple classes. Best practices for the design of classes, insights on value and reference, overload mechanism.

Arrays, vectors and generic programming.

Inheritance and polymorphism, overriding Object methods, practical examples of override (runtime) dispatch and overload (compile time). Abstract classes.

Interface overview, Comparable interface, Internal classes, Lambda Expressions, Event management. Using Comparable and Comparator in the sorts as a further example of an interface.

Deepening on the layout system and event management in graphic applications.

Exceptions. Manage exceptions produced by other classes and launch your own exceptions. Introduction to the management of the I / O from file and network.

The Java Framework Collection. Interfaces, classes and examples of use and design.
Horstmann, Cay S., Concetti di informatica e fondamenti di Java per Java 7 e Java 8, edizione italiana a cura di Marcello Dalpasso. Santarcangelo di Romagna: Maggioli, 2016. ISBN 978-88-916-1737-8
The exam part related to Module 1 consists of a written test to be carried out at the end of the course or in any of the subsequent appeals. For the registration of the vote it is necessary to overcome also the part concerning Module 2, for which reference is made to the relative Syllabus.

In detail there are:

Three theoretical questions whose answer must be written in the same sheet of the text, to be delivered within 30 minutes from the beginning of the test. Each question is assigned up to 4 points, for a total of 12 points.

One or two programming exercises (possibly linked) that the student must solve by writing the appropriate classes, using the same sheet of the text, to be delivered within 60 minutes from the delivery of the first part (or 90 minutes from the beginning of the test). This part allows you to get up to 20 points.

For the development of the first part the student can not use any material. For the development of the second part it is possible to use any type of material as long as it is in paper form.
Lectures on the blackboard.

Programming exercises, also performed in the classroom.
Definitive programme.
Last update of the programme: 10/04/2018