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

DD1331 Grundläggande programmering 5.0 hp

Kurs-PM HT 2023-50260

Version 1 – 2023-08-31 15:28:52

Kursomgång

CTFYS (Startdatum 2023-08-28, Svenska)

Undervisningsspråk

Svenska

Kursen ges av

EECS/Datavetenskap

Kurs-PM HT 2023

Presentation av kursen

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

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

  • klassificera syntaktiska element i programkod med rätt terminologi
  • identifiera och tillämpa grundläggande datatyper, klasser och typkonverteringar
  • tillämpa och felsöka flödeskontroll samt logiska och aritmetiska uttryck
  • analysera en variabels räckvidd och livslängd
  • grafiskt beskriva kopplingen mellan variabelnamn, typer och data
  • felsöka korta program skrivna av andra
  • skriva och felsöka längre program
  • skriva en specifikation för ett längre program
  • dela upp ett problem i hanterliga delar
  • dela upp ett program i hanterliga delar
  • använda och utvärdera god programmeringspraxis
  • implementera, felsöka och med rätt terminologi beskriva rekursiva algoritmer
  • kombinera programspråkets inbyggda funktioner med egna funktioner för att lösa programmeringsproblem

i syfte att

  • kunna utföra beräkningar och lösa programmeringsproblem
  • vara förberedd för fortsättningskursen i datalogi.

För högre betyg ska studenten dessutom kunna

  • implementera ett interaktivt grafiskt användargränssnitt.

Läraktiviteter

Föreläsningar är strukturerade presentationer av ämnesområden som är centrala för kursen. För en grundkurs i programmering kan detta innebära introduktion till programmeringsspråk, grunderna i algoritmutveckling, programmeringsparadigm och andra centrala koncept inom ämnet. Föreläsningarna har akademisk kvart, vilket innebär att de börjar en kvart efter utsatt tid.

Varför förväntas ni gå på föreläsningarna?

  1. Strukturerad kunskapsöverföring: Föreläsningar ger en organiserad genomgång av kursmaterialet, vilket kan underlätta förståelsen för studenter.
  2. Tillfälle till interaktion: Även om föreläsningar ofta är ensidiga finns det ofta möjligheter att ställa frågor och få omedelbar återkoppling från föreläsaren.
  3. Kontext och sammanhang: Föreläsare har möjlighet att ge exempel, dra paralleller till verkliga situationer och förklara varför vissa koncept är viktiga. Detta ger studenterna en djupare förståelse för materialet.
  4. Motivation: Att höra en passionerad föreläsare tala om ett ämne kan inspirera och motivera studenter att dyka djupare in i materialet på egen hand.

Vad får ni ut av föreläsningarna?

  1. Förståelse: Genom att lyssna, ta anteckningar och interagera under föreläsningarna får studenter möjlighet att processa och förstå ny information i en takt som är lämplig för lärande.
  2. Guidning: Föreläsare kan peka ut viktiga delar av kurslitteraturen, betona centrala koncept och varna för vanliga misstag.
  3. Exempel: Föreläsningar i programmering kan inkludera kodexempel som belyser koncepten som diskuteras. Att se dessa exempel i realtid kan hjälpa studenter att bättre förstå hur teorin appliceras i praktiken.
  4. Nätverk: Föreläsningarna ger en möjlighet för studenter att träffa andra studenter med liknande intressen, ställa frågor och diskutera ämnet utanför klassrummet.

Vad förväntas av er inför föreläsningarna?

  1. Förberedelse: Följ kursen genom att läsa boken, göra OLI-materialet och kom igång och träna på labbarna.
  2. Anteckna lagom: Ett väldigt bra sätt att följa med på en föreläsning är att anteckna stödord långsamt. Att försöka skriva ner allt som sägs och görs ger för lite utrymme för att
  3. Passa på att ställa frågor: Under föreläsningar med kopiloter (assistenter i klassrummet) så finns det möjlighet att ställa frågor i en chat för de som har med sig en dator/surfplatta/mobiltelefon. Det finns också möjlighet att räcka upp handen för att ställa en fråga under själva föreläsningen och att komma fram med frågor till föreläsaren i pausen.
  4. Föreläsningar är ofta tysta: Under presentation av material så är föreläsningarna ofta tysta från åhörarnas sida medans pratet tilltar under övningar och pauser. Tänk på att hålla nere ljudnivån i en föreläsningssal. Många upplever det som svårt att koncentrera sig eller stå ut om det blir för mycket oväsen och inte alla har modet att berätta det för er.

 

Övningar påminner om föreläsningar men är i mindre grupper, i mindre salar och mer fokuserade på problemlösning relaterat till kursen. Övningar leds av assistenter eller föreläsare. De flesta tar med sig en laptop som har Python och Git installerat så att ni kan ta ner programmen som gås igenom och testa själva att modifiera dessa, men ni är välkomna utan laptop också.

Labbar är schemalagda tider då ni förväntas arbeta med kursens formativa (lärande men inte examinerande) och summativa (examinerande) uppgifter. Under labbpassen är vissa av Kth:s datasalar bokade för er och assistenter är inbokade för att hjälpa er på plats. Det finns också viss möjlighet att få hjälp via Zoom av assistenter i kursen. För att få hjälp vid ett labbpass, köa på https://queue.csc.kth.se/Queue/Gruprog
På labbpass går det också att redovisa färdiga labbar och P-uppgifter. Idealiskt sett ska du då ha gjort ett issue på ditt githubrepo där det står "Redovisning" och fått en bokning via assistenter, men som backupstrategi så finns möjlighet till drop-in-redovisning på labbpass genom att ställa dig i kö för redovisning.

Observera att den hjälp ni kan få av assistenter i kursen mest handlar om att hitta information och förstå vad uppgifterna går ut på. Att faktiskt planera, hitta angreppssätt, skriva kod, felsöka kod och testa kod är er uppgift som kursdeltagare.

Allmänhandledningen är ett centralt system där Kth ger hjälp under luncher och kvällstid. Ni hittar till allmänhandledningen på: https://www.kth.se/social/group/allmanhandledning/

Kth tillhandahåller också restlabbstillfällen. När kursen är klar så finns det möjlighet att redovisa labbar och P-uppgifter här: https://www.kth.se/social/group/labbvecka/page/restlabbar-7/

Detaljplanering

Detaljplaneringen publiceras under kursöversikt på Canvas för årets kursomgång. Gå till https://www.kth.se, klicka personliga menyn, kurser, DD1331 för årets omgång och slutligen kursöversikt för att få se detaljplaneringen.

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). DD1301 Datorintroduktion rekommenderas och kan läsas parallellt.

Särskilda förberedelser

Inför kursen förväntas deltagarna ha skaffat ett konto på Kth:s Github och åtminstone påbörjat kursen DD1301, datorintroduktion.

Kurslitteratur

Kursbok är Introduction to programming in Python av Sedgewick, Wayne och Dondero.

Utrustning

En egen laptop (Mac eller PC) rekommenderas. Ni som kör Windows rekommenderas att ha minst version 10, men Windows 11 är ännu bättre.
Mac är lite enklare att komma igång med eftersom terminalen och Python redan är installerade.
Om du vill köra Linux på din egen dator så är Ubuntu enklast att komma igång med för de flesta, men kursen är helt agnostisk till vilken distro du kör.

Programvara

Något av de tre vanligaste operativsystemen för desktopar rekommenderas: Windows 10/11, Linux eller macOS ChromeOS rekommenderas inte.

Någon av de vanligaste terminalerna krävs. På Mac och Linux är dessa redan installerade. På Windows 10/11 är den bästa terminalen "Terminal" från Windows store. Installera WSL 2, Windows Subsystem for Linux version 2 och installera till sist Ubuntu, också från Microsoft Store.

Git krävs. På Mac kan du installera Git med hjälp av Xcode-tools som finns på app store. På Ubuntu Linux kan du installera git med "$sudo apt install git" i en terminal. På Windows rekommenderas Git Bash, alternativt att köra git via Ubuntuterminalen med instruktioner enligt denna.

Python3 används på alla examinerande moment i kursen: labbar, kontrollskrivning, ceriseprov och P-uppgift. Vi använder cpython, dvs den version som installeras från Pythons hemsida för Windowsanvändare. Samma version är förinstallerad på Linux och Mac.

En editor krävs. Populära editorer är Visual Studio Code, Atom och Sublime text. Det är tillåtet att använda en komplett utvecklingsmiljö som exempelvis PyCharm från Jetbrains. Äldre programmerare använder ibland Emacs eller Vim. Den krångligaste är Vim. Den enklaste och populäraste är Visual Studio Code.

Examination och slutförande

Betygsskala

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

Examination

  • KONT - Kontrollskrivning, 1,0 hp, Betygsskala: P, F
  • LAB1 - Laboration, 2,0 hp, Betygsskala: P, F
  • PRO1 - Individuellt programmeringsprojekt, 2,0 hp, Betygsskala: A, B, C, D, E, FX, 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.

Möjlighet till plussning

Denna kurs erbjuder viss möjlighet till plusning under kursens gång. Det är möjligt att höja från E till D genom många steg. Om du överskrider för många labbdeadlines så stängs dörren till de höga betygen så om du siktar högt - börja tidigt. För detaljer, se betygskriterier.

Resultatrapportering

Resultatsrapportering till Ladok sker inom 2 veckor efter kursens avslutande.

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

Ändringar inför denna kursomgång

Ceriseprovet är inte längre obligatoriskt, men det rekommenderas för inlärningen.

Vissa föreläsningar i kursen, men inte den första kommer att ha videos som förberedande material för att utgöra flippat klassrum.

Fakta om kursomgång

Startdatum

Obligatoriskt innehåll saknas

Kursomgång

  • CTFYS HT 2023-50260

Undervisningsspråk

Svenska

Kursen ges av

EECS/Datavetenskap

Kontakter