Politecnico di Torino
Politecnico di Torino
Politecnico di Torino
Academic Year 2016/17
Object-oriented programming
1st degree and Bachelor-level of the Bologna process in Engineering And Management - Torino
Teacher Status SSD Les Ex Lab Tut Years teaching
Lamberti Fabrizio ORARIO RICEVIMENTO O2 ING-INF/05 50 15 15 0 10
SSD CFU Activities Area context
ING-INF/05 8 B - Caratterizzanti Ingegneria informatica
Subject fundamentals
The course provides a brief introduction to the aspects pertaining software production (life cycle, quality attributes, etc.) and specifically investigates the object-oriented programming paradigm using the Java language. Java is today considered as the cornerstone for the production of distributed applications running on heterogeneous platforms.
Expected learning outcomes
Students will learn the core notions of object-oriented programming (classes, objects, attributes, methods, inheritance, and interfaces) as well as the main characteristics of the Java language.
The skills to be acquired encompass the mastery of the Java language, the ability to analyze software requirements in order to produce a suitable object-oriented design, and the ability to implement and test Java classes by using the Eclipse development environment and related tools.
Prerequisites / Assumed knowledge
The knowledge of core programming constructs (types and data structures, control statements, functions and function calls) and the ability to develop basic algorithms to solve simple problems (e.g., using the C programming language).
- Software production, processes (build and fix, waterfall, prototyping), tools and risks
- Object orientation, information hiding, encapsulation and other key concepts
- The Java programming language, Java Virtual Machine, bytecode
- Tools: SDK and Eclipse
- Java basics: types, control statements, etc., comparison with other languages
- Classes: definition, new, private, public
- Memory management
- Packages: declaration and use
- Inheritance, interfaces and polymorphism
- Collections: List, Map
- Exceptions: throw, throws, catch
- Input/Output
- GUI: AWT and Swing, MVC pattern
- Testing and JUnit
Delivery modes
During the course there will be laboratory sessions, each organized over one or more weeks and aligned with in-class activities. In each session, specific aspects of the Java language will be analyzed by means of exercises to be developed at the PC. Solutions to the exercises will be later presented and published online.
Texts, readings, handouts and other learning resources
In addition to the material used by the teacher in the classroom and in the laboratory (slides, handouts, Java projects, etc.), which is made available on the Portale della Didattica, it might be helpful to consider the following texts, which could provide further insight in several topics of the course:

- Horstmann, C., Cornell G., "Core Java, Volume I: Fundamentals", 9th Edition, Pearson, 2013.
- Eckel, B., "Thinking in Java", 4th Edition, Pearson, 2006 (electronic version: http://www.bruceeckel.com/).
Assessment and grading criteria
The exam takes place at the laboratory, and consists in writing a Java program based on the requirements provided. The grade is assigned by considering the number of requirements implemented, design choices and coding style.

Programma definitivo per l'A.A.2016/17

© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
WCAG 2.0 (Level AA)