Servizi per la didattica
PORTALE DELLA DIDATTICA

Object oriented programming

04JEYLM, 04JEYOA, 04JEYSM

A.A. 2020/21

Course Language

Inglese

Course degree

1st degree and Bachelor-level of the Bologna process in Computer Engineering - Torino
Master of science-level of the Bologna process in Data Science And Engineering - Torino

Course structure
Teaching Hours
Lezioni 51
Esercitazioni in aula 20
Esercitazioni in laboratorio 9
Teachers
Teacher Status SSD h.Les h.Ex h.Lab h.Tut Years teaching
Squillero Giovanni   Professore Associato ING-INF/05 51 11 0 0 5
Teaching assistant
Espandi

Context
SSD CFU Activities Area context
ING-INF/05 8 F - Altre (art. 10, comma 1, lettera f) Abilità informatiche e telematiche
2020/21
This course goal 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.
The course completes the skills of students in the area of coding by presenting software development techniques based on the Object Oriented paradigm. The Java programming language is analyzed in details and used to exemplify the OO concepts; mentions to alternative solutions, such as the ones adopted in C++ and Python, are also sketched.
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).
The students at the end of the course will know the fundamental concepts of the Object Oriented paradigm, understand the problems that drove to the creation of such paradigm, and master the main features of the Java programming language (classes, objects, attributes, methods, inheritance, interfaces, ...). They will also be acquainted with the main concepts of software engineering (software life cycle, configuration management, test, design). The acquired abilities include: familiarity with the Java language; capability of analyzing the requirements of a small-sized software system in order to deliver the relative design; ability to implement and test the classes in the design using an integrated development environment (IDE).
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 knowledge of programming in the C language (types and data structures, control statements, functions and function calls).
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
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
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.
The course consists in a set of lectures where the topics are presented; lectures include several exercises carried out interactively with the students. (Virtual) labs focus on the development of case studies by means of the Java programming language, using Eclipse as a development environment.
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
The portal will contain the slides provided by the teachers and the information concerning the labs. Additional materials is not required. Suggested readings are: Arnold, Gosling, Holmes. "The Java Programming Language, 4th edition", Addison-Wesley, 2006 R. Urma, M. Fusco, A. Mycroft. "Java 8 in Action: Lambdas, streams, and functional-style programming", Manning, 2015 M.Fowler, K. Scott. "UML Distilled, 3rd", Addison-Wesley, 2003 Bruegge, Dutoit. "Object-Oriented Software Engineering Using UML, Patterns, and Java". Pearson, 2009
Modalità di esame: Prova scritta tramite l'utilizzo di vLAIB e piattaforma di ateneo Exam integrata con strumenti di proctoring (Respondus). ;
The new, online exam exploits the Virtual LAIB platform and it is identical to the old, onsite one. It consists in two parts: the development of a Java program that implements a set of given requirements; and few (3 or 4) closed-answer questions concerning theory not applied in the programming part. The program is weight 85% of the final grade, the questions, 15%. Students shall adopt the same tools used during the lab assignments. 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.
Exam: Written test via vLAIB using the Exam platform and proctoring tools (Respondus).;
The new, online exam exploits the Virtual LAIB platform and it is identical to the old, onsite one. It consists in two parts: the development of a Java program that implements a set of given requirements; and few (3 or 4) closed-answer questions concerning theory not applied in the programming part. The program is weight 85% of the final grade, the questions, 15%. Students shall adopt the same tools used during the lab assignments. 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.
Modalità di esame: Test informatizzato in laboratorio; Prova scritta tramite l'utilizzo di vLAIB e piattaforma di ateneo Exam integrata con strumenti di proctoring (Respondus). ;
In a blended scenario, online and onsite exam are identical: The former takes place through the Virtual LAIB platform, the latter in Politecnico's LAIBs.
Exam: Computer lab-based test; Written test via vLAIB using the Exam platform and proctoring tools (Respondus).;
In a blended scenario, online and onsite exam are identical: The former takes place through the Virtual LAIB platform, the latter in Politecnico's LAIBs.


© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
m@il