Hoppa till huvudinnehållet
Till KTH:s startsida Till KTH:s startsida

DD1321 Tillämpad programmering och datalogi 9.0 hp

Kurs-PM HT 2023-51458

Version 1 – 2023-10-26 20:11:15

Kursomgång

tilpro23 (Startdatum 2023-10-30, Svenska)

Undervisningsspråk

Svenska

Kursen ges av

EECS/Datavetenskap

Kurs-PM HT 2023

Presentation av kursen

En grundläggande kurs i datalogi och programmeringspraktik.

Rubriker markerade med en asterisk ( * ) kommer från kursplan version HT 2023

Innehåll och lärandemål

Kursinnehåll

Programmering: Imperativ och objektorienterad programmering i Python. Programmeringsmetodik. Programkvalitet. Testning och felsökningsstrategier. Modularisering. Abstraktion. Programmeringsgränssnitt.

Algoritmer och datastrukturer: En systematisk genomgång av datalogiska begrepp: abstrakta datatyper, algoritmanalys, rekursion, stackar, köer, listor, sökning, sortering, hashning, prioritetsköer, träd, sökträd, problemträd, textsökning, enkel syntaxanalys, kryptering.

Lärandemål

Efter godkänd kurs ska studenten kunna

  • skriva strukturerade program i Python
  • använda klasser och objekt vid programkonstruktion
  • systematiskt felsöka och testa program
  • använda abstraktion som ett verktyg för att förenkla programmeringen
  • använda programmeringsgränssnitt
  • välja lämplig algoritm till ett givet problem
  • jämföra algoritmer med avseende på tids- och minnesåtgång
  • implementera olika algoritmer för sökning och sortering och redogöra för 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, köer, binära sökträd, allmänna träd, hashtabeller och hashfunktioner samt använda dessa
  • använda prioritetsköer
  • använda enkla krypteringsmetoder, och förklara principerna för assymetrisk kryptering
  • använda algoritmer för textsökning, reguljära uttryck och BNF-syntax
  • 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
  • få tillräckliga förkunskaper för att kunna läsa fortsättningskurser i datalogi.

Läraktiviteter

Kursen är uppdelad i två delar, programmeringsteknik (HT23) och tillämpad datalogi (VT24), men båda delarna består av en kombination av läroaktiviteterna: föreläsningar, övningar och laborationstillfällen.

Programmeringsteknik-delen HT23 (3 hp)

Höstens undervisning håller ett förhållandevis högt tempo och består av en till två föreläsningar, ett labbtillfälle och en övning i veckan. Denna del av kursen kommer även att kompletteras av det interaktivta kursmaterialet Möbius som finns länkat via Canvas där en föreläsning vanligtvis kommer motsvara ett till två kapitel i materialet. Varje kapitel har även ett avslutande test som kan vara en bra förberedelse inför datorprovet som äger rum den 27/11. Möbius-testerna är dock inte obligatoriska.

Tillämpad datalogi-delen VT24 (6hp)

Vårens undervisning har ett liknande upplägg, och pågår under en period.

 

Förberedelser inför kursstart

Kurslitteratur

Det finns ingen kursbok som är heltäckande för kursens ämnesområde. Kursens första del använder dock ett interaktivt kursmaterial (Möbius) som finns tillgängligt från Canvas.

Utrustning

Egen dator rekommenderas, men 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. 

Examination och slutförande

Betygsskala

A, B, C, D, E, FX, F

Examination

  • 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.

Avsnittet nedan kommer inte från kursplanen:

Programmeringsuppgifter ( LABP )

Detta moment består av sex obligatoriska labbar och en kontrollskrivning (datorprovet) som tillsammans examinerar kursens första del, som ges under hösten. Denna del kan endast ge betyg E, vilket uppnås då samtliga sex labbar och datorprovet är godkända. Labbarna redovisas för någon av kursens lärare eller assistenter under kursens labbtillfällen. Det är starkt rekommenderat att redovisa labbarna under det labbtillfälle som är angivet som deadline i canvas, men det går att redovisa senare om det skulle behövas. Det går dock inte att vänta med att redovisa för många labbar då vi inte kan garantera att det är möjligt att redovisa mer än en labb per labbtillfälle. 

Kontrollskrivningar ( KONT )

Detta moment består av sex obligatoriska kontrollskrivningar och en betygshöjande tenta under våren. Kontrollskrivningarna ges i form av quiz på canvas som kan skrivas på valfri plats. För att bli godkänd på detta moment krävs godkänt betyg på samtliga kontrollskrivningar.

Den betygshöjande muntan får göras under förutsättning att alla kontrollskrivningar är godkända.

Programmeringsuppgifter ( LABD )

Detta moment består av sju obligatoriska labbar och en betygshöjande labb som tillsammans examinerar kursens andra del, som ges under våren. För ett godkänt betyg på detta moment krävs det att samtliga obligatoriska labbar är godkända. Labbarna redovisas för någon av kursens lärare eller assistenter under kursens labbtillfällen. Det är starkt rekommenderat att redovisa labbarna under det labbpass som är angivet som deadline i canvas, men det går att redovisa senare om det skulle behövas. Vi kan dock inte garantera att det finns möjlighet att redovisa mer än en labb per labbtillfälle.

För ett högre betyg krävs även den betygshöjande labben som blir tillgänglig då de fyra första obligatoriska labbarna är godkända.

 

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.

Ytterligare Information

Ändringar inför denna kursomgång

Kursens mål och innehåll är det samma, men laborationerna under kursens första del är utbytta eller delvis förändrade jämfört med tidigare år. Enbart labbar från ett år tillbaka (HT22) kan tillgodoräknas och tillgodoräkningen sker på följande sätt:

- p1 (från HT22) kan tillgodoräknas som labb 0, labb 1 (HT23) måste fortfarande göras 

- p2 (från HT22) kan tillgodoräknas som labb 2 (HT23)

- p3 (från HT22) kan tillgodoräknas som labb 3 (HT23)

Labb 1, 4 och 5 kan alltså inte tillgodoräknas då de skiljer sig för mycket från de tidigare labbarna.

Fakta om kursomgång

Startdatum

2023-10-30

Kursomgång

  • tilpro23 HT 2023-51458

Undervisningsspråk

Svenska

Kursen ges av

EECS/Datavetenskap

Kontakter

Kommunikation i kursen

Kontakta främst Camilla för frågor som rör kursen under höstterminen och Alexander för frågor gällande vårterminen. 

Kursansvarig

Lärare

Examinator