Göm menyn

TDIU08 Problemlösning och programmering

Kursinformation


Nyheter för i år

Det finns ett antal saker som har ändrats från föregående års upplägg. Här är en "kort" sammanfattning av detta. Mer information finns på kurshemsidans övriga sidor förstås.

  • Nytt för i år är att laborationerna kommer att redovisas enskilt och via duggor (istället för att de redovisas muntligt i par i labsal). Detta kommer att vara den största ändringen gentemot tidigare år.
    Detta kommer givetvis att bli mer rättvist ur er studenters synvinkel då varje student på detta vis får visa sin egen kunskap istället för att man som tidigare kan ha klarat av laborationerna genom att ha haft en labpartner som klarat av uppgifterna. Det innbär också att man inte kommer att kunna hämta lösningar från nät eller på annat sätt.
    Vad är det vi kommer att testa på duggorna och vad är laborationerna till för kanske ni då undrar. Jag skall försöka få fram detta på ett så tydligt sätt som möjligt i nedanstående beskrivning där jag tar upp hela kursens upplägg och tanke.
  • Vi har nu begränsat hårdare vad som får tas med på tentan. Se mer om detta under "Upplägg på tentan och regler". Bl.a. har vi begränsat vad som är ok att ha skrivet i boken. Det kommer att vara samma som för duggorna i kursen.
  • För er som är "gamla studenter" (från tidigare år) finns information om duggor etc. vid de delar som beskriver det ni har kvar.
  • P.g.a. COVID-19 kommer årets upplägg att vara något modifierat från normalt. Här följer en kort lista på ändringar:
    • Föreläsningar kommer gå på distans via verktyget Zoom
    • Laborationer och lektioner kommer hållas på plats på universitetet men vi kommer sprida ut oss för att hålla gruppstorlekarna små.
    • Duggorna kommer hållas på distans (förutom första duggan, som är mer ett prova-på-fillfället).
    • Ada-examinationen (UPG1) och tentan (DAT1) kommer båda att gå på distans.

Läromålen i kursen

Ett av målen med denna kurs är att ni skall få både en förståelse för hur ett programspråk är uppbyggt (det vi kallar "syntax") och dessutom hur denna uppbyggnad fungerar (det vi kallar "semantik").

Ett annat mål som är ännu viktigare är att få insikt i det som har med problemlösning att göra. Detta är något man inte helt kan lära ut utan det krävs tid och övning och engagemang från den som skall lära sig detta.

I kursen jobbar vi med två programspråk. Vi börjar med Ada i första perioden för att fokusera på problemlösningstänket och går sedan över till C++ i andra perioden. Till en början kommer vi approacha C++ genom att dra likheter med Ada, men efter hand kommer ett par nya koncept in även under den senare perioden. C++ kommer att vara huvudspråket för era fortsatta kurser.

Efter denna kurs finns det fortsättningskurser som bygger på innehållet i denna kurs. När man kommer till dessa kurser förutsätts man kunna dessa delar på ett bra sätt.

Upplägg under HT-1

Man kanske kan undra hur tanken med upplägget är i kursen. En kort förklaring till detta.

FÖ (föreläsningar)

Gemensam information, syntax och semantik i Ada är det vi i första hand kommer att ta upp på de FÖ som finns i denna del av kursen. Det ger er en verktygslåda att använda för att lösa problem senare. Vi kommer också att prata mycket om hur man bör tänka och varför saker görs på olika sätt, men detta gör vi i introducerande syfte. Det ger er en gemensam bas och sen möjligheten att kunna komma vidare på de övriga delarna i kursen.

LE (lektioner)

På LE kommer vi sen att dela upp er i grupper (era klasser normalt sett) och där kommer assistenten att ge en uppgift där ni sen tillsammans med assistenten skall komma fram till hur man kan lösa denna.

I denna process kommer mycket av problemlösningsstrategier och tankar att diskuteras och då det är ni studenter som kommer att var de mest aktiva kan det kan i vissa fall bli saker som tas upp som är "tokiga" eller kanske ligger lite för långt fram eller kanske lite utanför kursen och det är inte alltid så att vi kommer fram till en helt färdig lösning på problemet som var uppsatt. Detta gör dock ingeting då det är diskussionerna och frågorna som uppstår som är de viktiga i denna del av kursen. Att inte vara aktiv i detta läge förlorar man alltså på.

LA (laborationstillfällena)

Vi använder vårt Linux-system, men om du har egen dator kan det gå bra att plocka hem kompilator m.m. via dessa hemsidor. På detta sätt får du möjlighet att göra en del av arbetet hemma, MEN ännu bättre är att du kan ladda ner ett program som heter ThinLinc (se "Verktyg i kursen") som gör att du inte ens behöver ladda ner en massa annat. Du kan arbeta på vårt datorsystem direkt på din dator hemma.

På LA delar vi upp LE-grupperna i två delar (A och B) och där kommer ni att ha laborationsuppgifter som är till för att ge lagom svåra problem att tampas med för att uppnå en nivå som senare ger godkänt i kursen. Laborationerna är ofta de pass som studenterna ser som de viktigaste och de pass där man lär sig mest. Detta beror förstås på att man tidigare fått verktygen och haft diskussionerna på FÖ och LE, men det är helt rätt att dessa LA är de tillfällen där ni faktiskt lär er programmeringen.

Anmälan till labgrupp A respektive B kommer att ske i "LUPP".

Assistenterna kommer att närvara på de LA som finns och där är det meningen att ni skall arbeta igenom laborationerna för att få stöta på problem som gör att problemlösningsförmågan triggas. Att tro att man kan lära sig programmering bara genom att titta på lösningar är tyvärr en tanke som i 99% av fallen leder till att man inte klarar kursen.

Om det är så att man inte når helt fram med en laboration spelar egentligen inte någon större roll och det är kanske till och med så att det kan vara så att man kan komma på alternativa problemställningar som är intressanta under tiden man försöker lösa dessa uppgifter.

Vi räknar med att LA kommer att vara ett hav av frågor och diskussioner och assistenterna kommer att ha fullt upp. Detta innebär att ni kommer att få viss fördröjning eller väntetid i salarna och det kan då vara vettigt att diskutera med andra som har samma problem och på det viset kanske komma framåt. OBS! Tänk bara på att se eller få en lösning på ett problem inte ger er övning på att problemlösa vilket i slutänden leder till ytligare förståelse/kunskap och senare i kursen blir man garanterat lidande av detta.

Om assistenterna går fram till tavlan och pratar om saker. Håll koll! Det kan vara så att ni kan få många bra tips genom att vara med i dessa diskussioner. Dessutom slipper man ju sitta och vänta.

För denna kursomgång är tanken att alla laborerar enskilt (p.g.a. COVID-19). Med detta sagt får man gärna diskutera programmering och koncept med varandra men undvik att kopiera varandras kod, detta leder ofta inte till något gott och är dessutom inte tillåtet i samband med examination.

DU (duggorna som laborationerna redovisas genom)

De DU som finns i schemat är de tillfällen där du enskilt visar vad du kan. Kravet för godkänt på laborationerna i kursen är att du har klarat duggorna. Det är även möjligt att få betyg direkt på tentan genom att prestera väl på duggorna. Mer om detta under "Upplägg och regler på duggorna". I princip har vi en dugga per vecka (det är 6 laborationer som skall duggas av).

Det är även möjligt att få laborationer godkända genom att uppvisa förståelse och färdighet inom respektive laborationsområde på tentan.

För bästa resultat

Ligg inte efter. Se till att lägga tid och lägg energi på att ligga i fas. Det kommer att finnas tidpunkter då det är jobbigt och frustrerande, men det är bara att bita i det lite sura äpplet och kämpa vidare. Det är ALLTID lättare att surfa på vågen än att försöka simma ikapp den. Eller som min mor alltid sa: "Varför inte hoppa på tåget när det går." :-)

Upplägg under HT-2

UPG1 (Examination Ada)

Efter tentaperioden i oktober har vi en tentaliknande dugga som kallas för UPG1. Mer information om denna under "Upplägg och regler på tentan". En kort sammanfattning är att denna görs i våra laborationssalar och ni får ett antal uppgifter att lösa. Dessa uppgifter baserar sig på problemlösning och är stickprov på saker från de olika laborationerna. Ofta en kombination av saker från flera laborationer.

För UPG1 ställer vi in oss på att hålla den på distans.

Det är även möjligt att få laborationer godkända genom att uppvisa förståelse och färdighet inom respektive laborationsområde på tentan.

FÖ C++

Syntax och semantik i C++. Till en början gör vi detta med perspektiv från Ada men under senare föreläsningar kommer vi även ta upp nya koncept, som inbyggda typer, strömmar och filer.

Le C++

Lektioner där vi övar tillsammans på ett par problem. Samma upplägg som i HT-1 fast med C++ istället.

LA C++

Laborationsuppgifter som skall lösas i C++ för att ge färdighet i användning av språket. Även här kommer laborationerna att redovisas genom att klara duggor.

DU C++

Duggor för att redovisa respektive laborationsmoment. Samma upplägg som i HT-1 fast med C++ istället.

Tentan i C++ (DAT1)

I januari kommer själva tentan i kursen (momentet DAT1). Det är en datortenta där man får visa sina färdigheter i C++.

Efter kursens slut

RE (redovisningar) och HÅRD DEADLINE

I slutet av HT-2 perioden finns en hård deadline. Efter denna tar vi inga redovisningar av något slag.

OBS! Efter kursens slut tar vi inte några redovisningar.

Det innebär att om man inte är klar med laborationer (Ada och C++) innan tentaperioden i januari får man komma tillbaka nästa gång kursen går för att redovisa återstående saker.

En liten varning är befogad. Om kursens innehåll ändras till nästkommande år kan man få göra om alla delar som inte är inrapporterade i LADOK. Det finns egentligen inget som säger att det man gjort innan räknas. Duggaresultat eller annat är bara arbetsmaterial för att sen rapportera till LADOK. Det är bara det som är i LADOK som är garanterat kvar och färdigt.

Alltså: En halvfärdig labserie räknas egentligen som "ogjord" när man kommer tillbaka även om vi brukar försöka minska detta problem för både er och oss genom att bara ta hand om det som återstår. Detta är dock bara vi som är snälla isåfall.


Sidansvarig: Viktor Olsson
Senast uppdaterad: 2020-08-14