Institutionen för informationsteknologi

Programmeringsmetodik 2 VT-04

Nyheter

Här hittar du aktuell information om kursen. Tag för vana att läsa denna sida regelbundet!

  • (2004-05-24) På grund av att datorsystemen varit oåtkomliga under slutet av förra veckan så är stoppdag för deluppgift 4 och 5 flyttad till 1:a juni klockan 08:00.
  • (2004-05-10) Uppdaterad information om tentorna! Dessutom möjlighet till alternativ tid för hemtentan: 26-27:e maj (onsdag-torsdag).
  • (2004-05-10) OH-bilder om profilering, optimering och scripts upplagda, se länkavsnittet.
  • (2004-03-23) Hemtentan inträffar den 7-8:e juni (måndag-tisdag).
  • (2004-02-24) En sida med information från assistenterna har lagts till här.
  • (2004-02-18) Problemen med institutionens installation av libxml2 som jag nämnde på föreläsningen i dag skall redan vara lösta - i varje fall om man kör på SunRay-maskinerna i terminalrummen (eller egentligen deras servrar).
  • (2004-02-13) Missade du Bengt Jonssons föreläsning så finns kopior av hans utdelade material i en tidskriftssamlare utanför dörren till Roland Bols rum (holken plan 3 hus 1).
  • (2004-02-12) Testfiler i PPM-format finns tillgängliga, se avsnittet om uppgifter nedan.
  • (2004-02-04) En lista med alla grupper finns upplagd.
  • (2004-02-03) Ett avsnitt med användbara länkar finns i slutet på sidan. Flera länkar kommer att läggas in eftersom.

Kursstart

Första kurstillfället är en föreläsning måndagen den 19:e januari klockan 10:15 i sal 1211.

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.

Kursens syfte

Kursen syftar till att ge en fördjupad kunskap om och färdighet i programmeringsmetodik genom att utföra ett större programmeringsprojekt med hårda krav på kvalitet hos kod och dokumentation.

Se även den formella kursplanen för DVP-kurs, för fristående kurs.

Schema och kursupplägg

Denna kurs genomförs i samarbete med kursen Programvaruteknik (PVT). Studenter på PVT kommer att inom ramen för sin kurs utforma kravspecifikationer som skall användas vid lösning av deluppgift 2 och 3 av inlämningsuppgiften i vår kurs. De kommer dessutom att ansvara för kvalitetskontroll (testplanering och kodinspektion) av lösninarna till samma deluppgifter.

De två kurserna har vissa föreläsningar gemensamma. Ett gemensamt schema finns här.

Under period 3 kommer kursen att genomföras i låg fart (10% arbetsinsats). Under period 4 ökar takten (30% arbetsinsats).

Kurslitteratur

Kursbok är "The Pragmatic Programmer: From Journeyman to Master" av Andrew Hunt och David Thomas, Addison-Wesley, ISBN 0-20161622-X, samt kompendium utgivet av institutionen som kan köpas på UTHgård. (Det finns en risk att kompendieupplagan är för liten - skulle kompendiet ta slut så hör av dig till Lars-Henrik så ordnar han en kopia.)

Uppgifter

Inlämningsuppgiften finns här. För lösningen av uppgiften gäller ett flertal kodnings- och dokumentationsregler. De som läser kursen som enstaka kurs (5p) kommer att få göra kompletterande uppgifter.

En del information som du behöver för att kunna lösa uppgiften (t.ex. information om XML-formatet och XML-parser) finns inte i uppgiftsbeskrivningen utan på denna webbsida.

Inlämningsuppgiften skall lösas i grupper om 3 (undantagsvis 2) personer. Dessa grupper skall anmälas till någon av assistenterna omgående (Namn och e-mail på samtliga i gruppen). Skulle du sakna någon att arbeta med så meddela detta så skall vi fixa grupper åt er.

Deluppgifter som är godkända behöver inte nödvändigtvis vara 100% korrekta. Mindre fel ger inte komplettering utan skall åtgärdas till redovisningen av nästa deluppgift. Du bör därför hämta ut din rättade uppgift snarast, även om den blev godkänd. Har ev. kommentarer inte åtgärdats i nästa redovisning får du "riktig" komplettering.

Ni skall lämna i en redovisning på papper som innehåller dokumentation och källkod (se uppgiftsbeskrivningen för detaljer). Vid inlämning skall din grupp även tillhandahålla en tar-fil med källkoden till programmet. Lämpligen anges fullständigt namn (inkl. katalog) till denna tar-fil i början av redovisningen så att assistenterna kan hitta den. När den packas upp skall innehållet hamna i en katalog med samma namn som gruppen. Skriver man make i denna katalog så skall tracern byggas (ej nödvändigt för deluppgift 1).

Testdata

Större testfiler i ppm-formatet hittar du på Unix-systemet i katalogen /it/kurs/pm2/vt04/ppm. Vill du titta på innehållet i en ppm-fil kan du använda programmet xview. Mindre testfiler kan du hämta från sista sidan i uppgiftsbeskrivningen eller t.o.m. konstruera för hand.

XML

Läs en XML-presentation (OH-bilder) eller en kort introduktion till XML. Annars finns massor med information på webben. Gör t.ex. en Google-sökning efter XML tutorial.

Exempelfiler för raytracern i XML-format kan du hitta i katalogen /it/kurs/pm2/vt04/xml. DTDn till raytracerfilerna finns under http: //www.it.uu.se/edu/course/homepage/pm2/VT04/pm2gl.dtd.

Vi kommer att använda XML-parsern libxml2 för att läsa XML-filer enligt DOM (document object model). Det finns en introduktion till libxml2, även i pdf-format. libxml2 finns installerad på institutionens Unix-system. När du kompilerar och länkar ett program som använder libxml2 så behöver du ge gcc optionerna -I /it/sw/www/include/libxml2 -L /it/sw/www/lib -l xml2. I katalogen /it/kurs/pm2/vt04/xmltest finns ett program xmltest.c som är baserat på programmet i XML-introduktionen ovan. Det parsar och validerar en XML-fil samt skriver ut elementnamnen i filen med indentering som motsvarar datastrukturen i filen.

För att titta på eller redigera XML-filer kan man använda XML-editorn xmlpro. Den kan köras från /it/kurs/pm2/vt04/xmlpro. Dokumentation finns i pdf-format. Innan du kan köra xmlpro måste du kopiera licensfilen /it/kurs/pm2/vt04/xmlpro2.01/xmlpro.prp till den katalog som du har som arbetskatalog när du kör xmlpro.

Inlämningsdagar för deluppgifter

  • Del 1: 16:e februari klockan 08:00.
  • Del 2: 2:a april klockan 12:00
  • Del 3: 7:e maj klockan 12:00
  • Del 4: 24:e maj klockan 08:00
  • Del 5: 24:e maj klockan 08:00

Observera att för lösning av deluppgift 2 och 3 kommer studenter på PVT att utforma en kravspecifikation, vilken skall användas som underlag för programmeringen. De kommer också att göra kvalitetskontroll (testplanering och kodinspektion) av dessa deluppgifter. För att samarbetet med PVT skall gå smidigt är det mycket viktigt att ni löser uppgifterna i tid.

Det kommer också att finnas en slutlig deadline för inlämning av uppgifter inklusive kompletteringar. Lösningar som lämnats in efter denna slutliga deadline kommer inte att rättas!

Examination

Examinationen består förutom en bedömning av lösningarna av inlämningsuppgiften av en två dagaras hemtenta. På hemtentan kommer du att få frågor som rör din egen lösning av inlämningsuppgiften (t.ex. "Skissa hur du skulle ändra ditt program för att införa följande ni funktionalitet..."). För godkänt betyg krävs godkänt på både inlämningsuppgiften och hemtentan.

Alla hjälpmedel är tillåtna för att lösa hemtentan, utom att fråga någon annan. För att försvåra detta får alla i en grupp olika tentor, men framförallt är det en förtroendefråga.

Vill man ha väl godkänt betyg krävs förutom detta att man skriver en frivillig salstenta med mera teoretisk inriktning där frågorna avser material som berörts i kurslitteraturen - speciellt kompendiet. Betyget VG får man om man fått VG på två av dessa tre examinationsmoment (inlämningsuppgift, hemtenta, salstenta).

Hemtentan kommer att ske den 7-8:e juni, alternativt den 26-27:e maj. Ingen anmälan krävs för tentan den 7-8:e juni, men om du vill skriva den 26-27:e maj så måste du höra av dig minst en vecka innan! Tentan kan hämtas ut personligen i rum 1322 mellan klockan 08:30 och 09:00. Om du inte hämtar tentan så skickas den med e-post minuterna efter klockan 09:00. Tentan skall lämnas in i mitt postfack senast klockan 16:00 dagen efter. Om du hämtar tentan personligen så skall du visa upp kårleg. Om du får tentan per e-post måste du besöka Lars-Henrik och visa upp kårleg innan resultatet registreras. Skulle du få underkänt på hemtentan eller avstå från att skriva den så ordnas omtenta i omtentaperioden i augusti respektive januari efter personlig överenskommelse med Lars-Henrik.

Den frivilliga tentan är den 1:a juni, kl. 08-13 i Polacksbackens skrivsal. Till denna tenta måste du anmäla dig till kansliet enligt vanliga regler. Eftersom man inte kan höja ett godkänt betyg så ligger det i sakens natur att det inte blir någon omtenta på den frivilliga tentan.

Några gamla tentor: Hemtenta 980814, Frivillig tenta 971024.

Fusk

Om man använder andra gruppers 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. Samma sak gäller om olika grupper samarbetar om lösningarna. 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 mellan grupperna, men ni skall i gruppen själva ha konstruerat de lösningar 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.

Uppdaterad  2004-05-26 13:39:16 av Lars-Henrik Eriksson.