Welcome to this course in Backend Programming at Høyskolen Kristiania. In this course, you will take the step from having learned the syntax and structure of programming into learning how to think and work effectively with code together with others. Through the course, we will be developing and deploying a web application in Java EE using the Servlets API.
The correct times and locations for all lectures is in Timeedit
I hear and I forget. I see and I remember. I do and I understand - Confucius
This is a course that may take you by surprise as you first encounter it. I will spend very little time in the beginning explaining technologies and concepts. Instead, I will show you how to do it and give you exercises on using the technologies together with other students. In the beginning you will feel like you're copying without understanding. Only after you have felt how things work, will they be thoroughly explained. Doing something before you fully understand it feels disorienting to many, but ultimately to learn technology, you have to use it.
In the course, you will get to practice building a realistic application using effective development techniques.
Each lecture will consist of 2 hours teaching/demonstration, 2 hours self-practice and 2 hours repetition.
This lecture covers pair programming, test-driven development and basic IntelliJ and Git usage.
- Reference implementation
- Commit log from live pair programming
- Commit log from live Roman Numbers
- Final code from live Minesweeper
This lecture covers Maven, Github Actions and Github Issues
This lecture covers java.net.Socket
and introduces the HTTP protocol and repeats GitHub Actions
"All complex systems that work evolved from simpler systems that worked." - John Gall, "Systemantics"
Assignment 1 is due
This lecture covers java.net.ServerSocket
and how to respond with a file to a web browser, including images, encoding and cookies
- Reference implementation
- Reference implementation - HTTP server again
- Commit log from live programming - HTTP server again
- Commit log from live programming - SSL and Cookies
- Commit log from live programming - Jetty and servlets
In this lecture, we look at standard frameworks in the Java Enterprise Edition standard and how they can be used to implement HTTP services.
In this lecture, we will deploy a minimal Jetty application with JAX-RS endpoints and a React frontend to Azure Web Services. We will also look at the solution to assignment 1.
Assignment 2 is due
In this lecture we will explore how to access a database with the JDBC approach. We will start with a fresh project, but next we will join this database together with the web server.
In this lecture we will explore how to access a database with the JPA approach. We will continue with the JDBC code from lecture 8. We will also connect the database code the the server logic and hopefully deploy to Azure as well!
Assignment 3 is now available:
- Fill in survey by Thursday if you want a new group
- Clone the repository in Github Classroom
Assignment 2 has been corrected, but not yet updated in Canvas. You will have received comments on Github.
Assignment 3 is due
Exam text is published 31/10
Guest lecture with Police IT leadership on having a career in IT
The course includes three mandatory assignments. The purpose of these assignments is to prepare you for the practical exam at the end of the course.