Rubriker markerade med en asterisk ( * ) kommer från kursplan version HT 2026
Innehåll och lärandemål
Kursinnehåll
Grundläggande datatekniska begrepp.
Programmering i ett modernt programspråk (Python). Datastrukturer och klasser. Problemlösning genom uppdelning i delproblem. Programstrukturering. Flera mindre programmeringsuppgifter samt en större, individuell programmeringsuppgift med stor vikt på strukturering och specifikation av ingående moduler.
Lärandemål
Efter godkänd kurs ska studenten kunna
konstruera program utan kodupprepningar
dela upp ett större problem i hanterliga delar
dela upp ett program
tillämpa styrstrukturer
utforma och presentera användarvänliga utdata
skapa flexibla applikationer
konstruera programmerarvänliga program med lämpliga namn och kommentarer samt konsekvent språk och typografi
konstruera interaktiva program
använda och konstruera sammansatta datatyper och klasser
överföra data mellan fil och program
granska andras program
i syfte att kunna
använda programmering för att lösa problem
tillämpa problemlösningsmetodiken även inom andra områden än programmering
diskutera programutveckling med experter
bedöma program på upp till femhundra rader kod
självständigt och i grupp kunna lösa problem genom att konstruera program på upp till femhundra rader i ett modernt programspråk.
Läraktiviteter
Under kursomgången används flera typer av läraktiviteter: föreläsningar, självstudiematerial (OLI-material), övningar och laborationer.
Föreläsningar introducerar kursens centrala programmeringskoncept, exempelvis variabler, datatyper, kontrollstrukturer, funktioner, datastrukturer och objektorienterad programmering. Föreläsningarna ger den teoretiska grunden och visar exempel på hur koncepten används i praktiken.
Självstudiematerial (OLI-material) används för att fördjupa och komplettera innehållet från föreläsningarna. Materialet är tänkt att arbetas igenom efter respektive föreläsning och fungerar samtidigt som förberedelse inför kommande övningstillfällen. OLI-materialet består av förklaringar och kodexempel som ger möjlighet att studera programmeringskoncept mer på djupet. I materialet finns även frivilliga tester som ger bonuspoäng. Bonuspoängen kan sedan användas vid examinationsmomentet datorprovet.
Övningar genomförs under schemalagda övningstillfällen och bygger vidare på innehållet från föreläsningarna och självstudierna. Fokus ligger på att studenten själv ska tillämpa sina kunskaper genom att lösa programmeringsproblem och diskutera olika lösningsstrategier. Övningarna är ett tillfälle att få praktisk träning och att upptäcka och reda ut sådant som fortfarande är oklart inför laborationerna och examinationen. För att få ut så mycket som möjligt av övningstillfällena är det viktigt att studenten har arbetat igenom relevant föreläsnings- och OLI-material i förväg. Vid varje övningstillfälle finns en övningslärare på plats som kan hjälpa studenterna om de fastnar på någon uppgift eller behöver stöd med att komma vidare. Närvaro vid övningstillfällena är obligatorisk. Tanken är att övningsuppgifterna ska genomföras och bli klara under övningstillfället. Om studenten inte hinner slutföra alla uppgifter under övningen får de återstående uppgifterna redovisas vid ett senare laborationstillfälle. Om studenten missar ett obligatoriskt övningstillfälle behöver även de aktuella övningsuppgifterna redovisas vid ett laborationstillfälle.
Laborationer är praktiska examinationsmoment där studenten får tillämpa sina programmeringskunskaper genom att lösa mer omfattande programmeringsuppgifter. Närvaro vid laborationstillfällena är obligatorisk. Studenten förväntas komma förberedd med den aktuella laborationen och i första hand använda tillfället för att redovisa sitt arbete. Under laborationstillfällena finns lärare på plats för att hjälpa studenter som har problem med uppgiften, behöver stöd med felsökning eller har frågor kring sin lösning.
Läraktiviteterna kompletterar varandra och studenten bör räkna med att en betydande del av lärandet sker genom eget programmeringsarbete mellan de schemalagda aktiviteterna. En bra arbetsgång är att först ta del av föreläsningen, därefter arbeta igenom relevant OLI-material och sedan använda övningstillfällena för att tillämpa och diskutera kunskaperna. Kunskaperna används därefter i laborationsuppgifterna.
Förberedelser inför kursstart
Rekommenderade förkunskaper
Matematikkurserna från gymnasiets naturvetenskapsprogram eller motsvarande. Någon datorerfarenhet (begreppen operativsystem och fil samt erfarenhet av någon tillämpning t.ex. ordbehandling). En grundläggande kurs i matematik, till exempel SF1624/SF1625 (kan läsas parallellt).
Kurslitteratur
Föreläsningsmaterial (läggs upp på canvas)
OLI-material (tillgänglig via canvas)
Övningsmaterial (läggs upp på canvas)
Labbinstruktioner (läggs upp på canvas)
Följande bok rekommenderar vi för den som behöver mer material utöver ovanstående men kursen följer inte boken:
Boken Python Programming for the Absolute Beginner, 3rd Edition Michael Dawson, ISBN 10: 1435455002, ISBN 13: 9781435455009 BokenLänkar till en extern sida. i elektroniskt format Klikca härLänkar till en extern sida. för att ladda ner exempelen i boken.
Stöd för studenter med funktionsnedsättning
Om du har en funktionsnedsättning kan du få stöd via Funka:
För att få ett slutbetyg krävs att studenten får godkänt betyg på tre delar i kursen, introducerande laborationer, datorprovet och projektet.
På laborationer och datorprovet gäller godkänt eller underkänt. Men på projektet kan man få betygen E-A. Betyg på projektet blir även slutbetyg på kursen. Studenten väljer en av de befintliga uppgifterna i kursen och skriver ett program i python till det. Betyget sätts sedan på programmets kvalitet. Programmets kvalitet bestäms av regler inom programmeringsmetodik och hur de reglerna har beaktats samt om studenten har tagit hänsyn till användare, administratören, programmerare och datorn som ska köra programmet vid utveckling av programmet.
Tabellen nedan visar betygskriterier för projektet. Betygskriterier för introducerande laborationer är de kriterier som står under kolumnen för betyget E.
Mål
E
D
C
B
A
Kunna konstruera
sammansatta datatyper (klasser)
Kunna konstruera egna datatyper (klasser) och kunna förklara fördelen med egenkonstruerade datatyper
Kunna konstruera egna datatyper (klasser) för att lösa något mer komplicerade instans av ett problem.
Kunna dela ett
större problem till mindre beståndsdelar av problemet
Kunna dela upp ett större problem till mindre och hanterliga problem utan väsentliga brister
Kunna dela upp ett större problem till mindre och hanterliga problem utan några brister
Kunna dela upp ett program
Konstruera programmet så att det består av generella funktioner och program-del utan väsentliga brister
Konstruera programmet så att det består av generella funktioner och program-del utan några brister
Kunna tillämpa styrstrukturer
Använda lämpliga styrstrukturer för ett givet problem över det större delen av programmet.
Använda lämpliga styrstrukturer för ett givet problem genomgående.
Konstruera program utan kodupprepningar
Kunna konstruera applikationer utan upprepningar över stora delar av programkoden och kunna förklara nackdelar med koduppreningar.
Kunna konstruera applikationer utan upprepningar genomgående och kunna förklara nackdelar med koduppreningar.
Kunna skapa flexibla applikationer
Konstruera program med flexibilitet i den meningen att programmet klarar av att lösa större instans av problemet genom att införa små förändringar i programkoden.
Konstruera program med stor flexibilitet i den meningen att programmet klarar av att lösa större instans av problemet genom att införa små förändringar i programkoden.
Kunna välja lämpliga identifierarnamn
Kunna konstruera programkod där lämpliga identifierarnamn har valts över det största delen av programkoden.
Kunna avgöra var i en programkod ska man välja längre identifierarnamn i bekostnad av programkodens storlek
samt välja kortare identifierarnamn i bekostnad av programkodens läsbarhet.
Kunna konstruera interaktiva program
Konstruera applikationer där uttrycksfulla förfrågningar ställs till användaren för att minimera risken av feltolkning och missförstånd hos användaren utan väsentliga brister
Konstruera applikationer där uttrycksfulla förfrågningar ställs till användaren för att minimera risken av feltolkning och missförstånd hos användaren.
Använda sig av lämplig
konstruktion för hantering av inmatningsfel och formateringsfel i indatafil.
Välja och använda lämpliga grafiska komponenter i ett grafiskt användargränssnitt.
Tabellen nedan är en del av betygskriterier för projektet (gäller inte introducerande laborationer):
Mål
E
D
C
B
A
Kunna planera programmeringsarbete
Kunna skriva en planering över vilka delar programmet kommer att bestå av och hur lösningen kommer att se ut.
Kunna granska ett program
Kunna undersöka ett program och hitta eventuella brister hos programmet med avseende på principer som har tagits upp i kursen.
Projektuppgifterna är utformade på så sätt att det finns en grunduppgift som kan ge högst ett D i betyg och det finns påbyggande extrauppgifter för varje högre betyg än D. Så högsta betyg som studenten kan få bestäms av utförda uppgifterna och kvalitet på implementerade koden. Vid redovisningen används ett redovisningsprotokoll med följande punkter.
Informativa utskrifter
Enkel inmatning
Kommentarer
Beskrivande namn
Konsekvent språk och typografi
Felhantering (om det ingår)
Klasser (minst en)
Uppdelning i funktioner och metoder
Parametrar/returvärden
Ingen kodupprepning
Flexibilitet
Om det finns smärre brister på någon av ovanstående punkter får man en påpekande på den punkten. Om man totalt får 1-3 påpekanden på alla punkterna så får man betyget E även om man redovisar för högre betyg. Ett protokoll utan några påpekande innebär att studenten får det betyg som hen redovisar för medan ett protokoll med fler än tre påpekanden innebär att studenten får komplettera. I protokollet finns även följande två viktigare punkter.
Uppfyller kravet i lydelsen
Studenten kan redogöra för alla detaljer i programkoden
Studenten får komplettering om någon av ovanstående två punkter får påpekande.
Betygskriterier för datorprovet är att kunna identifiera nyckelord i Python, kunna identifiera utdata från ett givet program, kunna bland några lösningar välja de fungerande lösningar som löser ett visst givet problem som handlar om hantering av datastrukturer, filhantering, funktioner, styrstrukturer, särfall, metoder och klasser.
Plussning
Den student som har fått något av betygen E-B innan kursens slut får plussa sitt betyg. Plussning är möjlig endast ett år efter kurses startdatum.
Slutbetyg
Projektets betyg är kursens slutbetyg. Kraven att få slutbetyg är att projektet har fått ett betyg samt datorprovet och introducerande labbarna är godkända.
Examination och slutförande
Betygsskala
A, B, C, D, E, FX, F
Examination
LAB3 - Laborationsuppgifter 3, 3,0 hp, betygsskala: A, B, C, D, E, FX, F
LAB2 - Laborationsuppgifter 2, 1,5 hp, betygsskala: P, F
LAB1 - Laborationsuppgifter 1, 1,5 hp, betygsskala: P, F
Examinator beslutar, baserat på rekommendation från KTH:s handläggare av stöd till studenter med funktionsnedsättning, om eventuell anpassad examination för studenter med dokumenterad, varaktig funktionsnedsättning.
Examinator får medge annan examinationsform vid omexamination av enstaka studenter.
När kurs inte längre ges har student möjlighet att examineras under ytterligare två läsår.
Avsnittet nedan kommer inte från kursplanen:
Löpande examination (LAB1)
Den löpande examinationen består av övningar och laborationer som genomförs under kursens gång. Övningarna är obligatoriska och studenten ska genomföra och redovisa de aktuella övningsuppgifterna under övningstillfällena. Laborationerna är obligatoriska examinationsmoment där studenten genomför och redovisar laborationsuppgifter. För att bli godkänd på den löpande examinationen behöver studenten uppfylla kraven för samtliga obligatoriska övningar och laborationer. Om en student missar ett övningstillfälle, eller inte hinner slutföra övningsuppgifterna under tillfället, kan de återstående uppgifterna redovisas vid ett senare laborationstillfälle. Resultatet på den löpande examinationen bedöms utifrån studentens prestationer på de enskilda övningarna och laborationerna. Samtliga obligatoriska moment måste vara godkända för att den löpande examinationen som helhet ska vara godkänd.
Hjälpmedel vid datorprovet (LAB2)
Vid datorprovet får studenten ta med sig ett handskrivet A4-papper med valfritt innehåll som hjälpmedel. Under provet har studenten även tillgång till Pythons officiella dokumentation samt en webbaserad Python-tolk, som kan användas för att köra och testa mindre Pythonkod. Inga andra hjälpmedel är tillåtna om de inte uttryckligen anges i provets instruktioner.
Projektet (LAB3)
Är kursens enda betygsgivande examinationsmoment och består av en större programmeringsuppgift som genomförs individuellt. Uppgiften ger studenten möjlighet att tillämpa och visa sina programmeringskunskaper genom att utveckla en mer omfattande programlösning. Eftersom LAB3 genomförs individuellt ska studenten självständigt utföra arbetet och kunna redogöra för sin lösning. Bedömningen av LAB3 ligger till grund för kursens slutbetyg.
Instruktioner vid examination
Studenten är skyldig att ta del av och följa de instruktioner och regler som gäller för respektive examinationsmoment. Det är studentens ansvar att ta del av den information som ges inför och under examinationen. Om studenten inte följer givna instruktioner eller regler kan detta leda till att ärendet anmäls för misstanke om disciplinförseelse. Disciplinära påföljder kan vara varning eller avstängning.
Användning av AI vid examination
AI-verktyg får inte användas i någon av kursens examinerande uppgifter. Detta gäller samtliga examinationsmoment, inklusive övningsuppgifter, laborationer, datorprovet och projektet.
Övriga krav för slutbetyg
Obligatorisk närvaro vid övningar och laborationer.
Möjlighet till komplettering
Studenten kan få möjlighet att komplettera datorprovet om samtliga följande krav är uppfyllda:
Studenten har högst en icke godkänd kategori, med hänsyn tagen till eventuell bonus.
Studenten har svarat rätt på minst 14 av 21 frågor.
Om något av kraven ovan inte är uppfyllt ges ingen möjlighet till komplettering.
Kompletteringen genomförs som en muntlig redovisning av programmeringsuppgifter inom den kategori där studenten inte har uppnått godkänt resultat. Uppgifterna behöver inte vara samma som på datorprovet, men de testar kunskaper och färdigheter inom samma kategori.
Möjlighet till plussning
Plussning är möjligt, men bara fram till ett år från kursomgångens start, vilket normalt sammanfaller med när nästa års motsvarande kursomgång börjar.
Etiskt förhållningssätt
Vid grupparbete har alla i gruppen ansvar för gruppens arbete.
Vid examination ska varje student ärligt redovisa hjälp som erhållits och källor som använts.
Vid muntlig examination ska varje student kunna redogöra för hela uppgiften och hela lösningen.
Ytterligare information
Övriga föreskrifter
Kursplanen gäller från och med VT 2025 enligt grundutbildningsansvarigs beslut: J-2024-21888.
Beslutsdatum: 2024-10-08