Programming II (2012/2013)

Course code
Nicola Fausto Spoto
Academic sector
Language of instruction
Web page
Teaching is organised as follows:
Activity Credits Period Academic staff Timetable
Teoria 4 I semestre Nicola Fausto Spoto
Laboratorio 2 I semestre Nicola Fausto Spoto

Lesson timetable

I semestre
Activity Day Time Type Place Note
Teoria Tuesday 10:30 AM - 11:30 AM lesson Lecture Hall B  
Teoria Friday 9:30 AM - 11:30 AM lesson Lecture Hall A  
Laboratorio Wednesday 8:30 AM - 11:30 AM laboratorio Laboratory Delta  

Learning outcomes

This course provides students with advanced programming abilities and allows them to develop complex algorithms in an imperative object-oriented language such as Java and use tools and techniques that support the programming task.


From the C language to Java: similarities and differences. Command-line development tools for Java. Developing in Eclipse. Primitive types. Arrays and collections. Classes and objects. Garbage collection. Use of the hierarchy. Basic Swing programming. Javadoc. Testing with JUnit. Implementing classes. Extending classes. Enums, generic types and interfaces. Organization of the memory and recursion. Exceptions. Dynamic data structures: lists and trees. Streams. Annotations. Reflection. Concurrency: threads and standard library for concurrency. Use of git for collaboration and version control. Clean code and refactoring.

Assessment methods and criteria

6 exams are scattered around the year and consist in writing Java code on paper and without the help of a computer. Students must show to be able to translate algorithms into code and organize information in classes, with no significant syntactical errors. The note is between 0 and 22. No later than February, students must implement a software project that will be described during the course. This project should be realized in groups of around 3 students. Its evaluation is between 0 and 10. The final note is the sum of the note of the exam and of that of the project, between 0 and 30.

Reference books
Activity Author Title Publisher Year ISBN Note
Teoria Roberto Bruni, Andrea Corradini, Vincenzo Gervasi Programmazione in Java (Edizione 2) Apogeo 2011 9788850330690