Workshop course for Advanced Programming at AUT-CE
-
Starting with Java, Git, GitHub and IDE
- Creating GitHub account.
- Installing Git.
- Installing Java and Intellij IDEA.
-
Java environment, Basic syntax, Working with Git and GitHub
- JDK, JRE, JVM.
- Basic syntax, running code in terminal.
- Working with Git and GitHub.
-
Java Basics and OOP
- Classes and Objects.
- Constructors, getters, setters, and encapsulation.
- Class Diagram.
-
Object Composition, Strings, Javadoc
- Object composition (has-a relationships).
- String manipulation and common methods.
- Writing and generating Javadoc comments for code documentation, built-in packages.
-
Collections
- Lists, Sets, Maps and Queues.
- Immutability, iterators, generics, and comparators.
- Common use cases for collections (e.g., ArrayList, HashMap).
-
Memory Management, Primitive vs Object, Equality, Wrapper, Test and Debug
- Stack vs. Heap memory.
- Primitive vs. reference types, autoboxing/unboxing.
equals()
vs==
, and wrapper classes.- Basics of testing (JUnit) and debugging (IDE tools).
-
Inheritance, Casting, Abstraction, Interface
- Inheritance and polymorphism.
- Type casting (up casting/down casting).
- Abstract classes and interfaces.
-
Introduction to Software Engineering, CRC Cards, UML
- Some princples of Software Engineering, Cohesions, Coupling.
- CRC Cards.
- UML basics: class diagrams, sequence diagrams.
-
Exception and Stream, Try with Resource, Generics
- Exception handling: try/catch/finally, custom exceptions.
- I/O streams: File I/O,
try-with-resources
. - Stream API basics.
-
Threading
- Thread basics:
Runnable
,Thread
,synchronized
. - Thread lifecycle.
- Simple multithreaded examples.
- Thread basics:
-
Socket Programming
- Basics of TCP/UDP sockets.
- Building a simple client-server application.
- Introduction to Http.
-
JavaFX, SceneBuilder, MVC Pattern
- Introduction to JavaFX and FXML.
- Using SceneBuilder for GUI design.
- Implementing the MVC pattern in JavaFX.
-
Parallel Programming, Timeline, Multi-Scene Views
- Advanced concurrency: thread pools, executors.
- JavaFX timelines and animations.
- Multi-scene views in JavaFX.
- Practice questions for concurrency and JavaFX.