Politecnico di Torino
Politecnico di Torino
Politecnico di Torino
Academic Year 2017/18
Object oriented programming
1st degree and Bachelor-level of the Bologna process in Computer Engineering - Torino
1st degree and Bachelor-level of the Bologna process in Cinema And Media Engineering - Torino
Teacher Status SSD Les Ex Lab Years teaching
Squillero Giovanni   A2 ING-INF/05 51 20 9 3
SSD CFU Activities Area context
ING-INF/05 8 F - Altre (art. 10, comma 1, lettera f) Abilità informatiche e telematiche
Subject fundamentals
This course goal¡¦s is that of completing the skills of students in the area of coding by presenting the software development techniques based on the object oriented paradigm and their adoption with the Java programming language.
Expected learning outcomes
The student at the end of the course will know the fundamental concepts of software engineering (software life cycle, configuration management, test, design) and of object oriented programming (classes, objects, attributes, methods, inheritance, interfaces), in addition she will know in detail the main features of the Java programming language.
The acquired abilities will concern: the familiarity with the Java language, the capability of analyzing the requirements of a small-sized software system in order to deliver the relative design, the ability to implement and test the classes in the design using an integrated development environment (IDE).
Prerequisites / Assumed knowledge
The knowledge of basic programming constructs (types and data structures, control statements, functions and function calls) and of sorting and searching algorithms is a prerequisite.
Basic features (1 credit)
• Object-oriented programming, java, eclipse
• Classes, attributes, methods and constructors, objects
• Packages and visibility rules
• Strings, wrapper classes
• Arrays

Inheritance and interfaces (2 credits)
• Inheritance
• Abstract classes, interfaces
• Functional interfaces, lambda expressions
• Exceptions
• Generic types

Standard libraries (3 credits)
• Collections: sets, lists, maps
• Streams
• Files
• Dates
• Threads
• Graphical interfaces, Swing, JavaFX

Software Engineering principles (2 credits)
- Software life cycle
- Design using UML
- Design Patterns
- Configuration management
- Testing
Delivery modes
The course will consists of a set of classroom traditional lectures to present the topics of software engineering and Java language. Moreover there will be classroom exercises to present and discuss exemplary programs. In addition to the classroom part, there will be lab exercises with assignments focusing on the development of simple case studies by means of the Java programming language and the Eclipse development environment.
Texts, readings, handouts and other learning resources
The portal will contain the slides provided by the teachers and the information concerning the labs.
The main additional suggested readings are:
Arnold, Gosling, Holmes. ¡§The Java Programming Language ¡V 4th edition¡¨, Addison-Wesley, 2006
„X R. Urma, M. Fusco, A. Mycroft. ¡§Java 8 in Action: Lambdas, streams, and functional-style programming.¡¨ Manning, 2015.
„X M.Fowler, K. Scott, UML Distilled, 3rd ed. Addison-Wesley, 2003.
„X Bruegge, Dutoit. Object-Oriented Software Engineering Using UML, Patterns, and Java. Pearson, 2009
Assessment and grading criteria
The exam will take place in the computer lab using the same tools used during the lab assignments, it will consists in the development of a Java program that implement a set of given requirements. In addition the student will be presented with three of four closed answer questions concerning theory not applied in the programming part. The question will weight 15% of the final grade.
The exam lasts two hours, the use of notes and books is not allowed.
The grading will be based on the quality of the delivered program in terms of correctly implemented functions, the severity of the missing features and the design decisions adopted.

Programma definitivo per l'A.A.2017/18

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