- Användning av olika programvaruutvecklingsverktyg: versionshanteringssystem, UNIX-kommandorad, kompilatorer, integrerade utvecklingsmiljöer, och felsökningsverktyg.
- Programmering med hjälp av olika datastrukturer: listor, arrayer, stackar, köer, och strukturer för uppslagning.
- Programspråkskoncept: mönstermatchning, rekursion, slingor, aritmetik, operatorer, variabler, algoritmer, oföränderlig data, objekt, klasser, funktioner, pekare, datatyper, polymorfism.
- Programvarutekniker: design, testning, felsökning, promptning (både för egenskrivna program och av existerande program).
- Programspråksparadigm: historiskt perspektiv, översikt av olika språk och paradigm, samt studie, diskussion, och analys av programmeringsbegrepp inom imperativ programmering (variabler och pekare), funktionell programmering (rekursion och oföränderlig data) och objektorienterad programmering (objekt och klasser).
- Former av in- och utmatning, inklusive ljud, bild, text och filer.
- AI-verktyg: översikt och kortare övningar med moderna AI-verktyg.
- Individuellt projekt: egen utveckling av ett icketrivialt program, inklusive problemformulering, design, testning och presentation.
ID1022 Konsten att programmera 7,5 hp

Information per kursomgång
Kursomgångar saknas för aktuella eller kommande terminer.
Kursplan som PDF
Notera: all information från kursplanen visas i tillgängligt format på denna sida.
Kursplan ID1022 (HT 2026–)Rubriker med innehåll från kursplan ID1022 (HT 2026–) är markerade med en asterisk ( )
Innehåll och lärandemål
Kursinnehåll
Lärandemål
Efter godkänd kurs ska studenten kunna
- använda grundläggande programvaruutvecklingsverktyg, datastrukturer, algoritmer och datatyper
- konstruera program som innehåller funktioner och olika kontrollflödeskonstruktioner med hjälp av både statisk och dynamisk typkontroll
- jämföra och analysera programmeringsbegrepp inom imperativ programmering, funktionell programmering och objektorienterad programmering
- felsöka och förbättra program skrivna av andra personer
- programmera både med och utan AI-baserad kodgenerering
- designa, utveckla och testa ett icke-trivialt program
i syfte att
- kunna som enskild student designa, utveckla och testa egna program utan hjälp av andra personer
- vara väl förberedd att kunna lära sig nya programspråk, inklusive andra språk som är imperativa, funktionella eller objektorienterade.
För högre betyg ska studenten kunna
- designa, utveckla och testa program med komplexare problemformulering och med mer avancerade språkkoncept.
Kurslitteratur och förberedelser
Särskild behörighet
Ingen information tillagd
Kurslitteratur
Du hittar information om kurslitteratur antingen i kursomgångens kurs-PM eller i kursomgångens kursrum i Canvas.
Examination och slutförande
Betygsskala
A, B, C, D, E, FX, F
Examination
- DAT1 - Datorbaserad examination, 6,0 hp, betygsskala: A, B, C, D, E, FX, F
- PRO1 - Individuellt projekt, 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.
Examinator
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
Kursrum i Canvas
Registrerade studenter hittar information för genomförande av kursen i kursrummet i Canvas. En länk till kursrummet finns under fliken Studier i Personliga menyn vid kursstart.
Ges av
Huvudområde
Teknik
Utbildningsnivå
Grundnivå
Övrig information
Överlappar delvis (3-6 hp) med DD1310-DD1319, DD1321, DD1331, DD1333, DD100N, DD1337, ID1018.