Course syllabus
DAT076 / DIT126 Web applications LP3 VT24 (7.5 hp)
This course is offered by the department of Computer Science and Engineering. The aim of the course is to give students a broad introduction to full-stack Web applications.
Course syllabus at Chalmers course portal
Course syllabus at GU course portal
Zoom link for lectures (passcode: webapps)
Course Material
- Lecture slides, Readings and Lecture Recordings
- Project Information
- Selected Clauses from OWASP Application Security Verification Standard
- Resources
- Minutes of mid-course meeting
Contact details
- Lecturer and course responsible, Robin Adams <robinad@chalmers.se>
- Teaching assistant, Wincent Stålbert Holm <wincenth@chalmers.se>
- Student representative, Harry Wik <harrywiksmail@gmail.com>
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.
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 Wincent)
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.