Skip to content

kristiania-pgr209-2022/pgr209-backend-programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 

Repository files navigation

PGR209 Backend programming

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

Understanding the course

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.

Lectures

Each lecture will consist of 2 hours teaching/demonstration, 2 hours self-practice and 2 hours repetition.

Lecture 1: Programming skills (01.09 8:15 KUN-C4-02)

This lecture covers pair programming, test-driven development and basic IntelliJ and Git usage.

Lecture 2: Programming tools (06/09 9:15 FAU-310)

This lecture covers Maven, Github Actions and Github Issues

Lecture 3: Network programming and introduction to HTTP (13/09 9:15 FAU-310)

This lecture covers java.net.Socket and introduces the HTTP protocol and repeats GitHub Actions

Lecture 4: HTTP server (22/09 9:15 FAU-310)

"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

Lecture 5: Secure HTTPS requests and Java Servlet API with Jetty (27/09 9:15 FAU-310)

Lecture 6: Servlet API, React and JAX-RS (04/10 9:15 FAU-310)

In this lecture, we look at standard frameworks in the Java Enterprise Edition standard and how they can be used to implement HTTP services.

Lecture 7: Deployment to Azure App Services + Review of assignment 1 (11/10 9:15 FAU-310)

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.

Lecture 8: Database Access with JDBC (18/10 9:15 FAU-310)

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.

Lecture 9: Database Access with JPA (25/10 9:15 FAU-310)

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.

Lecture 10: Structuring server logic (04/11 9:15 FAU-310)

Assignment 3 is due

Exam text is published 31/10

Lecture 11: Azure SQL Server and JPA (11/11 9:15 FAU-310)

Lecture 12: Delivering software (18.11 9:15 FAU-310)

Guest lecture with Police IT leadership on having a career in IT

Exam project due: 21.11 kl 09:00

Assignments

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.

Assignment 1: Programming skills (20/09 kl 20:00)

Assignment text

Assignment 2: HTTP (11/10 kl 20:00)

Assignment text

Assignment 3: Deployment (01/11 20:00)

Assignment text