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 14]
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 21]
L2: Polymorphism and Object-Oriented Modularization
The game with ogres and knights
- Reading:
- TiJ, Chapters 7
- TiJ, Chapters 8, section Interfaces
- [February 28]
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
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 7]
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 14]
L5: Structured Data Types, Generics, and Persistance
The game with ogres and knights
Linked list example
Serialization example
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 21]
L6: Parallel Processing, Program Robustness, and Reflection
The game with ogres and knights
Exceptions with division example
Exceptions with overriding example
Thread creation example
Incrementer-Printer example (thread synchronization)
Responsive GUI in Swing using multithreading (if you are using Swing)
Serializing variably connected objects
- 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 28] L6a: Parallel Processing, Program Robustness, and Reflection
- [April 4]
L7: Quality Object-Oriented Design
- [April 18]
L8: Aspect-Oriented Programming
The game with ogres and knights
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 25]
L9: C++ Programming Language: Flexibility and Efficiency
Examples (you can use Microsoft DreamSpark – Visual Studio Community 2015 if you want to try them)
- J. Soulié. C++ Language Tutorial. cplusplus.com, 2000--2009 (online version).
- Functions (II) / Arguments passed by value and by reference
- Polymorphism
- Templates
- [May 2]
L10: Programming Language C#: Some Interesting Features
- [May 9]
P11: Discussion
Valentino Vranić
vranic at stuba.sk