Course syllabus

DAT076 / DIT127 Web applications LP3 VT25 (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, I place emphasis 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 I will not have time to give more than a basic introduction to each one, but I will provide references 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. I will build a small "To Do list" application 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 (90%) and your report and presentation (10%). 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

Project Information

Resources

Course syllabus at Chalmers course portal 

Course syllabus at GU course portal

Zoom link for lectures (passcode: webapps)

Schedule (TimeEdit)

Our Slack workspace

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 NodeJS, ExpressJS and ReactJS. 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.

Course literature

The book that we will refer to the most is "Modern Full-Stack Development" by Frank Zametti (ISBN: 978-1-4842-5737-1). This is the only book I've found that covers Node, Express, React and TypeScript. It is written in a fairly easy-to-read tutorial style, walking you through building two projects using this stack. You may or may not appreciate the author's sense of humour.

It is not mandatory to have a copy of this book.

The book is available for free for both Chalmers and GU students:

Additional readings will be suggested as the course progresses and placed on the Resources page.

Prerequisites

  • Good programming skills in an object-oriented langauge
  • 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 NodeJS backend. (More information will be provided on the Project Information page when the course starts.)

The course also consists of:

  • lectures given on campus and streamed by Zoom
  • 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 (either Robin or John)

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.