Uppsala universitet

Programmeringsmetodik DV1

Programkonstruktion (del I+II)

höstterminen 2002


Innehållsförteckning:

0. Nyheter
1. Lärare och assistenter
2. Allmän information
3. Föreläsningar
4. Laborationer och lektioner
5. Examination
6. Länkar och referenser
7. Fjolårets kurs: PM1, PK.
8. Lärarsidan


0. Nyheter


1. Lärare och assistenter

Namn

E-post

Rum

Telefon

Postlåda (på plan 4 i hus 1)

ICQ

Kursansvarig

Lars-Henrik Eriksson

lhe@csd.uu.se

1322

018-471 1057

60

Assistenterna hittar du på respektive gruppsida.


2. Allmän information

2.1. Kursstart

Första kurstillfället är en föreläsning tisdagen den 24:e september klockan 13:15 i Polacksbackens aula.

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.


2.2. Vilken kurs?

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

Observera att Programkonstruktion del III i praktiken är en separat kurs, vilken ges våren 2003.


2.3. Kursens syfte

Kursen syftar till att göra er bekanta med grundläggande principer, metodiker och begrepp inom programmering. Som verktyg används det funktionella programmeringsspråket Standard ML.

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

Se även kursdatabasen (PM1, PK) där de formella kursplanerna och kursbeskrivningarna finns.


2.4. Kurslitteratur

Kursbok är Introduction to Programming using SML av Michael R. Hansen och Hans Rischel. Det finns en webbsida med rättelser till boken.

Köp boken nu och börja läsa i tid! För bästa utbyte av föreläsningarna skall du i förväg ha läst det avsnitt av boken som föreläsningen handlar om.


2.5. Handledning, frågor etc.

Handledning lämnas i första hand av assistenterna vid laborations- och lektionstillfället eller via e-post. Assistenterna har också mottagningstider där man kan tala med dem. Mottagningstiderna står på schemat för respektive grupp.

Föreläsaren (Lars-Henrik) kan också hjälpa till, men 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 eller direkt i anslutning till föreläsningarna.


2.6. Supplemental instruction (SI)

Olika studenter lär sig på olika sätt. Självstudier är av tradition en viktig del av en universitetsutbildning. Kanske föredrar du att delvis bedriva självstudierna i diskussionsgrupper? Supplemental Instruction (SI) är ett sätt att organisera det.

Schema för SI finns på SI-webbsidorna.


3. Föreläsningar

Med några undantag hålls alla föreläsningar på tisdagar och onsdagar, i Polacksbackens aula, mellan klockan 10-12 eller 13-15 (kom ihåg att det är akademisk kvart!).

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

Hur kursinnehållet fördelas på föreläsningarnas i schemat är preliminärt och kan ändras under kursens gång.

Förklaringar till schemat: IPUSML är kursboken ­ "Introduction to Programming using SML". PFOH är Pierre Fleners OH-bilder.

  1. 24/9, 13-15, Aulan, Introduktion. OH-bilder.
  2. 25/9, 13-15, Aulan, Om uttryck och typer. PFOH 2.2-2.12. IPUSML 1.1, 1.3, 2.1-2.2, 2.5-2.8
  3. 1/10, 13-15, Aulan, Om funktioner och bindningar. PFOH 2.13-2.19. IPUSML 1.2, 1.6-1.8, 2.9-2.10
  4. 2/10, 10-12, Aulan, Om bindningar (forts.), Case, Specifikationer. PFOH 2.22-23, 2.33, 2.37, IPUSML 2.4, 3.7, (7.2)
  5. 2/10, 13-15, Aulan, Om programutveckling.
  6. 7/10, 13-15, Aulan (INSTÄLLD)
  7. 9/10, 13-15, Aulan, Om tupler, matchning och problemlösning. PFOH 2.24, (2.25), 2.26-2.27, 2.32-2.38. IPUSML 3.1-3.3, 4.1-4.4, 4.6. Hämta lösning 1 och lösning 2 i kapitel 4.
  8. 14/10, 15-17, Aulan (OBS! tid och dag - måndag), Om rekursion. IPUSML 1.4-1.5, 2.3. OH-bilder.
  9. 15/10, 13-15, Aulan, Om rekursion (forts.) PFOH kap. 3.7-3.16, 3.19-3.22, 3.31, 3.36-3.44
  10. 22/10, 13-15, Aulan (INSTÄLLD)
  11. 23/10, 10-12, Aulan, Om rekursion (forts.) PFOH kap. 3.18, 3.23-3.30, 3.33-3.35
  12. 23/10, 13-15, Aulan (INSTÄLLD)
  13. 29/10, 08-10, Siegbahnsalen, Ångströmlaboratoriet (OBS! tid och plats) Om listor och polymorfa typer. IPUSML 5, PFOH 4.2-4.12
  14. 29/10, 15-17, Siegbahnsalen, Ångströmlaboratoriet (OBS! tid och plats) Om listor och polymorfa typer. IPUSML 5, PFOH 4.13-4.19, 4.22-4.28
  15. 30/10, 10-12, Siegbahnsalen, Ångströmlaboratoriet (OBS! platsen) Om iteration (svansrekursion) och problemlösning. IPUSML 6, 17. PFOH 4.29-4.32. Hämta lösningen i kapitel 6 i IPUSML.
  16. 5/11, 10-12, Aulan, Om records och taggade datatyper. IPUSML 3.4-3.6, 7.1-7.6, PFOH 2.25, 5. Extra OH-bilder.
  17. 5/11, 13-15, Aulan, Om records och taggade datatyper. IPUSML 3.4-3.6, 7.1-7.6, PFOH 2.25, 5. Extra OH-bilder.
  18. 12/11, 13-15, Sal 2146 (OBS! platsen), Om abstrakta datatyper. IPUSML 8, PFOH 6. Extra OH-bilder.
  19. 13/11, 10-12, Sal 2247 (OBS! platsen), Om abstrakta datatyper. IPUSML 8, PFOH 6. Extra OH-bilder.
  20. 13/11, 13-15, Sal 2146 (OBS! platsen), Reservföreläsning, INSTÄLLD
  21. 19/11, 13-15, Aulan, Om högre ordningens funktioner. IPUSML 9, OH-bilder.
  22. 20/11, 10-12, Aulan, Om högre ordningens funktioner. IPUSML 9, OH-bilder.
  23. 20/11, 13-15, Aulan, Om problemlösning. IPUSML 13. Hämta lösningen i kapitel 13 i IPUSML.
  24. 26/11, 13-15, Aulan, Om sidoeffekter (in- och utmatning). IPUSML 14. OH-bilder, Exempelprogram.
  25. 27/11, 10-12, Aulan, Om Problemlösning. IPUSML 16. OH-bilder. Dessutom: Ingrid Gustavsson från studenthälsan talar om studiestress och ergonomi i datasalar.
  26. 27/11, 13-15, Aulan, Om webbprogrammering. OH-bilder. Exempelprogram: calc.html, calc.sml. Kör exempelprogrammet.
  27. 3/12, 13-15, Aulan, Reservtid, INSTÄLLD
  28. 4/12, 10-12, Aulan, Om sidoeffekter (tilldelning). IPUSML 18. OH-bilder.
  29. 4/12, 13-15, Aulan, Sammanfattning av språket ML. INSTÄLLD
  30. 9/12, 10-12, Aulan (OBS! dagen - måndag), Inför tentan - repetition, frågestund.

4. Laborationer och lektioner

4.1. Grupper och schema

Med några undantag hålls alla laborationer på torsdagar och alla lektioner på fredagar. Första laborationstillfället är torsdagen den 3:e oktober och första lektionstillfället fredagen den 11:e oktober.

Kontrollera vilken grupp du tillhör på gruppindelningssidan för DVP resp. ITP.

Uppgifter om schema och assistenter för varje grupp finns på respektive gruppsida: DVP 1, DVP 2, DVP 3, ITP A, ITP B.


4.2. Uppgifterna

Börja titta på labbarna i god tid. Labb 1 är en "uppmjukningslabb" som inte behöver lämnas in och där du kan göra de flesta uppgifterna direkt. Både labb 1 och labb 2 har labtillfälle den 3/10.

Absolut sista tidpunkt att lämna in laborationer och inlämningsuppgifter för årets kurs är torsdagen den 30:e januari 2003, klockan 08:00. För lösningar som lämnas in senare lämnar vi inga garantier.


4.3. Genomförande

Laborationer skall göras självständigt. 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 att bedömas när assistenterna tycker att de har tid - här lämnas alltså inga garantier.

Laborationerna skall lämnas in via ett webbformulär. Man kan komma åt formuläret från webbsidan med laborationsbeskrivningen. För inlämning behövs ID- och PIN-koder som kommer att skickas ut med e-post.

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) eller Komplettering (K). 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.

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

Det kommer också att bestämmas en absolut sista inlämningsdag för hela kursen. Laborationer som inte är inlämnade då kommer inte att bli bedömda alls. Man får då underkänt på kursen och får göra om labbarna nästa gång kursen går. (Läraren för nästa kurstillfälle kan dock besluta att acceptera labbarna för detta års kurs, så att man inte behöver göra om dem.)


4.4. Inlämningsuppgifter

Några laborationer har karaktären av inlämningsuppgifter. Det betyder att de är större än vanliga laborationer, att det inte finns något speciellt laborationstillfälle och inte heller någon lektionsgenomgång. I övrigt gäller samma villkor som för vanliga laborationer.


4.5. Fusk

Om man 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.

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 skall själv ha konstruerat den lösning du 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.

Vi kommer att använda automatiska metoder för att jämföra lösningar med varandra för att spåra fusk.


4.6. Kolla dina uppgifter

Här kan du hämta en sida där du får se vilka uppgifter du lämnat in, hur de rättats, ev. kompletteringar etc. Du ska inte använda detta formulär för att lämna in uppgifter! Formulär för inlämning av varje uppgift hittar du via webbsidan för respektive uppgift.

Status för ID med PIN

5. Examination

5.1. Allmänt

Examinationen består av två moment: Uppgifter och tentamen. För att bli färdig med kursen måste man ha godkänt på båda momenten.

Godkänd på uppgifter blir man när samtliga laborationer och inlämningsuppgifter lämnats in och godkänts. När uppgifterna är godkända registreras 2 av kursens 6 poäng i STUDOK.

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 ITP). När tentan är godkänd registreras 4 av kursens 6 poäng i STUDOK.

Tillräckligt bra resultat på tentan kan ge överbetyg (VG för DVP, 4 el. 5 för ITP). Detta betyg blir också betyget på hela kursen när uppgifterna är klara.


5.2 Tentamen

Tentamen på kursen ges onsdagen den 11:e december klockan 09-14 i Postscriptum sal 2. Omtenta kommer att hållas i mitten av våren 2003.

Tentan kommer att innehålla uppgifter av tre slag:

  1. Programmering
  2. Kodförståelse
  3. Teori

Det är inte meningen att ni skall behöva lägga mycket tid på att plugga inför tentan. Känner ni er säkra på uppgifterna så skall den förståelse för programmering och ML som ni har räcka för att klara tentan. För överbetyg är det bra att också kunna teori.

Här finns tentamensresultat, själva tentan, och lösningsförslag med lite uppgifter om poängsättningen.

Omtentan gavs den 26/4. Här finns tentamensresultat och själva tentan.


5.3 Gamla tentor

Några gamla tentor:

OBS! Lösningsförslagen ovan är utarbetade av den lärare som gjorde tentan. Jag kan inte garantera att det inte finns några misstag. Beträffande tentan HT99 finns några rättelser.

De tentor som ni kommer att få är mera lika tentorna från 98/99 och 99/00 än de från 01/02.


6. Länkar och referenser


lhe@csd.uu.se
The page has been accessed [an error occurred while processing this directive] times.

Valid HTML 4.01! Valid CSS!