Home>Teaching>
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