Course Practicalities

Course Overview


Course in brief

Web Software Development studies what web applications are, how they work, and how they are constructed. You will learn to distinguish the responsibilities of browser applications, server applications, and databases, and to design, implement, and test software that crosses the boundaries between them.

The course uses Svelte and SvelteKit, Deno and Hono, PostgreSQL, Docker Compose, and related tools. These make the examples concrete; the underlying subjects are the web platform, application structure, state, persistence, correctness, usability, and security.

High-level learning outcomes

After completing the core parts of the course, you should be able to:

  • explain the roles of the browser, server, database, and HTTP in a web application;
  • build interactive browser interfaces from components, state, events, and forms;
  • design server APIs with explicit input, output, and error contracts;
  • store and update relational data while accounting for validation, transactions, and concurrent requests;
  • implement authentication and authorization, and identify common web security risks;
  • test and diagnose behavior across browser, network, server, and database boundaries; and
  • develop and release a web application with attention to accessibility, usability, and repeatable delivery.

The elective parts let you apply the same foundations to real-time features and media, scalability and delivery, or resilient and progressive web applications.

Workload and study rhythm

The estimated workload is 5 ECTS credits (approximately 125-150 hours of study), although the time required varies between individuals. The workload includes studying the materials, trying the examples, completing exercises and Project Steps, and revisiting concepts that remain unclear. Aalto University students also complete examinations without AI support.

Work regularly rather than saving a whole part for one long session. A useful rhythm is to study a small section, predict what its examples will do, run or modify them, and then complete the related exercise. Return to the quick references and glossary when you encounter unfamiliar syntax or terminology.

Course structure

The course and its materials are still under development. The current plan for the structure is as follows:

PartFocus
1 — History & Walking SkeletonUnderstand web application arrangements; run, inspect, change, trace, and test a local application
2 — Client-Side Web ApplicationsHTML and the DOM; components, state, Internet and HTTP, and browser requests
3 — Server-Side Applications & DatabasesAPIs, validation, persistence, layers, transactions, and concurrency
4 — Forms & MutationsUser input, explicit mutations, typed HTTP clients, and full-stack verification
5 — Authentication, Authorization & SecurityIdentity, permissions, and web security informed by OWASP resources
6 — Usability & AccessibilityResponsive interfaces, accessible interaction, release preparation, and CI/CD awareness
7 — Real-Time Applications & MediaLive updates, background work, messaging, and uploads
8 — Scalability & DeliveryMeasurement, performance, infrastructure, and deeper CI/CD practice
9 — Resilient & Progressive Web ApplicationsServer rendering and BFF responsibilities, progressive enhancement, offline drafts, and PWAs

Prerequisites and expected skills

The materials assume prior programming experience and familiarity with relational databases and SQL. You should be able to navigate files in a terminal, run commands, install or start development tools, read technical documentation, and investigate an error message. Prior experience with the languages and frameworks of the course is not required.

The HTML Quick Reference, JavaScript Quick Reference, and TypeScript Quick Reference explain unfamiliar markup and language constructs. Read the sections you need; you do not need to memorize them. The quick references explain syntax and language mechanics, while the numbered parts use those mechanics to build web applications.

How to use the practicalities

Read these pages before beginning the numbered course parts, and return to them when you need a reminder:

For Aalto University students, current support channels and schedules are published on the MyCourses page of the current course offering. Those offering-specific instructions take precedence over older announcements or links.