Information
You should have been invited to a workspace on Slack. If not, contact your teacher.
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. |
|
2 |
Java/Git Exercises | Solutions |
|
3 |
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 Exercises | Solutions |
4 |
Unit Testing: - Test levels and test types. - Unit Testing - JUnit - Mocks and Stubs using Mockito - Test Coverage and Mutation Testing |
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 Repository for Design Patterns #1 Hero: GitHub Annotated Class (portuguese only): Class |
SOLID Exercises | Solutions |
7 |
Refactoring: - Code Smells - Refactoring Techniques |
Design Patterns Exercises | Solutions |
8 | Easter | |
9 |
Refactoring Exercises | Solutions |
|
10 |
Design Patterns: - State - Adapter - Decorator - Singleton |
Project |
11 |
Hero project the SOLID way:: A live coding experience
Repository for SOLID Hero: GitHub |
Project |
12 |
Java Generics: - Generic methods - Generic classes - Variance - Wildcards Architectural Patterns: - MVC Pattern Examples: - Hero MVC - Hero MVC using Generic Observer |
Project |
13 | Burning of the Stripes | |
14 |
Java Threads: - Processes - Threads - Synchronization Java Input/Output: - Streams - File Streams - Resources Examples: - Hero with threads and testing Lanterna using Mockito |
Project |
15 |
UML - Sequence Diagrams: - Elements - Messages - Fragments - Gates UML - State Diagrams: - States - Transitions - Composite States Design Patterns: - Abstract Factory |
Project |
16 |
Inheritance vs. Composition: - Multiple Inheritance - Interfaces - Java Defaults - Composition - Delegation Example: - Inheritance Composition |
Project Demo |