Programming II (2014/2015)

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

Lesson timetable

I sem.
Activity Day Time Type Place Note
Teoria Tuesday 12:30 PM - 1:30 PM lesson Lecture Hall B  
Teoria Wednesday 11:30 AM - 1:30 PM lesson Lecture Hall B  
Laboratorio Friday 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. Java collections. 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

4 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 Cay S. Horstmann, Gary Cornell Core Java, Volume I - Fundamentals Prentice Hall - Pearson Education   978-0-13-708189-9