Göm meny
Gäller för: VT25

Kursinformation och litteratur

Kursen TDDE44 - Programmering gick för första gången VT20 och ersatte kursen TDDC74 - Programmering: Abstraktion och modellering.

De största skillnaderna mellan kurserna är att vi i TDDE44 arbetar i programspråket Python (istället för Scheme), och att vi i TDDE44, förrutom att gå igenom grunderna i programmering, också på ett mer aktivt sätt kommer att fokusera på hur programmering kan användas som ett verktyg i olika relevanta sammanhang.

Kunskapskällor

En stor del av den praktiska färdigheten att hantera IT och programmering är att veta var man ska söka information och studenten uppmanas att öva på denna färdighet under kursens gång.

Att veta var och hur man söker information kring IT och programmering är en viktig färdighet inom IT och programmering. Därför ges inga obligatoriska läshänvisningar i denna kurs. Däremot står nyckelbegrepp för varje moment i instruktioner och anvisningar. Använd dessa som utgångspunkt när du läser kurslitteraturen eller söker information på nätet.

Om du skulle köra fast, eller vill diskutera kurslitteraturen m.m. efter att själv ha försökt söka eller identifiera relevanta avsnitt, är du självklart välkommen att göra det! Skicka ett e-post eller ställ en fråga på något schemalagt tillfälle.

Får jag använda ChatGPT eller andra LLM:er?

Först och främst: Det är strängt förbjudet att lämna in kod som du inte skrivit själv eller tillsammans med din labbpartner. Det gäller kod du genererat med hjälp av ChatGPT, även om du bytt namn på några variabler eller ändrat formateringen. Detta betraktas som akademiskt fusk och är grund för disciplinärende och avstängning från studierna.

På samma sätt som t.ex. Wolfram Alpha kan lösa de flesta uppgifter som du förväntas lösa i en introduktionskurs i Envariabelanalys eller Linjär Algebra, så kan t.ex. ChatGPT lösa de flesta uppgifter som ges i den här kursen. Att ta till sig och förstå innehållet i den här kursen är dock viktigt på samma sätt som det är viktigt att själv förstå derivator, integraler, vektorrum och linjära avbildningar. Dvs. för att på sikt kunna lösa nya och mer avancerade problem än vad Wolfram Alpha eller ChatGPT klarar, så måste du ha en ordentlig förståelse för grunderna.

Du kanske tänker att du bara ska använda ChatGPT som en extra labbassistent. Tanken är god, men tyvärr har vi märkt att det är mycket lätt att sabotera för sig själv på det sättet. Dina labbassistenter är där för att hjälpa dig att själv lösa problem genom ledtrådar, tips, råd, påminnelser och korta förklaringar som rätar ut eventuella missförstånd. Det kan kännas frustrerande att inte alltid får raka svar, men det finns en pedagogisk tanke med det. Det är ofta svårt att lära sig programmera eftersom man måste lära sig både ett nytt tankesätt och ett språk för att uttrycka det tankesättet. Frustration är en naturlig del av inlärningsprocessen.

Det är väldigt lätt att man i den frustrationen sträcker sig efter ett verktyg som man vet kommer hjälpa en att komma förbi det aktuella problemet. ChatGPT är dock inte en pedagog och kommer inte hjälpa dig att själv lösa problemet och komma vidare. Oftast ger den dig bara lösningen rakt av. I bästa fall, med rätt prompt, ger den dig en detaljerad förklaring som du direkt kan omsätta i en lösning. Efter det kanske du tycker att du har förstått problemet och dess lösning, men du kommer inte internalisera den förståelsen på samma sätt som om du tagit dig igenom frustrationen och löst problemet själv. Speciellt inte om du gör det till en vana att fråga ChatGPT så fort du blir frustrerad. Det är dock inte säkert att du märker detta förrän du sitter på tentan och inte har tillgång till ChatGPT.

Vi avråder därför från att använda ChatGPT över huvud taget i den här kursen.

Kurslitteratur

Kursen har ingen obligatorisk kurslitteratur. Nedan följer dock tips på böcker som kan användas som referenslitteratur:

  • Skansholm, J. (2019). Python från början. Studentlitteratur.
  • Lutz, M. (2025). Learning Python, 6th Edition. O’Reilly Media. (Publiceras i februari eller mars men onlineversionen går att köpa redan idag.)
    • Lutz, M. (2013). Learning Python, 5th Edition. O’Reilly Media. (Börjar bli gammal men ger en väldigt bra introduktion till Python och kan vara värd att låna eller köpa om man hittar den billigt.)
  • Punch, W. F., & Enbody, R. (2017). The Practice of Computing Using Python, Global Edition, 3/E. Boston: Pearson.
  • Zelle, John M., (2017) Python Programming : An Introduction To Computer Science, Third Edition. Franklin, Beedle & Associates, 2017. ISBN: 9781590282755, 1590282752

Tillgängliga online

Andra resurser

Bredvidläsning för den nyfikne

  • Abelson and Sussman (1996). Structure and Interpretation of Computer Programs, 2nd Edition. MIT Press.PDF
    • Kursbok i kursens föregångare som följer en annan pedagogisk approach och använder ett programmeringsspråk, Scheme Lisp, som skiljer sig väldigt mycket från Python. Användes i grundläggande programmeringsundervisning över hela världen under runt 30 år.

Sidansvarig: Johan Falkenjack
Senast uppdaterad: 2024-01-12