Politecnico di Torino
Politecnico di Torino
Politecnico di Torino
Anno Accademico 2016/17
Object oriented programming
Corso di Laurea in Ingegneria Informatica (Computer Engineering) - Torino
Corso di Laurea in Ingegneria Informatica - Torino
Docente Qualifica Settore Lez Es Lab Tut Anni incarico
Squillero Giovanni   A2 ING-INF/05 51 20 9 0 5
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 8 F - Altre attivitą (art. 10) Abilitą informatiche e telematiche
This is a mandatory course for the degrees Information Technology Engineering and Communication. Its goal is to complete the knowledge of students about software development, by providing an introduction to the fundamentals of software engineering, teaching the object-oriented paradigm together with a programming language supporting it, and presenting both imperative and functional approaches to problem solving.
Risultati di apprendimento attesi
Knowledge acquired: the software development life cycle and its phases: requirements, design, build, testing, and maintenance. The object oriented programming paradigm in terms of classes, objects, attributes, behaviors, message exchange, inheritance, polymorphism, exception handling; the support to these concepts provided by a programming language (Java). The functional approach to problem solving as an alternative to the imperative one.

Skills acquired: ability to understand a programming problem of small/medium size (10- 20 classes), analyze it, solve it with: (1) the definition (or the selection from a library) of classes and related functions and attributes, (2) the detailed design of algorithms in each method of each class, (3) the implementation and testing of classes and methods in Java by using both imperative and functional approaches, (4) the ability to use Java and its development and execution environments and the basic development supporting tools.
Prerequisiti / Conoscenze pregresse
Analysis of simple problems and definition of the algorithms for their solution.
Basic programming constructs (types, variables and constants, decisions, loops, procedures and parameter passing)
Fundamental algorithms (sorting, searching) and data structures (array, linked list, tree, graph)
Introduction to OO paradigm (0.5 CFU)
- Object-oriented programming
- Java as a programming language: source code and bytecode.
- Compiler, virtual machine, development environments.

OOP basics (2.5 CFU)
- Classes, attributes and methods
- Overloading
- Objects, constructors and parameters
- Scope and visibility

Inheritance (1 CFU)
- Inheritance, polymorphism and dynamic binding
- Abstract classes, interfaces
- Functional interfaces, lambda expressions, method references
- Generic types
- Exceptions

Standard system library (2.5 CFU)
- Collections framework
- Stream API
- Exceptions
- IO classes
- Graphics, Swing, JavaFX

Software Engineering principles (1.5 CFU)
- Software development lifecycle (Waterfall, Incremental, Agile)
- Requirement analysis
- Design
- Configuration management
- Build management
- Testing
- Maintenance
Organizzazione dell'insegnamento
This course will include computer lab sessions that include both specific exercises to further explore theoretical parts and the development of small software projects.
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
- James Gosling, Ken Arnold and David Holmes, The Java Programming Language, 4th Edition, Pearson
- R. Urma, M. Fusco, A. Mycroft. "Java 8 in Action: Lambdas, streams, and functional-style programming." Manning, 2015.
- Bruce Eckel, Thinking in Java, 3rd edition, Prentice Hall
- Materials provided by the teacher
Criteri, regole e procedure per l'esame
The exam assignment consists in the development of a Java program, in the lab by means of a standard development environment. The grade is assigned according to the quality of the software measured in terms of functional correctness, design decisions, and programming style.
Orario delle lezioni
Statistiche superamento esami

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

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