Programming 2

About this course

This course provides an introduction to object-oriented design in Java with an emphasis on practical techniques for developing complex software systems.

Organisation

Prerequisites

You should have successfully completed the Programmming 1 course.

Learning outcomes

You will learn:

Schedule

DateLecture TopicExercise Topic
20-02-26Introductionex01-git
27-02-26Object-Oriented Design Principlesex02-glob-patterns
06-03-26Design by Contractex03-turtle-car
13-03-26Testing and Debuggingex04-snake-ladders
20-03-26Inheritance and Polymorphismex05-ludo-s1
27-03-26Iterative Development and Refactoringex06-ludo-s2
03-04-26– No class –
10-04-26– No class –
17-04-26Design Patternsex07-design-patterns
24-04-26GUI Constructionex08-ludo-s3
01-05-26 A bit of Smalltalk (Guest Lecture by Oscar Nierstrasz)(additional time for ex08-ludo-s3)
08-05-26Functional Programmingex09-functional-programming
15-05-26Aspect-Oriented Programmingex10-aspects
22-05-26(Guest Lecture)(Exam Briefing)
29-05-26Q&A

Exam

Repetition exam