Object Oriented Programming Laboratory

LPOO :: 2018/19 1st Semester

Information

Contents

Week Theory Classes Practice Sessions
1 Course Presentation.
A gentle introduction to Git:
- Introduction.
- Basics and Git as a local VCS.
- Branches, remotes and workflows.
Java: Quick introduction.
LPOO | Git | Java
2 Java:
- Types, literals and variables.
- Loop and conditional blocks.
- A small introduction to classes and the Hello World example.
- Collections.
Dependency Management using Gradle.
Java/Git
Exercises | Solutions
3 Unit Testing
- Test levels and test types.
- Unit Testing
- JUnit
- Mocks and Stubs using Mockito
- Test Coverage and Mutation Testing
Java
Exercises | Solutions
4 Carnival Holiday Java
Exercises | Solutions
5 SOLID Principles
- [SRP] Single Responsibility
- [OCP] Open/Closed
- [LSP] Liskov Substitution
- [ISP] Interface Segregation
- [DIP] Dependency Inversion
UML: Class Diagrams
- Classes
- Inheritance, Abstract Classes and Interfaces
- Associations and Aggregation
Unit Testing
Exercises | Solutions
6 Design Patterns:
- Factory-Method
- Command
- Composite
- Observer
- Strategy
SOLID
Exercises | Solutions
7 Refactoring:
- Code Smells
- Refactoring Techniques
Design Patterns
Exercises | Solutions
8 Design Patterns:
- State
- Adapter
- Decorator
- Singleton
Refactoring
Exercises | Solutions
9 Java Generics:
- Generic methods
- Generic classes
- Variance
- Wildcards
Design Patterns:
- Abstract Factory
Project
10 Easter
11 Java Threads:
- Processes
- Threads
- Synchronization
Java Input/Output:
- Streams
- File Streams
- Resources
Architectural Patterns:
- MVC Pattern
Project
12 Java Graphical User Interfaces using Swing:
- Components
- Layouts
- Events
- Graphics
Project
13 Burning of the Stripes
14 UML: Sequence Diagrams:
- Elements
- Messages
- Fragments
- Gates
UML: Communication Diagrams:
- Objects
- Messages
- Sequence Expressions
Project
15
Project
16 Inheritance vs. Composition:
- Multiple Inheritance
- Interfaces
- Java Defaults
- Composition
- Delegation
Project Demo