Lectures
This is the list of lectures in the Object-Oriented Programming course accompanied by the materials and literature.
The lectures are in Slovak and are held in Aula Magna on Tuesdays 2.00pm-3.40pm.
The recordings will be made available.
The program code in Java is in its last year's version. It will be updated from lecture to lecture.
The slides presented here are an English translation of the academic year 2018/19 slides and they will not be updated.
TiJ = Bruce Eckel. Thinking in Java. 3rd edition, Prentice-Hall, 2002.
HTML | PDF
- [February 13]
L1: Insight into Object-Oriented Programming
The game with ogres and knights (including all the versions as presented at the lecture marked by letters)
- Diagrams in UMLet (available also as a web application UMLetino):
- Reading:
- TiJ, Chapter 1: up to the section Object creation, use & lifetimes
- TiJ, Chapter 2: read for application purposes
- TiJ, Chapter 3: like in C; ignore the testing system description
- [February 20]
L2: Polymorphism and Object-Oriented Modularization
The game with ogres and knights
- Reading:
- TiJ, Chapters 7
- TiJ, Chapters 8, section Interfaces
- [February 27]
L3: Design Patterns
See these slides for the definition of Observer, Visitor, Strategy, and Composite by the conflicts of contradicting forces
See these slides for a generic class diagram representation of Observer, Visitor, and Strategy and their application in the game with ogres and knights (ignore the text in Slovak)
The game with ogres and knights with the Visitor design pattern applied
Examples of the Visitor, Strategy, Composite, and Observer design pattern
- SourceMaking, parts Design Patterns and UML
- Refactoring.Guru – Design Patterns
- [March 5]
L4: Graphical User Interface and Its Separation from Application Logic
The game with ogres and knights
- How to enable JavaFX in Eclipse is explained in this text: Create your first JavaFX 8 Application with Eclipse
- JavaFX details are available in the official tutorial: JavaFX: Getting Started with JavaFX
Inner class examples
Method reference and lambda expression examples
GUI examples in Swing (if you use Swing; in Slovak)
- Reading:
- TiJ, Chapter 8, section Inner classes:
- skip the following in the Inner classes section:
- anonymous inner classes
- Local inner classes
- Can inner classes be overridden?
- in the Why inner classes? section, read the introduction and skip the following:
- Closures & Callbacks
- Inner classes & control frameworks
- TiJ, Chapter 14 (only basic issues)
- Oracle – The Java Tutorials, Lambda Expressions:
lambda expressions, functional interfaces, and default method implementation in interfaces
- Oracle – The Java Tutorials, Method References: method references
- [March 12]
L5: Structured Data, Generics, and Persistance
The game with ogres and knights
Linked list example
Serialization example
Serializing variably connected objects
Java I/O examples
- Reading:
- TiJ, Chapters 9-11 (study collections according to what you need to employ in yoour project)
- Generics in the Java Programming Language (you may omit Sections 6.2, 6.3, 7 and 10)
- The For-Each Loop
- Autoboxing
- TiJ, Chapter 12 (go through the chapter to get an idea of how to use Java I/O; read sections Preferences and Regular Expressions if you plan to use theses capabilities in your project)
- Basic I/O, a good overview of the Java I/O system
- [March 19]
L6: Parallel Processing, Program Robustness, and Reflection
The game with ogres and knights
Serializing variably connected objects
Incrementer-Printer example (thread synchronization)
Responsive GUI in Swing using multithreading (if you are using Swing)
Exceptions with division example
Exceptions with overriding example
Thread creation example
- Reading: TiJ, Chapter 13 (go through the chapter to get an idea of how to use threads in Java)
- Lesson: Concurrency in Swing (if you are use Swing)
- [March 26] no lecture
- [April 2]
L7: Quality Object-Oriented Design
- [April 9]
L8: Aspect-Oriented Programming
The game with ogres and knights
Instructions for installing AJDT in Eclipse
Monitoring and controlling the Point class using AOP
Aspect-oriented implementation of the Observer design pattern in temperature sensors (from lecture 3)
- Reading:
- Other sources:
- [April 16]
L9: Javadoc, Annotations, and Few Other Things
The game with ogres and knights (an example of using the Javadoc and ajdoc tools is available in readme.txt)
- Lesson: Annotations, The Java Tutorials, Oracle
- javadoc, Java Documentation, Oracle
L10: C++: Flexibility and Efficiency
- [April 23]
L10: C#: Some Interesting Features
- [April 30] Discussion
Valentino Vranić
vranic at stuba.sk