TDDD11
TDDD11 > Kursinformation
Göm menyn

TDDD11 Programmering, grundkurs

Kursinformation


Nyheter för i år

De stora sakerna som togs upp i föregående års kursvärdering var att det var tungt att hinna med projektet under VT2. Studenterna tog också upp att det fanns problem med ThinLinc (ett system för att kunna logga in och arbeta på universitets datorer hemifrån).

Under hösten har LiU centralt infört en del säkerhetsuppdateringar vad gäller uppkoppling mot universitets datorsystem via bland annat ThinLinc. Två av dessa är:

  • Tvåstegsautentisering
  • VPN
Information om dessa har vi länkat till via kurshemsidan.
OBS! Var VÄLDIGT noga med att läsa dessa instruktioner!

ThinLinc, VPN, tvåstegsautentisering, SSH är inte något vi i kursen administrerar eller supportar. Alla problem med dessa system ska anmälas och tas med helpdesk (helpdesk@liu.se).
OBS! Anmäl ALLTID problem till helpdesk då de vill ha information om när vilka system har problem.

Det finns ett antal saker som har ändrats i kursen 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.

  • Automaträttningen är uppdaterad i flera steg under höstens kurser och ny funktionalitet finns.
  • När man fått godkänt från automaträttningen kan man nu gå vidare och öva på efterföljande uppgifter i kurskartan.
  • Assistenträttningskommentarer finns och används nu vid rättning av uppgifter. Du kan som student se dessa via kurshemsidans meny.
  • I kurskartan har vissa uppgifter döpts om och ordningen mellan uppgifterna har ändrats jämfört med tidigare år.
  • Ada.O4 och Ada.O5 har gjorts om så dessa passar ihop bättre med varandra.
  • Ada.O8.1 har gjorts om så denna nu leder in till projektet på ett bättre sätt.
  • Det finns hårdare koppling mellan vissa uppgifter vilket gör att man inte kan använda automaträttningen innan man klarat av förkunskapsuppgifter. Detta gäller dock inte alla uppgifter. Mer information om detta på föreläsningar senare.
  • Kursens LADOK-moment och poäng har fördelats om. Det finns nu tre LADOK-moment i kursen:
    • LAB1 - 5hp - G/U
      Detta moment blir godkänt när Ada.O0 - Ada.O9 är avklarade.
    • UPG1 - 1hp - U/3/4/5
      Detta moment blir betygsatt enligt kursens Ada.P-uppgifter.
    • PRA1 - 2hp - G/U
      Detta moment blir godkänt när samtliga MatLab.O-uppgifter samt Ada.O21.1 - Ada.O21.4 är avklarade.
  • 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. Se även informationen nedan.

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.

Det finns även en del som handlar om att prova på att göra ett litet program i verktyget MatLab, men det ser vi som ingående i ovanstående större mål.

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.

Kursens moment i LADOK

Kursen ger i slutänden 8hp i LADOK. I år är det ett litet nytt upplägg på fördelningen av dessa "hp". Den gamla varianten (Version-1 nedan. För er som redan varit registrerade på kursen VT-2022 och tidigare) och den nya varianten (Version-2 nedan. För er som börjat kursen VT-2023 och framåt).

Version-1 består i LADOK av två moment:

  • DAT1 [2hp]
    Detta är det i kursen som är den betygsättande examinationen som utförs via P-uppgifter.
  • LABA [6hp]
    Detta är resten av allt i kursen (Ada.O-uppgifter ["labserien" och "projektet"] och MatLab.O-uppgiften).

Version-2 består i LADOK av tre moment:

  • UPG1 [1hp]
    Detta är det i kursen som är den betygsättande examinationen som utförs via P-uppgifter.
  • LAB1 [5hp]
    Detta är de Ada.O-uppgifter som motsvarar "labserien".
  • PRA1 [2hp]
    Detta är de Ada.O-uppgifter som motsvarar "projektet" samt MatLab.O-uppgiften.

OBS! Även om det är lite olika "hp" som ges för "samma innehåll" i de olika varianterna skall man alltid tänka att helheten är 8hp. Fördelningen av "hp" är inte en exakt vetenskap utan görs med lite olika tankar när man skapar kurserna.

Du ser din personliga status samt vilken av versionerna du följer i den så kallade "Kurskartan" på hemsidan.

Upplägg under kursen

Man kanske kan undra hur tanken med upplägget är i kursen. Nedan följer förklaringar och djupdyk i de olika delarna av upplägget.

Kursens Bakgrund och Koncept

Torbjörn Jonson förklarar:

Jag har under väldigt lång tid (faktiskt sen 2005 när mina barn var små och började spelade Nintendo DS och annat) funderat på detta upplägg av kurs, men det har inte varit möjligt att genomföra förrän "Corona" dök upp och ställde allt på ända. Att göra ett nytt upplägg tar MÅNGA timmar, dagar, månader att göra vilket gjort att jag dragit ut på detta. Vi blev i och med Corona till och med lite "tvingade" att göra saker som vi aldrig gjort tidigare. Precis som ni.

Vi har nu under de sista två åren successivt byggt upp de delar som behövs för detta och är väldigt långt komna i hur detta kommer att se ut i slutänden. Förra årets uppsättning (som var en uppgradering av det som gick första gången våren innan det) har vi modifierat redan nu i höstas via de kurser vi hade då (så att de fick något som var "bättre" än det som var i TDDD11 förra våren) och nu gör vi några små justeringar till för er (s)kull så att ni skall få det ännu bättre än de tidigare.

De tankar som är i kursen är INTE "gamification" (d.v.s. att man skall "tävla" eller "tjäna poäng" eller att man skall jämföra sig med andra [OBS! inget nedvärderande om "gamification" i detta utan bara några av de saker som ibland kopplas dit utan att det skall se som negativt]) utan det handlar om "förkunskaper" och att man behöver dessa för att komma vidare. D.v.s. en senare uppgift kommer att kräva att man tagit åt sig det som dels ingick i den tidigare uppgiften och dessutom kommer förstås kraven att bli lite tuffare i senare uppgifter än de tidigare så man måste också ta åt sig av de kommentarer man fått i de rättningar som gjorts sen tidigare. Man får "skills" som man senare kan använda för att klara de senare uppgifterna på ett bra sätt.

Vi kan dessutom hjälpa just dig på den nivå du behöver hjälp vilket vi ser som en väldigt trevlig effekt.

Detta "koncept" (det är ett nytt koncept som jag/vi skapat) kallar vi för "Leveling" och detta ord är nog det enda som har med "spel" att göra. I övrigt handlar det om hur vi kan få er igenom detta på ett bra sätt och samtidigt kunna få den kvalitet som vi vill ha på kursen.

Det som kommer att hända i kursen är att du kommer att kunna gå framåt i din egen takt (i princip) och det gör kanske att det inte kommer att vara så att din bästa kompis är den som kommer att vara den som du kanske skall arbeta med utan du bör arbeta med någon som är på din "Level" (kommer att framgå vad detta innebär senare).

Detta innebär inte att du skall jämföra dig med andra utan du skall bara se till att just du lär dig saker så att du klarar kursen. Ett hett tips här är att man förlorar MASSOR på att bara förstå vad någon ger som lösning gentemot att KUNNA LÖSA en uppgift själv. Du kommer att förstå det senare om du inte tror på mig nu. Jag vill verkligen att du skall klara dig så tänk på att lära dig och inte bara "checka av" saker är du snäll.

OBS! Det är helt ok att byta samarbetspartner under kursens gång. Det är viktigt att du arbetar med en person som håller på med samma saker som du. Tänk på dig själv så att du inte blir "lurad" att "komma vidare" utan att klara uppgifterna själv. Det straffar sig tyvärr.

Vilka studenter är det vi "bryr oss om" då i detta upplägg? Jag skulle vilja säga: ALLA (utom de som redan har högsta betyg i kursen och är klara, men de kommer ju inte att gå kursen igen).

Dessa tankar hade vi när vi startade hela denna process med det nya upplägget. Vi skall tänka på de studenter som:

  1. Går kursen första gången.
  2. Gått kursen, men inte har några moment avklarade i LADOK (vissa delar är kanske redan klara i "labserien").
  3. Klarat moment i kursen, men inte alla. Här inkluderar vi plussning.

Jag hoppas att ni alla ovan känner er inkluderade i detta system vi nu skapat.

FÖ (föreläsningar)

Gemensam information, syntax och semantik är det vi i första hand kommer att ta upp på de FÖ som finns i 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. Då det är ni studenter som kommer att var de mest aktiva kan det 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 ("programmeringsstugor")

LA kan kopplas med att detta är "laborationstillfällen", men i denna kurs ser vi dessa mer som "programmeringsstugor". Detta beroende på att du närsomhelst kan ställa frågor om vilken uppgift som helst under kursen. Du kan även ställa frågor om teori du inte riktigt greppat. Du kan alltså få hjälp med exakt det du har problem med just nu.

Vi använder vårt Linux-system, men om du har egen dator kan det gå bra att plocka hem ett program som heter ThinLinc (se "Verktyg i kursen") som gör att du kan arbeta på vårt datorsystem direkt från din dator hemma.

På LA delas LE-grupperna i två delar (1 och 2) och där kommer ni att ha såkallade "O-uppgifter" 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. Dessa O-uppgifter är stora nog att ni kommer behöva arbeta även utanför LA-passen. LA-passen ä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.

På dessa pass är tanken att ni ska arbeta i grupper om 2-3 studenter för att lösa uppgifterna.

Assistenterna kommer att närvara på de LA som finns och där är det meningen att ni skall arbeta igenom uppgifterna 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.

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 yttligare 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.

PROJ (Projektpass)

Under VT2 kommer ni studenter genomföra mindre programmeringsprojekt i grupper om 4 studenter. Projektet är uppdelat i 4 "O-uppgifter" som ni ser i kurskartan (Ada.O21.1 - Ada.O21.4). Se dessa sidor för mer info om själva projektupplägget.

Projektet bygger på att ni studenter genomför mycket på egen hand med möjlighet att boka in möte med er handledare någon gång i veckan. Passen markerade "PROJ" i schemat är till för att ni studenter ska ha garanterad tillgång till datorsalar samt att assistenterna garanterat ska har tider tillgängliga för möten med era projektgrupper. Assistenterna är alltså inte "automatiskt" på plats i sal under dessa pass. Ni studenter ansvarar för att i god tid boka in möten med er handledare då ni har frågor. Observera att mötena kan ske även utanför dessa tider.

DU och P-uppgifter

De DU som finns i schemat är de tillfällen där du enskilt visar vad du kan genom att lösa "P-uppgifter". Det är via dessa P-uppgifter som du får betyg på UPG1-momentet i LADOK (DAT1-momentet för "gamla" studenter). Mer om detta under "Examination" på kurshemsidan.

Verktyget MatLab

Vi har också en liten MatLab-del i kursen. Denna del är till för att ni skall få lite koll på detta verktyg. Vissa ser MatLab som ett programspråk, men vi ser det mer som ett verktyg (en kraftfull miniräknare för matrishantering och annat).

Ni kommer att göra en liten uppgift som visar på att man kan "programmera" i MatLab. Upplägget här är att vi har material på hemsidan och att största delen ligger på er att göra jobbet hemma. Det skall inte vara så svårt då själva programmeringskunskaperna är inhämtade.

För bästa resultat

Ett hett tips! Arbeta ihop med någon som du känner ligger på samma nivå som du. Det finns mycket forskning om hur man lär sig saker och en stor del i detta är att man lär sig mindre om man arbetar med någon som ligger på för hög nivå jämfört med en själv. Man tror ofta att denna kan lära mig en massa och det finns fall där detta fungerar, men det visar sig i dessa kurser att det oftast(!) är precis tvärsom. Jag har fått många mail från studenter genom åren som missat kursen och kommer tillbaka i högre årskurs och de säger oftast att de arbetat med någon som var för bra och de satt bara bredvid och fick lösningarna presenterade för sig ( de kom inte på dessa själva).

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." :-)

Förståelse av vilken tid man behöver lägga ner och planering av denna

Tidsaspekten i kursen är viktig att förstå. Många kurser kanske inte riktigt känns lika tunga som en kurs som denna. Av olika skäl. Den största anledningen till att denna kurs känns "tung" i jämförelse med andra är att den till att börja med utnyttjar den tid som det är meningen att man skall lägga i förhållande till de "hp" kursen ger. I detta bör man veta att 1.5hp motsvarar 40 timmars arbete. Detta gör att vi pratar om lite mer än 213 timmar under de ca 19 veckor vi har under våren tillsammans. Lite olika antal timmar i olika veckor. Två av veckorna är tentaperiod (i mars) och där räknar vi med att ni kanske gör eventuella kompletteringar som ni har att göra från VT1.

I princip räknar vi med att ni skall vara klara med "labserien" och den betygssättande delen under VT1 vilket motsvarar ca 6hp (160 timmar). Vi räknar dock med att den sista "laborationen" (Ada.O8.1) och betygsättande uppgifterna kan vara kvar till VT2 utan att man "ligger efter" i kursen (vilket motsvarar ca 40 timmar). Totalt i VT1 behöver du personligen alltså planera in ca 120 timmar på 8 veckor (plus 2 veckor i tentaperioden, men där har du annat att göra antagligen). I runda slängar blir detta alltså 15 timmar i veckan (i snitt) under VT1. Resterande timmar går alltså åt i VT2 (dryga 90 timmar).

OBS! Den tid vi har undervisning i sal är inte samma som det som behövs. Hemarbetstid är alltså av stor vikt.

OBS! Man skall INTE arbeta ensam. Om man gör detta tar det MER tid. Man behöver diskutera med en kompis under kursen. Det ingår i vår planering.

När det gäller planeringen är det viktigt att förstå att det finns två saker som man ofta blandar ihop. Den REELLA TID som detta tar och UPPLEVD TID man tycker det tagit. För att du skall veta i slutänden hur mycket tid du verkligen lagt ner bör du "föra bok" över hur mycket tid du lägger på olika saker. Dessutom kanske lite "dagbok" för att se hur du utnyttjat de resurser vi givit. Blanda inte ihop "frustration" med "tid". Att något är frustrerade kan göra att man tror att det går åt mer tid. Viktigt är också att veta att alla är olika och det tar olika mycket tid för olika delar för olika personer i kursen.

OBS! Vi vill inte lura er att denna kurs blir utan hinder. Det kommer att krävas att ni "kör fast" och att ni "biter ihop" under kursen. Det som vi dock kan lova (som jag sa tidigare) är att ni kommer att ha MASSOR med små och stora "kickar" där ni känner att ni lyckats med saker. Det gäller att ta vara på dem. Ju fler saker ni ser som "YES!" ju roligare kommer ni att ha. Även i de tunga delarna när det blir lite frustrerande.

Efter kursens slut

RE (redovisningar) och HÅRD DEADLINE

I slutet av VT2 finns ett pass markerat RE. Detta pass är till för att redovisa projektet. Det är ok att redovisa projektet innan detta pass, men ni studenter är hjärtligt välkommna då ni kan testa på de andra gruppernas projekt under detta pass.

Sista deadline för att få kursens moment godkända ser du i menyn under "Tidplanering".

Information till Gamla Studenter

Det finns en hel del att säga här.

  • Man behöver inte omregistrera sig på kursen om man redan gått delar av den. Om du är osäker: Kolla med studievägledaren.
  • Om du tänker gå kursen som "gammal student" är det väldigt bra om du hör av dig till examinator så att vi kan ge dig en möjlighet att få vara med på så mycket som möjligt av LE/LA (om du har LABA kvar). Dessutom är det viktigt för att du skall bli tilldelad en assistent som du kan få hjälp av (om du har LABA eller DAT1 kvar).

Till att börja med är det så att ALLA moment i LADOK som du har rapporterade med betyg där är klara! Dessa skall du inte göra om. T.ex. om du har LABA godkänt i LADOK skall du inte vara med på LA och ta upp plats för dem som har detta moment kvar. Du kan givetvis vara med på FÖ och LE för att klara DAT1 senare.

Om man inte är klar med ett moment i LADOK skall detta göras om (enligt reglerna som finns). Det innebär i princip att man skall göra om allt i denna del för det nya årets upplägg.

Vi vill förstås inte göra så att ni (och vi) får en massa onödigt extra arbete så vi gör så att årets delmoment (t.ex. en "laboration" inom LABA) som vi anser vara rimligt att det kan vara kvar från tidigare års resultat redan är markerade som godkända. Ni kommer att se vilka på hemsidan (i det vi kallar "kurskartan").

Detta innebär att om det är samma (eller likartad) deluppgift som tidigare år är ni alltså redan godkända på denna och kan gå vidare med de som är kvar. Det innebär också att det kan vara uppgifter som du behöver komplettera med (som t.ex. är nya).

Även om du känner att det är "onödigt" att göra delmoment som är "enkla" är det så att om det verkligen är enkelt "tar det ingen tid". Bara gör uppgiften så blir det bra. Är uppgiften svår så var det ju kanske rätt att den behövdes göras om.

Om du har problem att komma in på den "kurskarta" som finns (det står att du inte är registrerad på kursen) skall du kontakta Torbjörn. Detta är extra viktigt om du redan är godkänd på alla moment och vill "plussa betyget" då du garanterat i detta fall är "inaktiverad", men det fixar vi till som sagt.

En liten varning är befogad. Nästa års kursomgång kan komma att ändras och man kan isåfall behöva 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: Torbjörn Jonsson
Senast uppdaterad: 2023-01-17