Hoppa till huvudinnehåll

Webbserverprogrammering 1 & Programmering 2 🚀

Kursbeskrivning

Dessa kurser ger eleverna djup förståelse för modern fullstack-webbutveckling med fokus på serversidans programmering. Genom att bygga riktiga, fungerande webbapplikationer från grunden lär ni er alla aspekter av webbserverprogrammering - från databaser och säkerhet till realtidsdata och deployment.

Kursen använder SvelteKit som primärt ramverk men fokuserar på universella koncept som är överförbara till alla teknologier. Ni bygger progressivt mer komplexa applikationer och avslutar med ett eget fullstack-projekt.

Lärandemål

Efter avslutad kurs ska eleven kunna:

Tekniska färdigheter

  • Utveckla fullstack-webbapplikationer med modern arkitektur
  • Designa och implementera relationsdatabaser med säkra dataoperationer
  • Implementera säker användarautentisering och sessionhantering
  • Skapa realtidsfunktioner med Server-Sent Events
  • Deploya applikationer till produktionsmiljö i molnet
  • Hantera filuppladdning

Programmeringskoncept

  • Objektorienterad programmering (klasser, arv, polymorfism, inkapsling)
  • API-design och REST-principer
  • Kryptografi och säkerhetsaspekter
  • Asynkron programmering och dataflöden
  • Nätverksprogrammering och multiplayer-arkitektur

Projektfärdigheter

  • Planera och strukturera större utvecklingsprojekt
  • Använda versionskontroll och deployment-workflows
  • Felsöka komplexa system med många komponenter
  • Dokumentera och presentera tekniska lösningar

Kursstruktur och Tidsuppskattning

Total kurstid: 40 veckor × 4 timmar = 160 modulstimmar

Block 1: Grundläggande Webbserverprogrammering

7 veckor, 28 timmar, AUG-OKT

Vecka 1-2: SvelteKit Fundamentals

  • Modul 1: Kom igång med SvelteKit och Fetch API
  • Modul 2: Skapa egna API endpoints
  • Modul 3: SvelteKit Load Functions och Form Actions
  • Modul 4: SvelteKit Fundamentals Tutorial

Vecka 3-4: Routing och Data

  • Modul 5: Dynamisk Routing med Forum-app
  • Modul 6: Databas med Prisma och SQLite

Vecka 5-7: Realtidsdata och Repetition

  • Modul 7: Live Updates med Polling
  • Modul 8: Marknadsplats - Repetition
  • Modul 9: Spelkaraktärer - Repetition

Block 2: Säkerhet, Autentisering, Hosting, Realtid

7 veckor, 28 timmar, OKT-NOV

Vecka 8-10: Grundläggande Auth

  • Modul 10: Autentisering och Sessions
  • Modul 11: Hosting och Production
  • Modul 12: Bilduppladdning och Filhantering

Vecka 11-15: Avancerad Säkerhet

  • Modul 13: Kryptografi och Lösenordssäkerhet
  • Modul 14: Layout Groups och Avancerad Routing
  • Modul 15: Session Tokens och Avancerad Autentisering
  • Modul 16: Realtidsdata med Server-Sent Events

Block 4: Slutprojekt och Examination

12 veckor, 48 timmar, DEC-MAR

Vecka 18-30:

  • Modul 17: Slutprojekt - Bygg Din Drömhemsida
  • Projektplanering och design (4h)
  • Implementering och utveckling (36h)
  • Testing, dokumentation och presentation (8h)

Block 5: OOP & Multiplayerspel

10 veckor, 40 timmar, APR-JUN

  • OOP: Objektorienterad Programmering med Battle Arena (12h)
  • Godot: Nätverksspel med Godot (28h)

Metodologi och Pedagogisk Ansats

Learning by Doing

  • Varje koncept introduceras genom praktiska, verkliga exempel
  • Eleverna bygger fungerande applikationer från första modulen
  • Progressiv komplexitet - varje modul bygger på tidigare kunskaper

Problembaserat Lärande

  • Eleverna löser riktiga utvecklingsutmaningar
  • Fokus på förståelse av VARFÖR, inte bara HOW
  • Uppmuntran till experimentering och egen problemlösning

Portfolio-utveckling

  • Alla projekt kan användas som portfolio-material
  • Slutprojektet blir en komplett showcase-applikation
  • Deployment till riktiga produktionsmiljöer

Teknisk Stack

Huvudteknologier

  • Frontend: SvelteKit, HTML5, CSS3, JavaScript/TypeScript
  • Backend: Node.js, SvelteKit API routes
  • Databas: SQLite → PostgreSQL, Prisma ORM
  • Hosting: Render.com, Git/GitHub
  • Säkerhet: Node.js crypto, HTTPS, säkra sessions

Utvecklingsverktyg

  • Visual Studio Code
  • Git/GitHub för versionskontroll
  • Prisma Studio för databashantering
  • Browser Developer Tools
  • Trello för projektplanering

Bedömning och Examination

Kontinuerlig Bedömning (50%)

  • Deltagande i moduler och diskussioner
  • Engagemang & driv för kontinuerligt lärande
  • Genomförande av praktiska övningar

Slutprojekt (50%)

  • Teknisk implementation
  • Nyttjande av koncept från kursen
  • Kreativitet och användarupplevelse
  • Dokumentation och presentation
  • Reflektion över lärande och process

Förkunskapskrav

  • Grundläggande programmering (variabler, loopar, funktioner)
  • HTML och CSS grundkunnigheter
  • Bekantskap med webbutveckling och browsers
  • Förståelse för filsystem och mappstrukturer

Resurser och Material

Primära resurser

  • Kursmaterial och tutorials (tillhandahålls)
  • SvelteKit officiell dokumentation
  • Prisma dokumentation
  • MDN Web Docs för webstandarder

Utvecklingsmiljö

  • Modern dator med internetuppkoppling
  • Node.js installerat
  • Git installerat
  • Text editor (VS Code rekommenderas)

Koppling till Framtida Studier och Yrkesliv

Direkt Tillämpbara Färdigheter

  • Fullstack webbutveckling
  • Databasdesign och -hantering
  • Säkerhetsprogrammering
  • Cloud deployment och DevOps

Förberedelse för Fortsatta Studier

  • Universitetsutbildning inom datavetenskap
  • Specialisering inom cybersäkerhet
  • Fortsatta studier inom systemutveckling

Karriärmöjligheter

  • Backend-utvecklare
  • Fullstack-utvecklare
  • Systemutvecklare
  • DevOps-ingenjör
  • Säkerhetsspecialist

Hur elever lyckas i kursen

Rekommendationer för Optimal Inlärning

  1. Experimentera aktivt - testa egna idéer utöver kursmaterialet
  2. Dokumentera processen - skriv ner lärdomar och utmaningar, extra viktigt vid slutprojekt
  3. Samarbeta med klasskamrater - dela kunskap och hjälp varandra
  4. Bygg något du bryr dig om - välj projekt som motiverar dig
  5. Våga göra misstag - lärandet sker genom problemlösning

Stöd och Resurser

  • Regelbunden handledning under moduler
  • Tillgång till kursmaterial och referenser 24/7
  • Uppmuntran till peer learning och diskussion
  • Individuell feedback på projekt och kod