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