Du hittar kurs-PM för nyare kursomgångar på sidan Kurs-PM.
Rubriker markerade med en asterisk ( * ) kommer från kursplan version HT 2021
Innehåll och lärandemål
Kursinnehåll
Programmering i Python. Programkvalitet. Abstraktion. Modularisering. Testning och felsökning. Versionshantering. Systemanrop. Biblioteksrutiner. Elementär webbprogrammering.
En systematisk genomgång av begreppen abstrakta datatyper, stackar, köer, listor, träd, sökning, sortering och rekursion. Hashning. Prioritetsköer. Sökträd. Problemträd. Textsökning. Algoritmanalys.
Lärandemål
Efter godkänd kurs ska studenten kunna
skriva strukturerade program på några sidor i programspråket Python
systematiskt felsöka program
skriva automatiserade testprogram
använda abstraktion som ett verktyg för att förenkla programmeringen
använda prototypprogrammering i Python
skriva fristående komponenter
använda ett webb-API (programmeringsgränssnitt)
välja lämplig algoritm till ett givet problem
jämföra algoritmer med avseende på tids- och minnesåtgång
beskriva olika algoritmer för sökning och sortering och deras egenskaper
formulera och implementera rekursiva algoritmer
modellera problem som sökproblem och implementera algoritmer för breddenförstsökning, djupetförstsökning och bästaförstsökning
beskriva grundläggande komprimeringsalgoritmer och vid vilka typer av komprimering de används
implementera stackar och köer samt använda dessa
implementera insättnings-, genomgångs- och sökoperationer i binära sökträd och allmänna träd samt använda dessa
implementera hashtabeller och hashfunktioner samt använda dessa
använda prioritetsköer
identifiera problem där datastrukturerna ovan är användbara och konstruera enkla algoritmer med dessa
i syfte att
bli bra på att lösa problem med programmering
kunna använda datalogiska metoder i tillämpningsprojekt
kunna testa datorsystem
få tillräckliga förkunskaper för att kunna läsa fortsättningskurser i datalogi.
Förberedelser inför kursstart
Kurslitteratur
Det finns ingen kursbok som är heltäckande för kursens ämnesområde. Kursen använder ett OLI-material (Online Leraning Initiative) som frivilligt instuderingsmaterial. Länk till detta finns via canvas.
Utrustning
Egen dator rekommenderas. Det finns linux-datasalar att tillgå på KTH.
Programvara
Kursen använder programmeringsspråket Python och flera tillägg/paket som kan behöva installeras separat.
Stöd för studenter med funktionsnedsättning
Om du har en funktionsnedsättning kan du få stöd via Funka:
KONT - Kontrollskrivningar, 3,0 hp, Betygsskala: A, B, C, D, E, FX, F
LABD - Programmeringsuppgifter, 3,0 hp, Betygsskala: A, B, C, D, E, FX, F
LABP - Programmeringsuppgifter, 3,0 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.
Digital tentamen används för högre betyg på KONT.
Avsnittet nedan kommer inte från kursplanen:
Kontrollskrivningar ( KONT )
Programmeringsuppgifter ( LABD )
Programmeringsuppgifter ( LABP )
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.
Avsnittet nedan kommer inte från kursplanen:
Om en student inte kan redogöra för hela uppgiftslösningen så kan examinator ge en ny programmeringsuppgift.