Hoppa till huvudinnehållet
Institutionen för informationsteknologi

PKD 10/11: Allmänt om kursen

Kursens syfte

Kursen syftar till att göra er bekanta med grundläggande principer, metodiker och begrepp inom programmering -- inklusive val och analys av algoritmer och datastrukturer -- 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.

Denna kurs är en sammanslagning av de tidigare kurserna Programkonstruktion samt Algoritmer och Datastrukturer 1.

Kursstart

Första kurstillfället är en föreläsning tisdagen den 26:e oktober klockan 13:15 i sal B8, BMC. Hela kursschemat finns här.

Denna föreläsning är obligatorisk eftersom kursdeltagarna kommer att registreras och diverse administrativ information lämnas. Den som av någon anledning har förhinder mot att närvara måste höra av sig till Lars-Henrik Eriksson eller Pierre Flener inom 24 timmar efter första föreläsningen.

Arbetsinsats

Kursen omfattar 2/3 av heltid. Det innebär att varje vecka skall ni vara beredda att lägga i genomsnitt 27 arbetstimmar på den. En typisk vecka är det 12 schemalagda timmar (mindre i slutet av kursen). Ni måste alltså vara beredda att lägga i genomsnitt 15 timmar av självständigt arbete (läsa kursmaterialet, öva, göra uppgifter) varje vecka -- mera i slutet av kursen eller om ni inte deltar i all schemalagd undervisning.

Lärare

Huvudlärare är Lars-Henrik Eriksson och Pierre Flener. Det finns också ett antal assistenter -- labassistenter som handleder i datasalarna och lektionsledare som dessutom håller lektioner och rättar uppgifter. Lektionsledare är Peter Jägare, Jonatan Lindén, Lars Melander, William Sjöstedt, Johannes Åman Pohjola och Karl Sundequist. Labassistenter är Kristiina Ausmees, Elias Castegren, Joakim Lindqvist, Thomas Nordström, Dennis Rosén och Emil Wall.

Kurslitteratur

Kursen har ingen speciell kurslitteratur. I princip klarar du dig med innehållet i föreläsningarna (OH-bilderna finns att ladda ned).

Vi rekommenderar dock starkt att du skaffar referensböcker som du kan använda som uppslagsverk eller för självstudier. Du behöver en referensbok för programmering i Standard ML och en för algoritmer och datastrukturer. De referensböcker som vi rekommenderar innehåller i stort sett hela kursmaterialet, viktigare undantag är moment 4 och -- för boken CLRS nedan -- AVL-träd i moment 8 som du måste läsa in från föreläsningarnas OH-bilder.

För programmering i Standard ML rekommenderar vi:

Det finns många andra böcker som handlar om Standard ML, se länksidan. Många böcker vänder sig dock till personer som har programmeringserfarenhet tidigare, så kontrollera det om du skaffar en annan bok.

För algoritmer och datastrukturer rekommenderar vi endera av:

CLRS är en mycket omfattande och grundlig bok, som också används som kurslitteratur i senare kurser om algoritmer och datastrukturer inom DVK och masterprogrammet i datavetenskap. Du kan ha nytta av den även efter avslutade studier, så den är en god investering. L är inte lika omfattande men mera lättillgänglig. De kostar ungefär lika mycket.

Böckerna skall finnas på Studentbokhandeln eller LundeQ, men annars köper du dem enklast från någon webbokhandel - på Bokfynd.nu och Pricerunner kan du jämföra priser! Prova även med Adlibris som inte ingår i jämförelserna hos Bokfynd.nu.

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

Det kommer att ordnas en eller flera gästföreläsningar om tillämpningar av kursmaterialet. Det kommer också att bli några "överkursföreläsningar" för de intresserade. De ger exempel på mer avancerade tillämpningar av kursmaterialet.

Pierre Flener kommer att föreläsa på engelska. Han talar svenska, men dels föreläser han bättre på engelska, dels vill vi ge er möjlighet att vänja er vid engelskspråkig undervisning av en person som faktiskt förstår svenska. Senare i er utbildning kommer ni att träffa på lärare som inte talar svenska utan bara undervisar på engelska.

Uppgifter, handledning

Du kommer att få göra två sorters uppgifter: laborationer och inlämningsuppgifter. På så sätt får du praktiska erfarenheter av kursinnehållet. Både programmering och algoritmanalys är till stor del färdigheter som man måste öva upp. En uppgift skall redovisas varje vecka, utom under de sista veckorna då du arbetar med en större uppgift.

Laborationerna är övningar på det material som vi gått igenom på de senaste föreläsningarna före labben. Laborationerna skall ta högst en dag att utföra. Om du har läst och tänkt igenom en laboration i förväg så bör du kunna göra den vid veckans handledningstillfälle (se nedan). För varje laboration så skall du lämna in en laborationsredovisning.

Inlämningsuppgifterna är lite större uppgifter som mer har karaktär av problemlösning och som du arbetar med under ett par veckor.

För varje uppgift finns ett (eller ev. två) schemalagt handledningstillfälle i datorsal. Då är två salar bokade en halv dag och det finns hela tiden assistenter på plats för att hjälpa dig med uppgiften. 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 kommer förberedd till handledningen!

Du kan förstås också få handledning av lärarna vid lektionstillfällena, i anslutning till föreläsningarna eller via e-post. Personliga besök går också bra. Lärarna kan ha speciella mottagningstider. Lektionsledarnas mottagningstider står i så fall på lektionsschemat för respektive grupp. Huvudlärarnas mottagningstider står här, om det blir aktuellt.

Du måste göra ett visst antal uppgifter annars kommer du att nästa år (eller senare) få göra om inte bara den uppgiften, utan även andra som du redan gjort! Närmare anvisningar och regler för hur du skall utföra och lämna in uppgifter hittar du på uppgiftssidan.

Supplemental instruction (SI)

SI är ett speciellt handledningsprogram som går parallellt med kursen i övrigt och leds av en äldre student med speciell utbildning. På SI-möten arbetar ni med övningar och kan få hjälp av SI-ledaren. Se vidare här för schema, övningar och andra upplysningar.

Lektioner

lektionerna kommer lektionsledarna i grupper gå igenom den senaste rättade uppgiften, efter behov förklara moment i kursen eller göra andra övningar.

I samband med uppgiftsgenomgångarna kommer några studenter att få presentera sina lösningar och några andra kommer att få "opponera", dvs kritiskt granska lösningarna. 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 uppgift -- eller är utsedd till att presentera/opponera. 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.

Gruppindelning

Alla kursdeltagare kommer att delas in sex lektionsgrupper med en egen lektionsledare som håller lektioner och är ansvarig för rättningen av uppgifter för gruppen. Uppgift om lektionsgrupperna finns här och kommer dessutom att anslås vid lektionssalarna vid första lektionen.

Varje lektionsgrupp är indelad i ett antal uppgiftsgrupper om två personer. Personerna i varje uppgiftsgrupp skall lösa uppgifterna i kursen tillsammans. Anledningen är dels att man kan lära sig mer genom samarbete, dels att det gör så det går snabbare att rätta uppgifterna eftersom det blir färre lösningar.

När kursen börjar så får ni själva bilda uppgiftsgrupper med hjälp av gruppindelningsfunktionen i Studentportalen. (Studenter som läser denna kurs för att de har rest sedan tidigare från någon av kurserna Programkonstruktion eller Algoritmer och Datastrukturer 1 får inte bilda grupp med studenter som läser kursen första gången.) Har du inte anmält dig till en uppgiftsgrupp i Studentportalen senast den 27/10 klockan 18:00 så kommer du att bli placerad i en grupp av lärarna. Endast i undantagsfall får du utföra uppgifterna ensam -- om det inte går att bilda jämna grupper eller med speciellt tillstånd av huvudlärarna.

Det är tillåtet att byta medlemmar i en uppgiftsgrupp inom samma lektionsgrupp utan speciellt godkännande. Däremot får man inte utan godkännande av huvudlärarna dela upp uppgiftsgrupperna så att flera studenter blir utan uppgiftsgrupp. Du får inte heller byta lektionsgrupp utan godkännande av huvudlärarna.

Examination

Examinationen består av fyra delar: höstens uppgifter, en tentamen i december, vårens uppgifter och en tentamen i mars. När ett moment är godkänt registreras 4 alt. 6 av kursens 20 högskolepoäng i Uppdok. För att bli färdig med kursen måste man ha godkänt på alla fyra momenten. Läs mera om examinationen och betygsättning här.

Fusk

I och med att du/ni lämnar in en lösning till en uppgift så intygar ni att det enbart är du/ni som har utfört arbetet med lösningen. Om man samarbetar om en lösning mellan grupper, 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. Vi använder effektiva verktyg som jämför lösningar (också från tidigare år) för att hitta plagiat! 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 (och uppmuntrat!) 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 lektionsledare i förväg så undviker ni bekymmer senare. Eventuellt kan ni i så fall få göra extrauppgifter om lektionsledaren bedömer att ni samarbetat för mycket.

Kursvärdering

En "mittkursvärdering" kommer att göras i november eller december.

Den egentliga kursvärderingen görs efter kursens slut på webben via denna länk. Du anger din UpUnet-S-identitet och lösenord A för att logga in.

Uppdaterad  2011-03-02 12:52:12 av Lars-Henrik Eriksson.