91MA32
91MA32 > Kursinformation
Göm menyn

91MA32 / 92MA32 Programmering, grundkurs

Kursinformation

Kursinformation

Kursens koncept och bakgrund

I denna kurs använder vi oss av ett koncept vi kallar Leveling. När du klarat en uppgift "låser du upp" en annan, inte helt olikt hur karaktärer i spel "levlar" sina färdigheter. Tanken med Leveling är inte "spelifiering", utan det handlar snarare om att försäkra sig att du har rätt förkunskaper för att kunna ta dig an nästa uppgift.

Som student använder du Kurskartan för att se var du ligger till i kursen. I kurskartan kan du se vilka uppgifter du behöver klara, och vilken i ordning du behöver klara dem.

Det finns egentligen två slags uppgifter i kursen: O-uppgifter och P-uppgifter. O-uppgifterna (områdesuppifter) ämnar att lära ut ett visst koncept. Dessa uppgifter görs parvis. P-uppgifterna (problemlösningsuppgifter) går istället ut testa förståelsen för koncepten, och är de uppgifter som i slutändan leder till betyg. Därför skrivs P-uppgifterna enskilt på särskilda P-pass. Mer utförlig information om både O- och P-uppgifterna hittar du i kurskartan.

När du känner dig nöjd med en uppgift skickar du in den till rättningssystemet. I stora drag består rättningen av två steg: automaträttningen och assistenträttningen. Automaträttningen jämför ditt programs utdata med ett "facit" för att se att din kod gör rätt saker. Efter att din inlämnade kod passerat automaträttningen skickas den vidare till rättning av assistent. Där kollar vi om du har förstått koncepten för uppgiften och om koden är bra skriven.

Det är inte konstigt att få backning från assistenträttningen flera gånger. Tanken med Leveling-systemet är ju att du ska ha rätt färdigheter innan du arbetar vidare med nästa uppgift!

Kursen har alltså ett ganska gediget system för att ni ska få lära er programmering och problemlösning. Lycka till!

Nyheter för i år

Nya benämningar i schemat

Schematekniskt finns inte längre "DU" och "LA" i schemat. Dessa markeringar har varit lite missvisande enligt en del studenter och vi har skapat två nya markeringar i schemat som heter "P-pass" (probelmlösningspass) och "PROGR" (programmeringsstuga):

  • PROGR - Detta är pass där ni är uppdelade i två grupper (ni är för många för att kunna köra samidigt) och ni kan fråga om precis alla saker som har med O-uppgifter, P-uppgifter, teori som ni inte riktigt har koll på och mycket annat. Dessa pass är i datorsal och det är meningen att ni skall använda dessa för att ha mycket diskussioner med assistenter om HUR man gör saker och VARFÖR man bör göra på vissa sätt, men kanske inte andra etc.
  • P-pass - Dessa pass är till för att göra P-uppgifter på. Vi pratar mer om detta på FÖ senare, men kort gäller att det är ett P-pass i veckan (ungefär) och de uppgifter man gör där är uppgifter som vi kommer att rätta lite extra noga och ge tips på saker som går att förbättra. OBS! Det är inte dugga eller tenta utan uppgifter som man normalt sett få komplettering på ett par gånger och sen när man klarat dessa på ett "bra" sätt ger vi "belöning"/"ersättning" för ert arbete betyg i kursen på UPG-moment i LADOK.

Justering av kurshemsida

En del saker har flyttats runt i den meny som finns på kurshemsidan. Det vi gjort är att fundera lite mer på hur man hittar saker och vilka studenter som kan ha nytta av olika varianter. Vi har utgått ifrån att det finns tre grupper av studenter (generellt sett):

  • Studenter som går kursen för första gången. I denna grupp tar vi även med de som inte varit med under den tid vi haft kurskartor på hemsidan då detta är en stor modifiering som skett de senaste åren.
  • Studenter som har kvar saker sen tidigare, men är skapligt väl insatta i hur det fungerat senaste året/åren med kurskartor etc. I denna grupp finns det en del som man kan "råka ut för" om man inte kollar hur det verkligen fungerar i år. Kolla därför på nyheterna för i år lite extra.
  • Studenter som enbart har P-uppgifterna kvar för att bli klara med kursen. Här är det en del saker som är justerade till det bättre för att kunna klara dessa uppgifter.

Hemsidan kommer att vara skapligt "stabil" när kursen startar, men precis innan kursstart gör vi en del uppdateringar som gör att det kan flyttas runt lite saker.

Uppdaterad kurskarta

Kurskartan är uppdaterad så att den innehåller en del nyheter. Det har tillkommit och modifierats några delar. Detta är för att ge en del fördelar gentemot det som varit i tidgare kursomgångar.

  • Ada.O2.0 / Ada.O3.0:

    Dessa två motsvarar "tentaplugget" man kan göra inför en tenta. I vår kurs finns det ingen tenta utan det som finns är de P-uppgifter som när man klarat dem ger betyg. Dessa två uppgifter är det vi kallar "Mängdövningsuppgifter" för att kunna klara Ada.P2 respektive Ada.P3 på ett mer effektivt sätt.

  • Info.O0.1:

    Denna "uppgift" är egentligen bara en textfil som du skall fylla i ett gäng "X" på rätt ställen för att bli godkänd på. När du skickar in denna får du som respons "facit" så det är inget konstigt att fixa till, MEN det är viktigt att ta åt sig av de saker som är med där då det gör att du förhoppningsvis har bättre koll på hur P-passen fungerar.

  • Info.O0.2:

    Denna är till för dig så att du kan få in resultatet av P-uppgifterna i LADOK. Du skall endast skicka in denna när du känner att du INTE skall gå på fler P-pass (d.v.s. när du känner att du är redo för at få in resultatet i LADOK).

    Du kan alltså vänta med att skicka in denna tills du har nått t.ex. betyg 4 om det är nivån du är nöjd med.

    Efter det att du skickat in denna kommer resultatet du uppnått in i LADOK och du kommer inte att kunna göra fler P-uppgifter i Ada-delen i kursen (vissa kurser har flera olika språk därav denna markering).

    Om du senare år vill "plussa" betyget är det ok om du går på TekFak. Om du går på FilFak eller UtbVet är detta inte möjligt. Hör av dig till examinator om du vill göra en plussning ett senare år så "låser vi upp" P-uppgifterna så att du kan fortsätta till nästa "level".

  • Ada.O4:

    Denna uppgift är omformulerad/updaterad med figurer. Detta har använts i höstas i de kurser vi hade då och det har visat sig ge en bra effekt på tidsåtgång för den uppgiften för er studenter.

    Det är även så att den FÖ som handlar om denna uppgift är helt omgjord (finns alltså inte med i de gamla filmer som ligger som "backup" på hemsidan). Den gamla filmen kan dock användas som material för att få lite andra vinklar på det som uppgiften handlar om så det är ett bra komplement.

  • Ada.O8.11: Denna ersätter den "gamla" varianten av "textfilsuppgift" som vi haft i kurserna (den gamla hette Ada.O8.1). Om du har Ada.O8.1 godkänd sen tidigare kommer denna gamla uppgift fortfarande att räknas som delmoment för LAB-momentet i kursen. Om du inte gjort Ada.O8.1 tidigare är det alltså Ada.O8.11 som gäller framöver.
  • Ada.P2:

    Då vi sett att det är många som inte riktigt har koll på underprogram i kursens senare delar har vi lagt in en spärr i Ada.O-uppgiftsserien i år. I de uppgifter som ligger i slutet av serien behöver man ha koll på underprogram och det gör att vi har satt in ett krav på att man skall ha klarat Ada.P2 för att komma vidare till de senare delarna.

    Samtidigt har vi infört Ada.O2.0 som ger stor möjlighet att öva många gånger inför Ada.P2 vilket gör att ni skall ha mycket stor möjlighet att klara Ada.P2 inom rimlig tid.

  • Tidslinje:

    I vänstra delen av kurskartan har vi i år lagt in en tidslinje där vi har markerat hur man bör ligga till i olika skeden i kursen. Vi kallar detta "Mjuka deadlines" då det inte är direkta deadlines utan mer en markering för er var ni bör ligga för att vara i fas.

    Vid den mjuka deadline som står bör man alltså ha "Mörkgrönt" (assistentgodkända Ada.O-uppgifter) ända ner till den raden (inklusive den raden där den mjuka deadlinen står). Ligger du lite efter är det alltså bra att jobba lite extra och ligger du före är det ju super. [ Ja, man kan jobba fortare i kursen. ]

Ytterligare justeringar av kurskartan (91MA32, 92MA32)

Kurskartan uppdaterad med "ytterligare" några delar. Dessa delar är specifika för denna kurs:

  • Info.O1.1 och Info.O1.2:

    Dessa motsvarar de "Info"-uppgifter som finns för Ada-delen, men dessa är gjorda för Python-delen i kursen. Anledningen till att vi har två uppsättningar är att gamla studenter kanske har Ada-delen klar och därmed inte behöver göra de "Info"-uppgifter som hör dit. Detta gör att det är väldigt lika "frågor" i dessa Python-relaterade "Info"-uppgifter gentemot de som finns för Ada-delen.

  • Python.P1

    En stor ändring som finns från förra året är att Python.P1 (som ger betyg G) fås "gratis" när man klarar av Python.O-uppgifterna.

    Att vi har denna kvar som P-uppgift beror på att den kan ge lite extra "hp" för CSN om man inte blir klar med Python.O-uppgifterna under kursens gång. Vi har ETT tillfälle i slutet av kursen där denna P-uppgift dyker upp som möjlig att göra för att få betyg på Python.P-uppgiftsdelen.

    Normalt sett får du alltså både LAB-momentet och UPG/DAT-momentet för Python-delen genom att göra klart Python.O-uppgifterna.

    De som har kvar endast Python.P-uppgifterna från tidigare år kommer att få detta inrapporterat som betyg G i slutet av kursen (eller tidigare om du markerar med "Info.O1.2"-uppgiften att du vill få in betyget tidigare. Detta beror på att man ju redan har gjort O-uppgifterna i Python-delen tidigare. En bonus från mig som examinator (M.v.h. /TJ).

Information till Gamla Studenter

Nedan följer information om vad du behöver göra för att komma igång och för att klara av kursen så smidigt som möjligt nu under våren. Vi försöker hjälpa till så mycket det går.

Det finns några olika fall att ta hänsyn till. Detta är lite av en "att göra"-lista för de olika fallen:

  1. Du tänker ALDRIG ta denna kurs.
    Det är bra om du meddelar mig så att jag kan plocka bort dig från våra system (du slipper sen mail också).

    Maila <torbjorn.jonsson@liu.se> med denna information. Lycka till framöver!

    Du kan sluta läsa här.

  2. Du tänker ta kursen, men inte nu i vår.
    Du behöver inte göra mer just nu. Ha det bra så får du fler mail inför VT-2025.

    Du kan sluta läsa här.

  3. Du tänker ge kursen ett försök i vår (som jag förstås hoppas går bra).
    Det är i detta fall viktigt att du talar om för oss att du skall vara med (oavsett vilken del du har kvar).

    Maila <torbjorn.jonsson@liu.se> och säg att du skall vara med i vår. Senast 2 veckor in i kursen (d.v.s. senast 2024-01-28)! Detta då vi kommer att göra vissa modifieringar som skall hjälpa er igenom detta på ett smidigt sätt och behöver veta vilka som är med.

    OBS! Registrera INTE om dig på kursen. Det kommer bara att strula till det för dig när rapporteringen skall göras (till LADOK). Ingen registrering behövs för att gå färdigt kursen genom att du redan påbörjat denna tidigare. Det räcker att vi får mailet ovan så kan vi rapportera in resultat i LADOK när du blir klar.

    Vi kommer att rapportera resultat flera gånger under våren så när du är klar kommer det att dyka upp saker i LADOK. Lite special gällande P-uppgifter, men det tar vi senare.

    Ett hett tips är att följa FÖ-serien igen om du har saker kvar (under första tre FÖ i första veckan kommer vi att ta upp mycket av det som är nytt och hur upplägget är så vill du är du förstås välkommen på dessa FÖ). Det är ok att gå på LE också. Vi kan dock inte garantera plats i "labsal" på de PROGR-pass som finns om du endast har P-uppgifterna kvar att göra (d.v.s. inte har "labserien" i Ada eller Python kvar).

    Du kommer att få en assistent som du kan höra av dig till oavsett vilken del du har kvar. Mer information om du skickar mail om vad du har kvar (se ovan).

    Hemsidan som du kommer att använda för att komma igång med allt är www.ida.liu.se/~91MAXX (OBS! det är verkligen 91MAXX och inget annat).

    OBS! Hemsidan är under uppbyggnad så det tillkommer saker allt eftersom under veckan. Vi har ännu inte lagt ut t.ex. kurskartan och tidplaneringen, men den är på gång ...

    Kurskartan är uppdaterad med "mjuka deadlines" för att du skall se när du bör vara klar med uppgifterna för att hinna bli klar i tid innan den hårda deadline som finns innan tenta-P i maj. OBS! Inga kompletteringar av saker efter hård deadline. Självklart kan man göra saker tidigare och då få in rapportering av detta tidigare i LADOK också.

    Det finns ytterligare några varianter beroende på vad du har kvar (du kan ha flera av dessa):

    1. Du har P-uppgifter kvar.
      Detta är det som tidigare var en tenta, men där tentaformen inte finns kvar på det sätt som var en gång i tiden.

      Det finns endast möjlighet att gå på de P-pass som går i perioderna (INTE i tenta-P alltså). Den tenta som fanns tidigare i kursen är ersatt helt med dessa P-pass.

      Detta är dock ingen nackdel som vi ser det då det är klart bättre statistik för att klara sig via de P-pass som går i själva läsperioden.

      P-passen där dessa uppgifter görs kommer att finnas i schemat. På hemsidan kommer det dessutom att finnas information om vilka P-uppgifter som ges på respektive P-pass. Alla P-uppgifter ges alltså inte på alla P-pass.

      P-passen börjar inte direkt i första veckan utan några veckor in i VT1. Vi har P-pass i princip varje vecka fram till läsperiod VT2 avslutas (OBS! inte i tenta-P).

      Ett hett tips är att inte spara detta utan försöka börja så tidigt som möjligt för att inte drabbas av att missa chansen.

      För att kunna delta på P-pass måste uppgiften du skall göra vara upplåst i kurskartan.

      Det finns i år övningsuppgifter (Ada.O2.0 och Ada.O3.0) som du kan göra flera gånger per dag, alla dagar i veckan). Nya uppgifter ungefär varannan timme. Dessa kan du skicka in till automaträttningen och få lite hjälp att få upp farten med. Dessa rättas inte av assistent utan är till för egen övning enbart.

      Det finns också två uppgifter som du "övar på" på egen plats (Ada.P2.0 och Ada.P3.0). Dessa går endast på P-passen. Dessa fungerar på samma sätt som Ada.P2 respektive Ada.P3, med skillnaden att du alltså inte sitter i sal med vakt utan på egenvald plats. Uppgiften rättas av assistent och behöver vara godkänd för att få plats i sal med vakt till Ada.P2 och Ada.P3. Dessa uppgifter är obligatoriska att klara för att få göra de ordinarie P-uppgifterna för betyg.

      De ordinarie P-uppgifterna (Ada.P2, Ada.P3, Ada.P5 och Ada.P8) görs i sal med vakt. Du skall där legitimera dig både när du kommer och när du går. Du har egen dator på dessa pass och du får information kvällen innan (via mail) om vilken sal du är inbokad i. Dessa är examinerande och ger betyg i LADOK.

      Om du inte låst upp P-uppgiften vid rättningen dagen innan ett P-pass (rättningarna sker på förmiddagarna varje vardag) är det inte möjligt att göra P-uppgiften dagen efter. Du behöver alltså att skickat in det som skall rättas dagen innan rättningen. Undantag Ada.P2.0 och Ada.P3.0 som du själv kan generera under ett P-pass om du får den upplåst (dessa två går alltså att låsa upp dessa även när ett P-pass är aktivt). [ Ada.O2.0 och Ada.O3.0 kan du "alltid" generera själv (utom under P-passen då dessa krockar med P-uppgifterna). ]

    2. Du har "labserien" (eller O-uppgifterna som vi kallar dem) kvar.
      Detta innebär att du kommer att få följa den nya modellen vi har för den nya kursen, men de uppgifter som finns är i princip de som varit tidigare. Vi har modifierat vissa av dem för att de skall vara mer lättförståeliga och visa har vi modifierat för att de skall passa ihop med efterföljande (eller tidigare) uppgifter på ett bättre sätt.

      OBS! Börja inte med dessa för sent om du har saker kvar. Det tar tid och du behöver antagligen börja så fort det går. Vi rättar och hjälper er med alla "labseriens" O-uppgifter under hela kursen.

      Man skall arbeta i par i "labserien" (eller möjligen i grupp om tre). Vi kommer att vara väldigt restriktiva med undantag.

      Alla i en grupp skall skicka in samma programkod och detta är det viktigt att göra så snart det går så att du/ni inte hamnar i väntekö och därmed förlorar tid. Så snart det går betyder att ni skickar in så "samtidigt" som möjligt. Att vänta flera dagar med att den "andre" skickar in sin kod gör att den "förste" väntar vilket inte är hållbart. [ Det går att byta partners under kursen om det strular med samarbetet. Hör av dig till assistenten om du behöver hjälp i detta. ]

      Det finns en spärr i år för att komma till slutdelen av "labserien". Man måste klara Ada.P2 för att komma hela vägen. Detta beroende på att man inte har förkunskaperna för de senare uppgifterna om man inte nått till den nivån att man klarat den spärren. Ju bättre grund du har desto fortare går det på slutet (och det blir dessutom roligare).

Jag stoppar här och hoppas att du har fått en skaplig introduktion till vad som kommer i vår. Vänta inte med att maila oss så att vi kan föra in att du är aktiv och vill klara av moment. Vi stoppar in dig i SC (där du skickar in dina uppgifter) i och med att du talar om att du skall vara med i vår.

Ha en god fortsättning och hoppas att allt kommer att bli super.

Läromål 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.

Didaktik. Vi återkommer med mer info om denna del senare under kursen.

Kursens moment i LADOK

Kursens LADOK-moment har under tidigare år döpts om. 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:

  • LAB1 - 2,5hp - G/U
    Detta moment blir godkänt när Ada.O-uppgifterna är avklarade.
  • LAB2 - 1,5hp - G/U
    Detta moment blir godkänt när Python.O-uppgifterna är avklarade.
  • DAT1 - 0,5hp - U/G/VG
    Detta moment blir betygsatt enligt kursens Ada.P-uppgifter.
  • DAT2 - 0,5hp - U/G/VG
    Detta moment blir betygsatt enligt kursens Python.P-uppgifter.
  • SRE1 - 1hp - G/U
    Detta moment motsvarar kursens didaktikdel.

Version-2 består i LADOK av:

  • LAB1 - 2,5hp - G/U
    Detta moment blir godkänt när Ada.O-uppgifterna är avklarade.
  • LAB2 - 1,5hp - G/U
    Detta moment blir godkänt när Python.O-uppgifterna är avklarade.
  • UPG1 - 0,5hp - U/G/VG
    Detta moment blir betygsatt enligt kursens Ada.P-uppgifter.
  • UPG2 - 0,5hp - U/G/VG
    Detta moment blir betygsatt enligt kursens Python.P-uppgifter.
  • SRE1 - 1hp - G/U
    Detta moment motsvarar kursens didaktikdel.

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

Undervisnings- och examinationsformer

Som stöd till ert lärande har vi flera undervisningsformer. Dessa beskrivs nedan:

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

PROGR (Programmeringsstugor)

På programmeringstugorna finns datorsalarna på IDA bokade för att ni ska kunna arbeta med uppgifterna på universitets datorer. Under dessa pass finns kursens assistenter tillgängliga för att svara på frågor. De flesta av era frågor kommer förmodligen beröra O-uppgifterna, men vi uppmuntar även att ni diskuterar till exempel P-uppgifter.

Vi räknar med att programmeringstugorna kommer vara ett hav av frågor och diskussioner. Assistenterna kommer ha fullt upp, och ni kan alltså få en viss väntetid i salarna. Vi rekommenderar därför att man diskuterar sitt problem med andra studenter (även utanför din grupp) för att komma vidare.

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

Observera att tanken inte är att ni bara ska arbeta under programmeringstugorna, utan kursen är planerad för att ni ska behöva arbeta på egen tid utanför programmeringstugorna.

Problemlösningspass (P-pass och P-uppgifter)

P-passen motsvarar tentor eller duggor i andra kurser. På P-passen ska du enskilt visa att vad du kan genom att lösa de så kallade P-uppgifterna. Det är P-uppgifterna som leder till betyg i kursen.

En utförligare beskrivning av P-passen och P-uppgifterna finns på sidan P-uppgifter och P-pass i kurskartan.


Sidansvarig: Viktor Olsson
Senast uppdaterad: 2024-01-12