Home>Teaching> Advanced Programming

Advanced Programming

Academic Year 2012/2013, 2nd semester
Lecturer: Barbara Russo
Lecture: Wednesday 8:30 - 10:30, room E221 (start: February 26)

Friday 8:30 - 10:30, room E221 (start: February 26)
Lab 1 Tuesdays 08:30 - 10:30, room E431 (start: March 4th)
Lab 2
Wednesdays 16:00 - 18:00, room E431 (start: March 4th)


Office hours: Wednesday 14:00 - 15:00 with email arrangement, office POS 1.16

Pre-requisites Students are familiar with basic knowledge of object oriented programming with Java. This material is taught in the following undergraduate courses: Introduction to Programming
Learning Outcome Understanding and applying languages and techniques to analyze requirements, and design and code software.

Understanding and applying advanced techniques of Java programming

Understanding code compilation and execution by modeling memory allocation in Java

Applying methods to develop software in team while controlling its quality

Syllabus

Organizing Software Development with Object Oriented Paradigm

Requirements and requirements elicitation with eXtreme Programming

Design and design modeling with CRC cards and UML class diagrams

Testing, Unit Testing, and Test Driven Development

Exception handling

Code execution and Memory models

Virtual function and late binding

Advances in inheritance: subtyping and sub-classing the Liskov principle

Multiple inheritance with delegation

Pseudo polymorphism in Java

Run Time Type identification and Reflection API

Generics, type inference and erasure

Introduction to design patterns in Java



Lectures notes

Questions of the course Questions

Further details can be found in the Course Presentation Form