Göm menyn

TDDE23 Funktionell och imperativ programmering, del 1

Ht1 2023


Välkommen till kursen Funktionell och imperativ programmering, del 1! Kursen börjar med en introduktion till Linux och datorsystemen på IDA, och fortsätter sedan med programmering i Python. Kursen övergår naturligt i del 2, TDDE24 i period 2. Innehållet på dessa två kurswebbar kommer att vara delvis identiskt. Kursen ges för förstaårsstudenter på D- och U-programmen av avdelningen Artificiell intelligens och integrerade datorsystem (AIICS).

Information om demonstrationstillfällen och inlämningstillfällen efter kursens slut finns under kursen TDDE24.

Senaste nytt...


2023‑12‑22  Extra redovisning
 

För er som har labbar kvar i TDDE23 eller TDDE24 efter idag finns en extra möjlighet att redovisa i januari 2024. Detta gäller även studenter från tidigare år.

Onsdag 10 januari 2024 kl 13-15 i SU24 och SU25 finns möjlighet att demonstrera labbar. Vi börjar kl 13 och håller på så länge det finns någon kvar som behöver demonstrera (dock längst till kl 15) så kom dit i början av passet. Vi tar endast emot demonstrationer på plats i salen, inte digitalt. Endast några av assistenterna kommer finnas på plats, så du kan komma att behöva redovisa för någon annan än den som handlett dig under hösten.

Söndag 14 januari kl 23:59 är deadline för att skicka in. Det gäller oavsett om du demonstrerat på onsdagen eller om du har kompletteringar från höstens labbar. Skapa ett issue i vanlig ordning.

Assistenterna kommer rätta inskickad kod under vecka 3 och därefter rapporteras eventuella resultat in till Ladok. De labbar som inte är inskickade innan deadline eller som behöver kompletteras hänvisas till nästa redovisningsomgång som blir i samband med kommande omtenta för TDDE24.


2023‑10‑16  Gruppindelning för TDDE24 och extra chans att bli färdig med TDDE23
 

Extra redovisning

Det har varit en intensiv höst och idag inleds sista veckan av den här läsperioden. Vi har kört ganska hårt med er och jag förstår att en del är oroliga över att inte hinna bli klara i tid. Därför lägger vi in en extra chans att redovisa labbarna i TDDE23.

Första labbtillfället för TDDE24, onsdag 1 november, går det bra att redovisa labbar från TDDE23. Ni redovisar för samma assistent som tidigare, oavsett vilken grupp ni hamnat i för TDDE24. Ni måste också checka in koden och skapa ett issue senast samma kväll.

För att få extra hjälp finns det en programmeringsstuga under tenta-perioden, samt ett tillfälle kvällen innan första labbtillfället i nästa period.

Efter detta extra tillfälle kommer vi under labbtid enbart att fokusera på labbarna i TDDE24. Under programmeringsstugorna går det dock att få hjälp med gamla labbar i TDDE23. Dessa kommer sedan kunna redovisas i januari nästa gång.

Gruppindelning för TDDE24

Nu finns det en gruppindelning inför del 2 av kursen. Om ni loggar in i Webreg och letar fram TDDE24 ser ni hur det blev. Om du inte hittar dig själv i listan, hör av dig.

Ni har säkert alla jobbat tillsammans med andra förut, men jag vill ändå skicka med några tips för att samarbetet ska bli så bra som möjligt, särskilt för er som inte själva har valt vem ni vill jobba med:

1) Ta kontakt med varandra!

Maila eller hör av er på annat valfritt sätt. Senast måndag 30 oktober (första dagen i nästa läsperiod) ska ni ha gjort upp var och när ni ska ses första gången. Ett hett tips är första labbtillfället i TDDE24. Vi kommer att vara mycket restriktiva med att ändra i gruppindelningen. Det är bara om någon har hoppat av som vi kan göra om den.

2) Prata om hur ni vill jobba tillsammans!

Några frågor som kan vara bra att diskutera första gången ni ses är:
- Var och när ska ni jobba med labbarna? Ska ni bara ses i labbsalen? På vilka tider? Tänk på att ni också förväntas arbeta utanför schemalagd tid.
- Hur ska ni dela upp arbetet? Ska ni t.ex. turas om att sitta vid tangentbordet?
- Hur ska ni kommunicera med varandra, t.ex. om någon blir sjuk eller får annat förhinder?
- Vilken ambitionsnivå ska ni ha? Ska ni jobba jättehårt för att hålla deadlines?

3) Var tydliga mot varandra!

Säg till när du inte fattar. Säg till om du behöver ta en paus i arbetet. Lyssna på vad den andra personen säger. Var extra tydlig med var och när ni ska ses nästa gång. Ansvaret för att det löpande arbetet funkar bra hänger på er själva. Att jobba tillsammans innebär alltid att man måste vara beredd på att kompromissa lite. Det handlar om att både ge och ta. Att lära sig jobba tillsammans är en viktig del av utbildningen.


2023‑10‑06  Vi närmar oss slutet av kursen
 

Glöm inte att svara på enkäten och göra diagnosen som ligger till grund för gruppindelningen inför nästa kurs. Deadline för detta är ikväll. Mer information finns i förra veckans utskick samt i nyheten i Lisam.

Nästa veckas seminarium är det sista för den här läsperioden. Vi kommer ta upp testning och undantag, men det finns också utrymme för att repetera. Om du har någon övning eller något område som du vill ta upp igen, skicka ett förslag till din seminarieledare så snart som möjligt.

Och jag vill också påminna om att göra färdigt datorintroduktionsuppgifterna innan den här perioden är över. Deadline är onsdag 18 oktober.


2023‑09‑29  Indelning i par inför nästa kurs
 

Nästa veckas seminarium kommer gå igenom funktionell programmering. Vi vet att det brukar vara lite krångligt, så kolla igenom studiematerialet i förväg så att du är lite förberedd.

I del 2 av Python-kursen som börjar i läsperiod HT2 ska ni arbeta tillsammans i par. Hur bra det går för ett labbpar beror både på individernas kunskaper och förmåga att samarbeta. Tidigare års studenter har påpekat att de gärna vill ha stöd med att hitta labbpar och att det kan vara svårt att labba ihop om man har väldigt olika förkunskaper eller ambitionsnivå. Därför har vi under ett par år hjälpt till att bilda labbpar.

Detta sker i två steg. Först ska ni fylla i en mycket kort enkät. Därefter ska ni svara på en Python-diagnos. Dessa båda saker måste ske senast fredag 6 oktober kl 18.00. Baserat på era svar i enkäten, era resultat på diagnosen och era tidigare labbresultat kommer ni att bli hopparade med någon som vi tror att ni kommer funka ihop med. Det kommer ni att kunna se sedan i Webreg för kursen TDDE24.

Om ni har någon som ni jättegärna vill jobba ihop med går det också bra, om ni har snackat ihop er redan. Skriv i så fall det i enkäten. Om ni inte vill eller hinner svara kommer vi att para ihop er slumpmässigt, med andra som inte heller har svarat.

  1. Svara på enkäten! Länk finns i e-postutskick och i nyheten i kursrummet i Lisam.
  2. Svara på Python-diagnosen! Diagnosen finns här i kursrummet, på samma ställe som datorintroduktionsidagnoserna, och är tillgänglig från och med nu. Observera att man bara får en chans på den diagnosen och bara har 20 minuter på sig, så vänta gärna till ett bra tillfälle när du kan göra den ostörd i lugn och ro.


2023‑09‑22  Vecka 39: Laboration 5
 

Nästa vecka börjar arbetet med den femte och sista labben den här läsperioden. Laboration 5 är betydligt större än de tidigare och därför är den uppdelad i tre olika delar. Vi tar oss an en av dem per vecka. Det övergripande temat är bildbehandling. Vi använder det som utgångspunkt för att illustrera flera olika intressanta saker i programmering, och för att det är lite roligt när det blir fina bilder när ens kod äntligen funkar.

Vi kommer nu att ta oss an lite större mängder kod som någon annan har skrivit. Din uppgift blir att skriva små korta funktioner som ska passa in i en större helhet. Det innebär att det kommer ta lite tid att fundera ut hur den existerande koden funkar. Men om du bara följer labbinstruktionerna steg för steg ska det nog reda ut sig. Vi kastar också in en hel del matte här, eftersom bildbehandling bygger på det. Du behöver inte förstå alla detaljer i den, utan det räcker att du kan översätta formlerna till Python. Själva matten kommer sedan tillbaka i senare kurser.

Inför nästa veckas seminarium finns det flera delar i studiematerialet som kan vara bra att läsa i förväg. Bland annat kommer vi nu att fördjupa oss lite mer i versionshantering.

Veckans programmeringsstuga är redan på måndag kväll 17-19. Ta chansen att få lite mer hjälp av assistenterna!

Och glöm inte att göra färdigt datorintroduktionsuppgifterna.


2023‑09‑15  Vad händer vecka 38?
 

Under kursens gång ökar vi successivt kraven för hur koden ska se ut. Vi skriver ju inte kod bara för att det ska funka, utan också för att vi själva och våra kollegor ska kunna läsa och förstå koden i framtiden, om den skulle behöva ändras. Därför diskuterar vi bl.a. kodstandard och namngivning på nästa veckas seminarium. Det här är goda vanor som kommer hjälpa dig och andra under många år framöver, även om det kanske känns lite hämmande för kreativiteten. Läs igenom studiematerialet inför nästa veckas seminarium!

Att kunna göra upprepningar är en av hörnstenarna i programmering. I den här kursen tittar vi på två sätt: iteration och rekursion. Om du ska bearbeta varje element i en enkel lista eller en sträng är rekursion kanske inte det första naturliga valet, men det är ett bra sätt att öva rekursion. Under laboration 4 fördjupar vi oss mer i rekursion och visar på tillfällen när rekursion är det enda vettiga valet.

Det här är kluriga saker som det kan ta tid att greppa, så ge inte upp om det till en början känns oklart. Och du behöver inte förstå allting i detalj för att bli godkänd på kursen. Det vi gör i höst är att lägga grunden, och sedan kommer flera kurser senare i programmet att återkomma till många av de frågor vi berör. Om du vill ha mer tid att bolla frågor med assistenterna, dyk upp på vår digitala programmeringsstuga som nästa vecka är på tisdag kväll.

Några andra påminnelser:

  • Glöm inte att det finns testrutiner för varje labbomgång. Kör dessa tester på din kod för att se att den uppfyller minimikraven.
  • Om en sal är bokad för din grupp men det sitter andra studenter där har du all rätt att ta över en dator. Be dem flytta på sig så att din grupp kan nyttja salen.
  • Sedan förra veckans påminnelse har ytterligare 12 personer blivit helt klara med datorintroduktionen, så glöm inte bort att den ska vara klar innan mitten av oktober.


2023‑09‑08  Inför vecka 37
 

Nu hoppas jag att ni börjar bli lite varma i kläderna när det gäller Python. Det ser ut att gå bra för er, även om jag förstår att det är en hel del nytt och konstigt för många. I nästa veckas seminarium ska vi titta på en hel del detaljer kring olika datatyper i Python och fördjupa oss i rekursion, så kolla på studiematerialet i förväg. Jag vet att det här är ett begrepp som kan ta lite tid att sätta sig in i. Annars vill jag påminna om tre saker:

  • Nästa veckas programmeringsstuga är på onsdag kväll. Vi försöker växla dagar, så att det inte ska krocka med eventuella kvällsaktiviteter som ni kanske har, men också så att det ser ut att funka med resten av schemat. Ta chansen att få lite extra hjälp!
  • Glöm inte bort att ni också ska göra färdigt den webbaserade datorintroduktionen. Deadline är visserligen inte förrän 18 oktober, men det är lätt att glömma bort. Redan nu är 49% av er helt klara och 85% är godkända på minst hälften av diagnoserna.
  • Som min kollega Jonas har skrivit i ett par mail den senaste tiden är det viktigt att ni loggar in på vårt GitLab på LiU så att ni får ett konto där och kan börja redovisa laboration 3 och framåt.


2023‑09‑01  Seminarium och programmeringsstuga v.36
 

Nästa vecka drar vi igång med två nya aktiviteter i Python-kursen:

  • Det första seminariet är på tisdag. Läs mer om hur seminarierna funkar och vilka inriktningar du kan välja mellan.
  • På måndag kväll öppnar vi vår digitala programmeringsstuga. Det är en extra aktivitet, utanför ordinarie labbschemat, särskilt för dig som är nybörjare eller vill ha lite mer handledartid. Programmeringsstugorna är alltid 17-19, men på olika veckodagar.
Jag hoppas annars att de första labbtillfällena gått bra och att alla har hittat en Python-miljö som funkar okej. I nästa vecka kommer vi att jobba med fler datatyper än tal när vi tar tag i framför allt listor som vi kommer bearbeta ett element i taget.

För er som har programmerat en del förut och vill fördjupa er utöver vad kursen kan erbjuda kan jag rekommendera att engagera er i någon av de studentföreningar som intresserar sig för programmering:

  • LiTHe Kod har meetups på tisdagkvällar.
  • Lysator har under hösten uppLYSningar om intressanta ämnen, bl.a. om Git 12/9.


2023‑08‑25  Inför nästa vecka
 

På måndag börjar vi lite mer på riktigt, med Python-programmering, och här är de viktigaste sakerna som du behöver veta:

  • Den enda föreläsningen om Python är i Vallfarten kl 10:15 på måndag. Om du missar den finns det inspelat material från tidigare år i kursrummet i Lisam.
  • Nu finns det en gruppindelning inför Python-labbarna. Logga in i verktyget WebReg och leta efter dig själv så du vet vilken grupp du är med i.
  • Första labbtillfället för Python är på tisdag. Kolla i schemat i TimeEdit efter din grupp.
  • Under första veckan kommer vi jobba med den första labbomgången. Den innehåller flera övningar och två uppgifter som ska redovisas muntligt för era labbassistenter.
  • Om ytterligare en vecka kommer vi dra igång seminarier.


2023‑06‑29  Välkommen till höstens kurs!
 

Vi börjar med programmering i Python måndag 28 augusti, men redan under nolle-p smygstartar vi kursen genom att ni får bekanta er med våra Linux-system.



Sidansvarig: Peter Dalenius
Senast uppdaterad: 2023-06-29