Hoppa till huvudinnehållet
Institutionen för informationsteknologi

PM1&PK1 HT-06 Allmänt om kursen

Kursstart

Första kurstillfället är en föreläsning fredagen den 22:e september klockan 10:15 i rum 2146 vid MIC (hus 2).

Denna föreläsning är obligatorisk eftersom kursdeltagarna kommer att registreras och diverse administrativ information lämnas. Den som av någon anledning inte kan närvara måste höra av sig till den kursansvarige.

Vilken kurs?

Denna kurs är två kurser i en: Programmeringsmetodik DV1 för Datavetenskapliga programmet och Programkonstruktion 1 för Informationsteknologiprogrammet. Kurserna har identiskt innehåll och läses därför tillsammans med gemensamma föreläsningar och examination.

Kursens syfte

Kursen syftar till att göra er bekanta med grundläggande principer, metodiker och begrepp inom programmering så att ni själva kan skriva enklare program och få sådana teoretiska och praktiska kunskaper i programmering som behövs för fortsatta kurser på er utbildning. Som verktyg används det funktionella programmeringsspråket Standard ML.

Genom laborationer och inlämningsuppgifter får ni praktisk kunskap om programmering.

Se även den formella kursplanen (PM1, PK1).

Lärare, assistenter

Kursansvarig och föreläsare är Lars-Henrik Eriksson. Lektionsledare är Jesper Bengtson, Jonathan Mörndal, Martin Nordkvist och Magnus Ågren. Labassistenter är Carl Leonardsson, Christoffer Ramqvist (även SI - DVP) samt Murat Sabotic (även SI - IT).

Kurslitteratur

Kurslitteraturen utgörs av ett kompendium som du köper på UTHgård.

Kompendiet har några ändringar från fjolårets upplaga (t.ex. rättningar av fel), så det är bra om du använder rätt årgång.

Det finns två referensböcker på kursen. Du rekommenderas starkt skaffa och läsa en av dem även om det inte är strikt nödvändigt.

  • Elementary Standard ML av Greg Michaelson. De första kapitlen i denna ingår i kompendiet. Denna bok kan laddas hem från webben. OBS! Att författaren ganska konsekvent använder metoden med "stuvade" (curried) funktioner (se kursmoment 9) för att att hantera flera argument till en funktion. Detta skiljer sig från den metod som lärs ut på kursen.
  • Introduction to Programming using SML av Michael R. Hansen och Hans Rischel. Denna bok användes tidigare som kursbok. Det finns en webbsida med rättelser till boken. Denna kan finnas på Studentbokhandeln eller Lundeq, men annars köper du den enklast från någon webbokhandel - på Bokfynd.nu kan du jämföra priser!

Handledning, frågor etc.

Handledning lämnas av assistenterna vid laborations- och lektionstillfällena eller via e-post. Assistenterna kan också ha mottagningstider då man kan tala med dem. Mottagningstiderna står i så fall på lektionsschemat för respektive grupp.

Föreläsaren Lars-Henrik Eriksson kan också hjälpa till. Ni kan alltid ställa frågor till mig direkt i anslutning till föreläsningarna. Behöver ni hjälp vid andra tillfällen så tala först med assistenterna. Ifall de inte kan ge ett (bra) svar är ni välkomna till mig - i första hand via e-post.

Supplemental instruction (SI) utgör ett komplement till handledningen.

Föreläsningar

Syftet med föreläsningarna är att presentera och förtydliga kursmaterialet och peka ut vad som är viktigt. Närvaro på föreläsningarna rekommenderas men är inte obligatoriskt (utom på första föreläsningen).

A-, B- och C-föreläsningar

På denna kurs varierar förkunskaperna mycket. En del studenter har redan från början rätt stor erfarenhet av programmering, medan andra aldrig har sysslat med det. För att försöka anpassa föreläsningarnas till studenternas förutsättningar är de uppdelade i A- och B-föreläsningar.

A-föreläsningarna tar upp det viktigaste i kursen på ett grundläggande sätt. B-föreläsningarna är mera fullständiga och kommer att gå i ett snabbare tempo.

Rena nybörjare bör delta i både A- och B-föreläsningarna, medan studenter med goda förkunskaper kan nöja sig med B-föreläsningarna. Du får själv känna efter vad som är rätt för dig.

Det kommer också att bli några "C-föreläsningar" för de intresserade. De ger exempel på mer avancerade tillämpningar av kursmaterialet. Dessa föreläsningar utgör ren överkurs och behandlar saker som inte ingår i kursen.

Lektioner

lektionerna kommer assistenterna i grupper gå igenom förra veckas laboration, efter behov förklara moment i kursen eller göra andra övningar.

I samband med laborationsgenomgångarna kommer några studenter att få presentera sina lösningar och några andra kommer att få "opponera", dvs kritiskt granska lösningen. Alla måste både ha presenterat och opponerat någon gång för att få godkänt på kursen!

Lektionerna är obligatoriska endast om du fick komplettering på förra veckans laboration. Av erfarenhet vet vi dock att de som inte går på lektionerna tenderar att göra samma fel om och om igen på varje labb, så du bör för din egen skull alltid gå på lektionerna.

Laborationer

laborationerna övar du dig i programmering genom att praktiskt lösa uppgifter. Det är en laboration i veckan. Börja titta på veckans laboration direkt efter veckans föreläsningar.

Varje vecka finns en schemalagd laborationsdag - normalt fredag. Under den dagen är labbsal 1515 bokad klockan 08-17 och det finns hela tiden labbhandledare på plats (utom kanske under lunchen).

För att du skall veta vad du behöver hjälp med och kunna ställa rätt frågor till handledarna är viktigt att du tänkt igenom i förväg hur du skall utföra labben. Större labbar bör du dessutom försöka börja arbeta med före labbtillfällena.

Om inte annat sägs skall du lämna in laborationsredovisningar senast klockan 08:00 tisdagen efter laborationen.

Laborationerna ingår i examinationen på kursen. Det finns sammanlagt 10 laborationer. För att bli godkänd på kursen måste du ha fått godkänt på minst 7 av dessa 10 laborationer. I annat fall får du göra om hela laborationsmomentet nästa år!

Förutom veckolabbarna finns två större inlämningsuppgifter du skall arbeta med under hela terminen

Genomförande

Laborationer skall göras enskilt eller i grupp om två personer. Inget krav finns på när laborationerna skall utföras, men vid de bestämda laborationstillfällena finns datasalar reserverade och assistenterna är med och handleder.

Laborationer skall lämnas in för bedömning senast vid den tidpunkt som anges för varje laboration (normalt klockan 08:00 tisdagen efter laborationstillfället). Uppgift som lämnas in senare kommer inte att rättas. (Undantag gäller endast vid sjukdom mot uppvisat läkarintyg eller liknande.)

Laborationerna skall lämnas in via ett webbformulär. Man kan komma åt formuläret från webbsidan med laborationsbeskrivningen. Inlämningen kommer att öppnas när registreringen av alla studenter på kursen hunnit behandlas.

Vid varje lektionstillfälle kommer lektionsledaren att dela ut de betygsatta laborationerna från veckan innan och gå igenom lösningarna. På laborationer lämnas något av betygen godkänd (G), komplettering (K) eller underkänd (U). Komplettering innebär att lösningen inte är tillräckligt bra utan måste förbättras och lämnas in för ny betygsättning senast vid stopptiden för nästa laboration. Underkänt betyg får man endast om man inte gjort ett seriöst försök att utföra laborationen eller om inte heller ev. komplettering är tillräckigt bra. (Och förstås om man fuskat.)

Vad som räknas som "seriöst försök" beror på hur långt man har kommit på kursen. I början av kursen kan t.ex. en lösning som innehåller syntaxfel ge komplettering, medan den mot slutet av kursen inte räknas som seriöst försök -- detta eftersom ML-systemet talar om för dig om ditt program är syntaktiskt riktigt eller inte.

Man kan alltså bli godkänd på en laboration på ett av två sätt:

  • Genom att lämna in en tillräckligt bra lösning i tid.
  • Genom att lämna in ett "seriöst försök" till lösning i tid och dessutom
    1. Närvara på nästa lektion (obligatoriskt!)
    2. Senast vid nästa labbinlämningstillfälle lämna i en tillräckligt bra lösning ("komplettering").

Det finns en kodningsstandard för hur lösningarna skall vara utformade. Om inte denna standard följs kan resultatet bli komplettering/underkännande utan att vi ens tittar på vad lösningen faktiskt gör.

Fusk

Om man samarbetar utöver vad som är tillåtet, använder andras lösningar av en uppgift när man gör sin egen lösning - eller rent av lämnar in en (nödtorftigt ändrad) kopia av någon annans lösning så är det fusk. Läs mera om fusk här.

Bevisat fusk kommer att leda till disciplinära åtgärder som avstängning från all undervisning och examination under viss tid.

Det är givetvis tillåtet att diskutera lösningar och lösningsmetoder med varandra, men du/ni skall själv ha konstruerat den lösning du/ni lämnar in. Tror ni att det är risk för att sådana diskussioner leder till att två lösningar är väldigt lika varandra så säg till er lärare i förväg så undviker ni bekymmer senare. Eventuellt kan ni i så fall få göra extrauppgifter om läraren bedömer att ni samarbetat för mycket.

Inlämningsuppgifter

Inlämningsuppgifterna är två större programmeringsuppgifter som du skall utföra ensam. Den ena uppgiften skall göras klar senast i december, den andra senast i januari (se uppgiftssidorna för exakt datum). Handledning för inlämningsuppgifterna får du på samma sätt som för laborationerna.

Kodstandarden som gäller laborationer skall användas även här. Det finns också en minneslista för programutveckling som du kan ha nytta av.

Om din lösning inte är tillräckligt bra så får du komplettering på uppgiften. Till skillnad från laborationer så kan du komplettera flera gånger. Deadline för komplettering är en vecka efter att uppgiften blivit rättad.

Om du inte lämnar in uppgiften i tid så kommer den att rättas vid ett extra rättningstillfälle som anordnas i samband med omtentamen i april respektive augusti. Samma sak gäller om du får komplettering på kompletteringen. Efter augustinlämningen tas inte några fler inlämningar emot. Är uppgiften fortfarande inte godkänd så får du göra om inlämningsuppgifterna nästa gång kursen ges. Har du tur så är det samma eller liknande inlämningsuppgifter, men det finns inte alls några garantier för det.

För fusk gäller samma sak som för laborationerna (se ovan).

Examination

Examinationen består av tre moment: laborationer, inlämningsuppgifter och tentamen. När ett moment är godkänt registreras 2 av kursens 6 poäng i STUDOK. För att bli färdig med kursen måste man ha godkänt på alla tre momenten.

Godkänd på labbkursen blir man om man fått godkänt på minst 7 laborationer samt genomfört en presentation och en opposition. Godkänd på inlämningsuppgifter blir man om man fått godkänt på båda inlämningsuppgifterna. Godkänd på tentamen blir man när man skrivit tentan och fått minst det antal tentamenspoäng som krävs för godkänt betyg (G för DVP, 3 för IT). Tillräckligt bra resultat på tentan kan ge överbetyg (VG för DVP, 4 el. 5 för IT). Detta betyg blir också betyget på hela kursen när uppgifterna är klara.

Uppdaterad  2006-09-21 15:35:09 av Lars-Henrik Eriksson.