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.
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.
Kurslitteratur
Introduction to programming in Python av Sedgewick, Wayne och Dondero.
Programvara
Något av de tre vanligaste operativsystemen för desktopar rekommenderas. Windows, Linux eller macOS 10/11. 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 22.04, 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. Den ä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. I grundkursen vinner du inte mycket på att byta editor om du inte har valt Vim.
Stöd för studenter med funktionsnedsättning
Om du har en funktionsnedsättning kan du få stöd via Funka:
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 samordnare för 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 inte plusning.
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
En extra inlämning har lagts in i kursens slut. Det blir ett ceriseprov som är som kontrollskrivningen men betydligt enklare. I denna inlämning ingår även en reflektionsdel.
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.