Course syllabus

Course PM

DAT076 / DIT127 Web applications

LP3 VT26 (7,5 hp)

This course is offered by the department of Computer Science and Engineering.

Introduction

Welcome to the course on Web Applications! This course will introduce you to the process of designing and building a Web application. This is a practical, project-based course: over the 8 weeks your team will build a small Web application. However, emphasis is placed throughout on the importance of understanding the theory behind the technologies being used, good software engineering principles and the importance of rigorous design and testing.

The number of technologies involved in building a Web application is large, so we will not have time to give more than a basic introduction to each one, but references will be provided to further reading for those who want a deeper understanding. You will be guided through the process of building a Web application, incorporating each new technology as I introduce it in the lectures. A small application will be built in the lectures alongside you.

At the end of your course, your group will give a presentation where you demonstrate your application in action and explain its design. You will also write a report describing the application's design, and submit it alongside your application's code. Your group's grade is based on the quality of the application you build (80%) and your report and presentation (20%). Your individual grade is based on your group grade, perhaps modified up or down by one grade depending on your individual contribution to the group.

Essential Links

Contact details

Course purpose

The aim of the course is to give students a practical introduction to full-stack Web applications.

The course presents a number of technologies and how they are related and used for developing web applications, focusing on Node.js, Express and Vue. The course provides a good insight to modern web based applications. Design problems related to web applications are presented — such as scaling, session handling, navigation and persistence.

Schedule

Schedule
Week Study Week Dates Lecture 1 Lecture 2 Notes
4 1 19/1 – 23/1 L01: Introduction (RA)
L02: HTML, CSS (JC)
L03: JavaScript, TypeScript (RA) Different schedule than other weeks
5 2 26/1 – 30/11 L04: HTTP, Node, Express (JC) L05: Data model, API, users (RA) Deadline Lab 1: Mockup
6 3 2/2 – 6/2 L06: Vue (JC) L07: Vue (cont.), sessions (RA)
7 4 9/2 – 13/2 L08: Persistence, databases (JC) L09: Persistence (cont.) (RA) Deadline Lab 2: Backend
8 5 16/2 – 20/2 L10: Testing (JC) L11: Security (SK) Deadline Lab 3: Frontend
Different lab schedule (CHARM)
9 6 23/2 – 27/2 L12: Validation (JC) L13: Accessibility (RA) Deadline Lab 4: Database
10 7 2/3 – 6/3 L14: Deployment (JC) L15: Conclusion (RA)
11 8 9/3 – 13/3 - -
12 9 16/3 – 20/3 - - Presentations

Where RA, JC, SK correspond to lecturers: Robin Adams, John J. Camilleri, Samuel Kajava

Course literature

There is no official course book, but readings will be suggested as the course progresses and placed on the Resources page.

Prerequisites

  • Good programming skills in an object-oriented language
  • Knowledge of object oriented design principles
  • Basic knowledge of data structures and algorithms
  • Basic knowledge of data communication and Internet protocols
  • Basic knowledge in database design

Courses DAT050, DAT055, LET375, LEU061, TDA357 or equivalent. The course requires good programming knowledge. The other prerequisites in the list makes it easier  to complete the course and helps in general understanding. However, the course is laid out to allow students to be able to complete assignments and to learn and understand the topics, even if they lack some of these other prerequisites.

Organisation

You will form groups of 3-4 students and complete a group project, which should be a medium-size full stack web application with a Node.js backend. More information will be provided on the Project Information page when the course starts.

The course also consists of:

  • lectures given on campus
  • recommended readings from the literature
  • five laboratory assignments to be completed in the same groups as the project, which guide you through the first stages of designing and building the project
  • weekly project group meetings with a supervisor

Examination

The course will be graded U, 3, 4 or 5.  The laboratory assignments must be passed for the course to be completed.  The grade for the course will be determined by the project grade and individually for each student based on their contribution to the project.

The supervised weekly project meetings are mandatory. If you have a lot of absence, your supervisor may decide to give you an extra assignment within the context of the group project.

This course has an AI Policy which you are expected to read and follow.