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:
| Part | Focus |
|---|---|
| 1 — History & Walking Skeleton | Understand web application arrangements; run, inspect, change, trace, and test a local application |
| 2 — Client-Side Web Applications | HTML and the DOM; components, state, Internet and HTTP, and browser requests |
| 3 — Server-Side Applications & Databases | APIs, validation, persistence, layers, transactions, and concurrency |
| 4 — Forms & Mutations | User input, explicit mutations, typed HTTP clients, and full-stack verification |
| 5 — Authentication, Authorization & Security | Identity, permissions, and web security informed by OWASP resources |
| 6 — Usability & Accessibility | Responsive interfaces, accessible interaction, release preparation, and CI/CD awareness |
| 7 — Real-Time Applications & Media | Live updates, background work, messaging, and uploads |
| 8 — Scalability & Delivery | Measurement, performance, infrastructure, and deeper CI/CD practice |
| 9 — Resilient & Progressive Web Applications | Server 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:
- Registration, Progress, and Assessment explains registration, progress, assessment conditions, and which source is authoritative for credits and grades.
- Development Setup and Tools explains the required host tools, how to verify them, and how the supplied environment is versioned.
- Study and Exercise Workflow gives a repeatable process for using starters, making controlled changes, diagnosing failures, and submitting work.
- Collaboration, Academic Integrity, AI, and Support explains individual work, permitted collaboration, responsible AI use, safe sharing, and how to ask for help.
- The three quick references and the Glossary are resources to consult as needed.
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.