Welcome to this course in Advanced Java. In this course you will learn the skills necessary for backend programming with Java. You will learn about programming skills such as test-driven development, pair programming and continuous integration; you will learn about programming tools such as IntelliJ, Maven and Github and you will learn about technologies such as Sockets, HTTP, JDBC and PostgreSQL.
The class will be taught through live programming, exercises and assignments. This Github repository contains commit logs for the live programming lectures that you can follow along to complete the exercises.
Read the course companion materials
This lecture covers pair programming, test-driven development and basic IntelliJ and Git usage.
This lecture covers Maven, Github Actions and Github Issues
- Reference implementation - Johannes and Tien remote pair programming
- Issues resolved
- Live coding session
This lecture covers java.net.Socket
and introduces the HTTP protocol and repeats GitHub Actions
This lecture covers java.net.ServerSocket
and how to respond with a file to a web browser
This lecture covers HTML forms and how they interact with the server
This lectures dives into how to change your code to improve the structure while keeping it working, refactoring HttpServer and adding support for POST requests.
This lecture covers java.sql.Connection
, java.sql.PreparedStatement
and java.sql.ResultSet
This lecture covers the Data Access Object pattern and how handle database changes and separating the test database from the real database
This lecture covers how to structure the code on your server to integrate the HTTP server with JDBC-code
This lecture covers how to make the HTTP server work indendently and support new requirements through better organization of the code
This lecture reviews how to work effectively with IntelliJ, Github and Maven, revising the contents of assignment #1
This guest lecture covers how it is to work as a programmer in the Norwegian IT industry