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