2D1351, Programmeringsstil, 4 poäng, period 4 01/02
|
Denna sida:
|
Separata sidor:
|
|
|
|
|
Senaste nytt
- 2002-06-22
- Nu har kursens bästa projekt utsetts.
Joel har skrivit en kursanalys för den avslutade kursomgången.
- 2002-05-27
- OH-bilder från Decernos gästföreläsning Att hantera projekt i en konsultorganisation finns nu på sidan med gästföreläsningar.
- 2002-05-19
-
Nu finns information om hur tilldelning av hedersomnämnande går till.
På fredag finns det möjlighet att gå på möte och påverka datorintroduktionen för D02.
- 2002-05-02
- Information om examination och bokning av redovisningstider finns här.
OH-bilder från OM:s gästföreläsning Utvecklingen av den elektroniska handelsplatsen SAXESS finns nu på sidan med gästföreläsningar.
- 2002-04-29
- Gästföreläsning: Utvecklingen av den elektroniska handelsplatsen SAXESS, OM AB, torsdag 2/5 kl. 12.15-14.00 i sal D1.
- 2002-04-25
- Det blir en repetitionsföreläsning den 30/4 kl 08:15 i sal E1 där alla praktiska detaljer gällande implementationsdokument, slutdokument och examination gås igenom.
Referenserna uppdaterade med information om Javadoc.
- 2002-04-24
- OH-bilder från gästföreläsningarna Projekthantering på Front och Beställarkompetens finns nu på sidan med gästföreläsningar.
- 2002-04-18
- Information om att föra över designdiagram till Star Office och MS Word tillagt i FAQ:n.
- 2002-04-17
- Föreläsningen 23/4 är inställd.
Istället för en tävling kommer framstående projekt att ges ett hedersomnämnande.
- 2002-04-16
- Referenserna uppdaterade med dokumentation till Dia. Dia är ett bra verktyg för att rita UML-diagram.
Referenserna uppdaterade med en översikt av MIME (standard för hur ett e-postmeddelande kodas). Dokumentet är lite mer ingående än vad som krävs. Tack Andreas Frey för informationen!
- 2002-04-10
- Information om gästföreläsningar.
Föreläsningen 16/4 är inställd.
En exempelfil med skräppost finns nu tillgänglig. Se FAQ:n för mer information.
- 2002-03-19
- Seminarium om eXtreme Programming i morgon! (Ej obligatoriskt och ingår inte i kursen.)
En sida med dokument från förra årets kurs har lagts upp. Det är en dump från ett gammalt excelark och innehåller en del döda länkar.
Alla får uppskov med kravspecifikation till på måndag 25 mars p.g.a. kontrollskrivning i Logik. Du behöver inte längre anmäla detta till din gruppledare.
- 2002-03-14
- Automat-meshning av extremt simpla skruvar i skalmeshade strukturer är ett nytt spännande förslag till eget projekt som lämnats in av Scania.
En sida med vanliga frågor och svar finns här.
- 2002-03-13
- Gruppindelning och projekttilldelning finns här.
- 2002-03-12
- Programmeringstävling på NADA.
Detaljschema.
Lärare
Kursledare och föreläsare är
Joel Brynielsson,
joel@nada.kth.se.
Gruppledare för de tre grupperna är
- Ronnie Johansson,
rjo@nada.kth.se
- Jens Rathsman,
f97-jra@f.kth.se
- Joel Brynielsson,
joel@nada.kth.se
Eventuella frågor riktas i första hand till din gruppledare.
Då du skickar e-post till oss vill vi att du börjar din ärenderad (d.v.s. "Subject:") med "[prost] ".
Kursupplägg
Programmeringsstil består av en föreläsningsserie och ett projektarbete som löper parallellt där
stoffet från föreläsningsserien omedelbart kan tillämpas i det pågående projektet.
Föreläsningsserien är tvådelad:
- Kursledaren ger grundläggande föreläsningar i mjukvarukonstruktion som direkt anknyter till teknologernas projekt och de dokument som lämnas in under kursens gång.
- Ett antal gästföreläsningar ger praktiska exempel på hur mjukvaruprojekt bedrivs i industrin. Innehåll och schema för dessa föreläsningar kommer fortlöpande att anslås på kursens webbsida.
Projektet genomförs i projektgrupper om två personer som sätts samman slumpvis av kursledaren.
Det främsta motivet för den slumpvisa gruppindelningen är att man i sitt yrkesverksamma liv inte alltid har möjlighet att välja sina arbetskamrater.
Observera att endast de som har registrerat sig i res kommer att indelas i grupper och tilldelas projekt.
Du förväntas därför ha skrivit in dig i res senast tisdag 12 mars (se nedan för information om res).
Gruppindelning och projekttilldelning kommer att anslås på kursens webbsida den 13 mars.
Projekt
I årets upplaga av kursen blir teknologerna tilldelade något av följande projekt:
- Webbläsare med editor
- E-postfilter
- Presentationsprogram
- Chattprogram
Projekten kommer att presenteras närmare under kursens tredje föreläsning (13 mars).
Eget projekt
För den intresserade projektgruppen finns möjlighet att byta bort sitt tilldelade projekt mot ett eget projekt.
Har ni en specifik idé som ni vill realisera så kan ni ansöka hos er gruppledare om att få göra ett eget projekt.
Några lärare och forskare har hört av sig med ett antal skarpa projekt som kan definieras som egna projekt.
Det här är chansen för dig som vill ha en riktigt intressant uppgift med en intresserad uppdragsgivare.
Projektkrav
Projektet förväntas uppfylla följande:
- Det skall vara ett sammanhängande program med ett grafiskt användargränssnitt.
- Programmet skall avspegla och uppfylla de dokument som lämnats in.
- Omfattningen av projektet skall motsvara fyra högskolepoäng.
- Implementering skall ske i Java.
Projektet demonstreras och examineras i datorsal i vecka 20.
Dokument
Under kursen förväntas projektgruppen lämna in följande dokument:
- 22 mars
- Kravspecifikation.
- 19 april
- Designdokument.
- 3 maj
- Implementationsdokument.
- 13-16 maj
- Slutdokument (inlämnas i samband med examinationen).
Inlämning av dokument sker via webblänk som e-postas till gruppledaren.
Dokumenten skall vara välskrivna, snygga, "säljande" och läsbara på webben.
Ett dokument anses läsbart på webben om det tillåter läsaren att välja webbläsare och operativsystem efter eget behag (HTML- och PDF-dokument är okej, men Word- och Postscript-dokument är förbjudna).
Alla brev med dokumentinlämning besvaras från gruppledaren med återkoppling.
Brister i inlämnade dokument skall därefter åtgärdas.
Om bristerna är ringa räcker det med att uppdatera i slutdokumentet (där alla de tidigare inlämnade dokumenten ingår).
I annat fall skall komplettering göras inom en vecka från det att gruppledaren så begär.
Detaljer om dokumentens utformning och innehåll kommer att gås igenom i kursens föreläsningsserie.
Kurslitteratur
Kursbok
Föreläsningarna i kursen tar upp valda delar av följande bok:
-
Ian Sommerville. Software Engineering. 6:e upplagan, Addison-Wesley, 2001.
ISBN 0201-39815-X. 720 sidor.
Pris: 600 kr på kårens bokhandel.
Boken har en omfattande hemsida med exempelkod, inledande kapitel, ordlista, OH-bilder, m.m.
"Software Engineering" är en bra och heltäckande bok när det gäller mjukvarukonstruktion som i flera avseenden går utanför omfattningen av denna kurs.
Förutom att boken ger en bra framställning av området har den också valts för att ge teknologen en användbar referens för framtiden.
Litteraturen kommer inte att tenteras av och det står studenten fritt att välja annan (eller ingen) litteratur om så önskas.
För den som vill äga en bra bok i mjukvarukonstruktion vill vi dock varmt rekommendera "Software Engineering" av Sommerville.
I årskurs tre kommer ytterligare två högskolepoäng att ägnas åt mjukvarukonstruktion och då kommer Sommerville att komma till användning.
Läs om Nadas omläggning av datalogikurserna på D-linjen för mer information.
Java
För den som vill ha en bra och grundläggande svensk bok i Java rekommenderas Skansholm som komplement till Deitel och Deitel som användes i INDA.
-
Jan Skansholm. Java direkt med Swing. 3:e upplagan, Studentlitteratur, 2002.
ISBN 91-44-02228-X. 680 sidor.
Pris: 400 kr på kårens bokhandel.
Uppföljaren till Deitel och Deitel är en tjock bok med mycket exempelkod. Boken skall mer ses som en exempelsamling än en bok man läser från pärm till pärm. För den som tycker om att lära sig via exempel är den mycket bra med beskrivningar av många av de tyngre API-klasserna.
-
Harvey Deitel, Paul Deitel, Sean Santry. Advanced Java 2 Platform - How to Program. Prentice Hall, 2002.
ISBN 0-13-089560-1. 1496 sidor.
Vikt: 3,3 kg
Pris: 700 kr på kårens bokhandel.
Referenslitteratur
Under kursen har följande två böcker visats upp. De innehåller många bra tips för den som utvecklar mjukvara och är skrivna av några mycket erfarna programmerare.
-
Brian W. Kernighan, Rob Pike. The Practice of Programming. Addison-Wesley, 1999.
ISBN 0-201-61586-X. 288 sidor.
Bokens hemsida.
-
Andrew Hunt, David Thomas. The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley, 1999.
ISBN 0-201-61622-X. 352 sidor.
Pris: 445 kr på kårens bokhandel.
Bokens hemsida.
Schema
KTH:s centrala schema gäller med två undantag. Föreläsningarna 16:e och 23:e april är inställda.
En lokal kopia från KTH:s schemagenerator finns här.
Eventuella schemaändringar kommer att annonseras under rubriken "Aktuellt" ovan.
OBS! I denna kurs är det mycket viktigt att hålla sig informerad om eventuella schemaändringar som kan tänkas uppstå p.g.a. osäkerheten när det gäller gästföreläsningsdelen. Sådana ändringar annonseras via kursens webbsida.
Detaljschema
- 2002-04-30
- Implementationsdokument, slutdokument och examination. Detta är en repris av föreläsningen från 2002-04-22 med en ordentlig frågestund efteråt.
- 2002-04-22
- Implementationsdokument, slutdokument och examination.
(Andra timmen föreläste Keith Curtis från Microsoft enligt gästföreläsarschemat.)
- 2002-03-20
- Disposition av designdokument. Frågestund.
- 2002-03-19
- Design.
Sommerville: Kapitel 10 och kapitel 12.
- 2002-03-18
- Fortsättning kravspecifikation med ett konkret exempel från förra årets kurs. Mer om mjukvaruprocesser och mjukvaruprocessmetoder.
Sommerville: Kapitel 3 och kapitel 19.4 (Cleanroom Process).
- 2002-03-13
- Projekttilldelning och grupptilldelning. Karakteristik för de olika projekten. Presentation av skarpa projekt med en titt på skillnader i användarkrav och systemkrav.
Sommerville: Tillbakablick på kapitel 5.
- 2002-03-12
- Riktlinjer för kravspecifikationen.
Sommerville: Kapitel 3 t.o.m. 3.1.1 (vattenfallsmodellen) och kapitel 5 (förutom 5.3.1 - 5.3.3).
- 2002-03-11
- Introduktionsföreläsning och genomgång av kursprogrammet. Inbjudan att deltaga i en programmeringstävling på NADA.
Sommerville: Kapitel 1.
- 2002-02-19
- Kursinformation i samband med sista INDA-föreläsningen.
Terminalövningar
Sex timmar i veckan finns schemalagda laborationer i salarna Grå, Karmosin och Vit (plan 5 i E-huset).
Här är det meningen att projektgruppen kan ställa frågor rörande projektet, och då främst frågor rörande implementering i Java.
Där skall alltid finnas minst två handledare närvarande att fråga om hjälp enligt aktuellt assistentschema.
Som kösystem vid terminalövningarna används SimaManager.
Observera att det inte är meningen att man skall hinna göra allt sitt arbete under labbpassen. Tiden är avsedd främst för frågor.
Förutom den schemalagda tiden finns även
allmän handledare
tillgänglig i terminalsalarna på plan 4 vissa tider varje vardag.
Kursregistrering
Så snart kursen börjat måste du registrera dig på den. Detta görs med
kommandot
res checkin prost02
på någon av Nadas unixdatorer.
Du förväntas ha registrerat dig senast tisdag 12 mars!
Du bör också ge kommandot
course join prost02
Detta kommando gör tre saker:
- Du får se eventuella nya meddelanden från kursledaren varje gång du
loggar in.
- Du får kursens användarmiljö, det vill säga alla initieringar
som kursledaren tycker att kursdeltagarna bör ha görs vid varje inloggning.
- Du får en speciell kurshemsida.
När du är klar med kursen ger du kommandot
course leave prost02
för att återställa allt.
Om du inte läser på D-programmet måste du anmäla dig till kansliet/studievägledningen för ditt utbildningsprogram.
Ingen förhandsanmälan ska göras till Nada. Det finns ingen platsbegränsning.
Betyg
Som slutbetyg på kursen ges betyget G (godkänd) eller U (underkänd). För att bli godkänd krävs:
- att gruppen gör alla inlämningar i tid (till korrekt gruppledare och med korrekt webblänk),
- att gruppen är närvarande och presenterar sitt projekt vid examinationen,
- att gruppen gör eventuella kompletteringar enligt gruppledares anvisningar och inom angivna tidsramar,
- att gruppledaren anser att gruppens projekt motsvarar fyra högskolepoäng.
Teknolog som underkänns på kursen får ej tillgodoräkna sig uppnådda delresultat i ny kursomgång eller i annan kurs.
Resultat
När du är inloggad kan du se vilka kursmoment du är godkänd på genom att ge kommandot
res show prost02
Hederskodex
Programmeringsstil examineras genom inlämning av dokument och genom implementation av ett större projekt i Java.
Dokumenten förväntas ni författa själva med referenser till de verk som ni bygger er framställning på.
När det gäller projektet så är det många gånger vettigt att använda material som någon annan gjort för att åstadkomma det färdiga resultatet.
Låna gärna kod till perifera bitar, men skriv det centrala själv.
Grundregeln är att det jobb du och din labbkamrat gör i kursen ska ni göra själva.
Vid examinationen ska båda i gruppen kunna redogöra i detalj även för vad labbkompisen skrivit.
Det är tillåtet att använda någon annans programkod förutsatt att följande villkor uppfylls:
- Om gruppen fått hjälp med mer än bara någon enstaka rad i programmet ska ni ge ett skriftligt erkännande till den som hjälpte till, lämpligen i form av en kommentarrad överst i programmet, som talar om vem som hjälpt dig med vad.
- Du måste förstå hela den färdiga lösningen, även de delar ni fått hjälp med.
För både dokument och programkod gäller:
- Det är din skyldighet att göra examinerande lärare uppmärksam på de delar som du inte gjort själv.
Varje annan form av samarbete och utnyttjande av andras lösningar betraktas som fusk och kommer att handläggas av KTH:s disciplinnämnd som gör en utredning och avgör påföljd.
Notera att vi i denna kurs alltså uppmuntrar till användning av befintliga programbibliotek så länge detta görs synligt. Att använda extremt stora delar programkod som ni inte gjort själva är inte fusk så länge som ni inte tar åt er äran för jobbet, men ni kommer inte att bli godkända på kursen om ert egna programmeringsarbete därmed är ringa. En mycket grov riktlinje är att ni skall ha skrivit åtminstone 50% av programkoden själva.
Observera att alla färdiga projekt lagras och jämförs med andra inlämnade uppgifter på Nada för att motverka kopiering.
Synpunkter på kursen
Vi är tacksamma för alla synpunkter på kursen, och då helst under kursens gång så att vi hinner göra ändringar innan det är för sent. Synpunkter lämnas direkt till lärarna eller genom de kursutvärderare som teknologerna själva utser.
En datorstödd kursutvärdering kommer att göras efter kursens slut. Denna ligger sedan till grund för en kursanalys.
Referenser
Stöd för dokumentskrivande
Implementering
Övrigt
- Formella metoder
För den intresserade finns här en länksamling med information om formella metoder.
Upp till kursens webbsida.
Sidansvarig: Joel Brynielsson <joel@nada.kth.se>
Senast ändrad 22 juni 2002
Tekniskt stöd: <webmaster@nada.kth.se>