Kursinnehåll

Bästa approachen till vad ni behöver lära er i kursen är att tänka på vilka typer av problem ni vill kunna lösa med programmering och lär er de verktyg ni behöver för att göra det bra. Med största sannolikhet kommer ni att pricka in mycket av listan nedan på det sättet, men om ni skulle missa någonting så är det bra att använda det här som en checklista för att fylla i luckorna.

Det här är hur kursens mer generella plan från programkatalogen är implementerad i årets kursomgång.

Verktyg som används i kursen Vilken omfattning har det? Hur lär man sig det? Hur examineras det?
Bash/Zsh Ni behöver kunna programmera och använda ett shellprogram som tar kommandoradsparametrar, läser från standard input och skriver till standard output.
Dessutom behöver ni kunna pipea ihop olika kommandon till ett stort kommando.
Kursen DD1301, kursboken (eller guider på nätet), föreläsningar eller övningar. Labbarna, främst Labb 3.
Git Sätta upp ssh-nycklar, använda git från Bash med parametrarna clone, add, commit och push. Det ingår också att göra ett lite större projekt som har Git-historik. Kursen DD1301 samt guider på nätet. Varje labb ska finnas på git. Den individuella P-uppgiften ska göras med Git.
Python Det mesta av Python ingår i kursen så det är enklare att beskriva vad som inte ingår:
Python version 2 ingår inte alls. Alla kursmoment går i Python 3.
Parallellprogrammering ingår inte, så inget om async, await eller korutiner ingår.
Multipelt arv och metaklasser ingår inte. Reguljära uttryck (regexpar) ingår inte.
Samtliga kursmoment: Boken, guider på nätet, föreläsningar, övningar och laborationer. Ingår i samtliga examinationsmoment.


Nedanstående tabell ger detaljer om hur varje lärandemål är implementerat i årets kursomgång och hur det examineras.

Kursens lärandemål Vilken omfattning har det? Hur lär man sig det? Hur examineras det?

klassificera syntaktiska element i programkod med rätt terminologi

Lexing: Ni behöver veta vad som menas med identifierare, delimiter (skiljetecken), operator, literal och keyword (nyckelord).
Parsing: Ni behöver behärska termerna uttryck och sats.
Övrigt: Ni behöver kunna begreppet syntax.
Kursboken, föreläsningarna samt språkspecen på Pythons hemsida Labbredovisningar samt kontrollskrivningen.

identifiera och tillämpa grundläggande datatyper, klasser och typkonverteringar

De inbyggda typerna int, string, float, list, set, dictionary och typkonverteringar däremellan.
Ni behöver kunna implementera egna klasser och skapa objekt av dessa.
Tutorials, kursboken, föreläsningar och laborationer. Laborationer, P-uppgiften, kontrollskrivningen.

tillämpa och felsöka flödeskontroll samt logiska och aritmetiska uttryck

Ni behöver kunna använda if, for, while, continue, break samt de logiska och aritmetiska operatorerna. Tidiga föreläsningarna, OLI-materialet, kursboken Laborationer, P-uppgiften och kontrollskrivningen.

analysera en variabels räckvidd och livslängd

scope, aliasing och garbage collection. Kursboken eller tutorials. Kontrollskrivningen.

grafiskt beskriva kopplingen mellan variabelnamn, typer och data,

Ni behöver kunna rita, tolka och utvärdera ett låd- och pildiagram som förbinder namn, scopes, objekt och attribut. Bit för bit genom hela kursen. Kontrollskrivningen.

felsöka korta program skrivna av andra,

Kunna känna igen de vanligaste felen som exceptions, attribute error, syntaxfel och zero division error; samt de vanligaste algoritmiska felen som off by one, < istället för <= och liknande. Föreläsningar och övningar. Kontrollskrivningen.

skriva och felsöka längre program

Använda spårutskrifter och testa delar av koden för att isolera fel. Förstå tillräckligt mycket av Python för att kunna åtgärda fel. Föreläsningarna och övningarna. Kursboken ger många exempel. P-uppgiften och labbarna.

skriva en specifikation för ett längre program,

1-2 sidor inklusive use cases, programskelett samt program- och dataflödesdiagram. Föreläsningar om P-uppgiften, beskrivning av P-uppgiftens krav i kurs-PM. Specifikationen i P-uppgiften.

dela upp ett problem i hanterliga delar

Tänka efter vilka funktioner, metoder och klasser som kan vara relevanta för att representera data i minnet och processa det i lagom stora begripliga delar. Samtliga undervisningsmoment i kursen, men främst i materialet och föreläsningen som introducerar P-uppgiften. Labbar och P-uppgiften

dela upp ett program i hanterliga delar

Funktioner, metoder och klasser Föreläsningsmaterialet, OLI-materialet, övningarna. Labbar och P-uppgiften

använda och utvärdera god programmeringspraxis,

Ni behöver också känna till PEP8 och kunna hitta i den (men inte kunna den utantill). Ni behöver följa reglerna för labbar och P-uppgift. Läs instruktionerna för labbar och P-uppgift, kom på föreläsningarna och testa att programmera med PyCharm. Den individuella P-uppgiften har formella krav på koden.

implementera, felsöka och med rätt terminologi beskriva rekursiva algoritmer,

Basfall, rekursivt anrop, beräkning av rekursioner samt rekursionsspecifika fel som recursion error. Föreläsningar, övningar, OLI-material samt kursbokens bästa kapitel! Laboration samt kontrollskrivningen.

kombinera programspråkets inbyggda funktioner med egna funktioner för att lösa programmeringsproblem,

 

De vanligaste standardfunktionerna, typerna och klasserna, samt att definiera egna funktioner med def.
Ni behöver också kunna implementera klasser och metoder i dessa.

Grunderna tas upp på föreläsningen i början. Att lära sig standardfunktionerna är egen läsning i boken och på Pythons hemsida. Labbarna och den individuella P-uppgiften.