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
- Experimentera aktivt - testa egna idéer utöver kursmaterialet
- Dokumentera processen - skriv ner lärdomar och utmaningar, extra viktigt vid slutprojekt
- Samarbeta med klasskamrater - dela kunskap och hjälp varandra
- Bygg något du bryr dig om - välj projekt som motiverar dig
- 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