COMP 213: Advanced Object-Oriented Programming

Lecture Notes



Lecture notes and some supplementary material will be added here during the course of the module.


Week 1

Lecture 1. Introduction to the module.

Lecture 2. Review of Object-orientation; What is a class?

Lecture 3. Review of Object-orientation; Abstract Data Types; Maude.


Task for Week 1: read the Code Conventions for Java. You will be expected to follow these conventions in the practical assignments.


Week 2

Lecture 4. Implementing BandCard.

Lecture 5. Modifiers: final and static.

Lecture 6. Modifiers: scope.

Week 3

Lecture 7. Implementing ADTs.

Lecture 8. Implementing ADT CardHand

Lecture 9. Linked Lists

Week 4

Lecture 10. (Doubly) Linked Lists.

Lecture 11. Utility Classes: Vectors and Type Parameters.

Lecture 12. Documentation and Javadoc.

Week 5

Lecture 13. Propositional Logic.

Lecture 14. Propositional Logic; interfaces.

Lecture 15. Propositional Logic; Inner and anonymous classes.

Week 6

Lecture 16. Abstract Classes.

Lecture 17. Exceptions.

Lecture 18. Exceptions.

Week 7

Lecture 19. Input/Output

Lecture 20. Network Programming

Lecture 21. Concurrency

Week 8

Lecture 22. Concurrency: Consumer-Producer example

Lecture 23. Concurrency: synchronization

Lecture 24. Concurrency and Deadlock

Week 9

Lecture 25. Practical Matters (no slides).

Lecture 26. Class Invariants

Lecture 27. Class Invariants: Binary Search Trees

Week 10

Lecture 28. Class invariants: AVL Trees.

Lecture 29. Class invariants: AVL Trees.

Lecture 30. Class invariants: AVL Trees.

Week 11

Lecture 31. Generics.

Lecture 32. Generic methods; implementation of generic types.

Week 12

There will be two revision lectures.


 
Grant Malcolm