Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt 2004 Kursprogram Kursens mål är att ge dig kunskaper om begreppen och principerna inom objektorienterad programmering och design tillämpning av ovanstående principer i Java kännedom om metoder för att utveckla program ökade kunskaper och ökad färdighet i programmering, särskilt i Java för att du ska kunna tillämpa objektorienterade metoder vid design och implementation av robusta, moderna programsystem Lämpliga kurser att läsa som påbyggnad är t.ex. Webservertillämpningsprogrammering, Internetprogrammering (ej fov-kurs), Databasteknik, Objektorienterad Analys och Design (ej fov-kurs). Se vidare Nadas websidor för vidareutbildningskurser, kurser för teknologer och för universitetsstuderande (högre kurser för de senare kategorierna kan sökas av vidareutbildningsstudenter: http://www.nada.kth.se/utbildning/yrke/ http://www.nada.kth.se/utbildning/grukth/ http://www.nada.kth.se/utbildning/su/ Kursinformation på Internet Aktuell information om kursen finner du på http://www.nada.kth.se/kurser/kth/2d4135 Detta är kursens huvudanslagstavla. Här läggs scheman upp, exempel från undervisningen, information om tentamen, ev. ändringar av tider och salar, m.m. Om du inte har tillgång till Internet utanför KTH så titta på kurshemsidan när du är här. Kursen har också en vanlig anslagstavla på Lindstedtsvägen 3, entréplanet. Kursfordringar Kursens omfattning är 5 poäng fördelade på en laborationsdel om 3 poäng och en tentamen om 2 poäng. Preliminärt datum för ordinarie tentamen är lördagen den 15 maj. OBS! Detta datum kan komma att ändras till ett senare! Omtentamen ges i augusti 2004. På tentamen ges teorifrågor samt små programmeringsuppgifter och små modellerings/designuppgifter. För godkänt krävs att minst hälften av uppgifterna är riktigt lösta. 1
Betyg Godkänd laborationsdel respektive tentamen betygsätts med något av betygen 3, 4 eller 5. Slutbetyget på kursen blir medelvärdet av de två, vi avrundar uppåt. Betyget på kursens labdel sätts på följande sätt. betyg 3 Endast obligatoriska uppgifter utförda. betyg 4 Obligatoriska uppgifter samt alla uppgifter märkta Extrauppgift 1 i anslutning till de obligatoriska laborationerna. betyg 5 Allt som krävs för betyg 5 samt alla Extrauppgift 2. För att uppmuntra till programmeringsarbete under kursens gång kommer obligatoriska programmeringsuppgifter avklarade före ordinarie tentamen ge bonus på tentamen, dvs extra poäng att lägga till uppnådd tentamenspoäng. Extrauppgifter för betygshöjning får redovisas i efterhand (efter tentan) och påverkar inte bonusen. Kursuppläggning Undervisningen på kursen är koncentrerad till två veckor under vårterminen 2004, veckorna 13 och 19. Varje sådan vecka är upplagd så att vi har lektioner på förmiddagarna måndag torsdag. Eftermiddagarna måndag torsdag tillbringas i datorsal då studenterna får arbeta själva med programmeringsuppgifterna men lärare finns tillgänglig för dem som behöver hjälp. Fredagarna får ägnas åt studier på egen hand. Datorsal finns reserverad 4 timmar och man får viss möjlighet att ställa frågor. Det är hård konkurrens om lokalerna på KTH och vidareutbildningskurserna schemaläggs alltid efter kurserna i de ordinarie KTH programmen. Det kan därför tyvärr bli nödvändigt att avvika en del från det ideala schemat med lektion på förmiddagen och lab på eftermiddagen. Ibland tvingas vi förskjuta schemat så att en annan dag än fredag är lektionsfri. Scheman läggs ut på kurhemsidan och sätts upp på kursens anslagstavla så snart de är klara. Arbetsbelastning Kursen omfattar 5 poäng vilket motsvarar 5 veckors heltidsarbete. Det kan naturligtvis bli mer eller mindre beroende på vilka förkunskaper man har. Tillträde till datorsalarna på Nada Alla studenter måste räkna med att programmeringsuppgifterna kommer att ta mer tid i anspråk än den schemalagda labtiden. Nadas datorsalar är tillgängliga för studenterna även mellan och efter kursveckorna så att man kan arbeta på egen hand så mycket man behöver. Salarna är öppna dygnet runt för studenter som läser hos oss. Man måste dock alltid ha ett passerkort för att komma in. Kvällar, nätter och helger behövs passerkortet även för att komma in i byggnaden. Passerkort och konton till Nadas datorer delas ut i samband med första lektionen till dem som inte har detta sedan tidigare. Den som inte deltar då får hämta kort och konto hos Delfi på Nada. Viss tillgång till handledning utanför schemalagd tid i datorsalarna finns. Se kurshemsidan under rubriken Hjälp. 2
Laborationer Laborationerna utgör en mycket viktig del av kursen. De utförs i grupper om två personer eller enskilt. Det bästa är om de två i gruppen har ungefär samma förkunskaper i programmering då resonerandet mellan gruppmedlemmarna utgör en viktig del av inlärningen. Om en grupp inte skulle fungera så kan man byta eller dela på sig och jobba enskilt. Det går naturligtvis också bra att diskutera uppgifterna i små grupper för att sedan programmera var och en för sig. Separata labanvisningar finns, dels allmänna och dels en för varje labmoment. Det finns även en Hederskodexför labarbete på Nada. Den delas ut på grönt papper samt finns tillgänglig på kurshemsidan. Laborationerna redovisas i första hand för lärarna under den schemalagda labtiden i datorsal, i andra hand enligt överenskommelse med kursledaren. Läsa på distans Det är möjligt att läsa kursen helt eller delvis på distans och göra laborationerna på sin egen dator. Den som väljer att läsa helt på distans behöver endast komma till KTH för att redovisa laborationerna och för att tentera. Det går förstås också bra att delta i lektionerna på KTH och programmera på annat håll. Det finns inte några lektioner för distansstudenter men OH-bilder från lektionerna kommer att göras tillgängliga (dock inte på kurshemsidan) och program från lektionerna läggas upp på kurshemsidan. I mån av tid svarar kursledaren på frågor på telefon och med epost. Då laborationerna redovisas måste man köra programmen, det räcker inte att redovisa utskrift av programkod. Den som har bärbar dator kan förstås ta med den till redovisningen. I annat fall måste programmen föras över till KTH så att de kan köras här. Alla som följer kursen får ett konto och en epostadress på KTH. Programmen förs över till kontot med kopieringskommando, epost eller något annat sätt. Det går också att ta med sig programmen hit på CD eller diskett. Laborationsredovisningen skall helst ske under den schemalagda tiden men det går att komma överens med kursledaren om annan tid. Registrering Alla studenter som går en kurs skall registreras på Nada i vår s.k. res-databas för bokföring av delresultat på kursen. Detta sker vid första datorlaborationen. De som väljer att inte använda Nadas datorer alls kan registreras av kursledaren. Registreringen sker genom Nada:s datorsystem enligt labanvisningarna. Observera att detta är en annan registrering än den som görs i Ladok då man blir antagen till en kurs. Varje student kan själv kontrollera vad som registrerats om honom/henne i ressystemet genom att inloggad på sitt eget konto på någon av Nadas Unix-datorer ge kommandot res show fovopad04 3
Schema Schemat för vecka 13 finns just nu (2004-03-13) på kurshemsidan. Schemat för vecka 19 läggs upp så snart det är klart. Lärare Ann Bengtson är kursansvarig. Rum: 1614, plan 6, Lindstedtsvägen 3 Telefon: 08-790 6209 E-post: ann@nada.kth.se. Preliminär kursplan Kan komma att ändras, stoff kan flyttas mellan veckorna, något moment kan tas bort, något kan läggas till, dock inga stora ändringar. Kursvecka 1, kalendervecka 13 Introduktion till objektorienterad programmering. Historik. UML-introduktion, speciellt klassdiagram Repetition/snabbgenomgång av grund-java enligt 2D4112 (inkluderar enkla Applets, enkla GUIs och enkel händelsehantering) Inre klasser, paket Arv, abstrakta klasser, interface Polymorfism, dynamisk bindning Abstrakta datatyper Klasshierarkier Objektsamlingar Trådar för animering Introduktion till Principer för god design och Designmönster Refactoring Metoder för OO-programutveckling, t.ex. XP (extreme Programming) Kursvecka 2, kalendervecka 19 Kanonisk form för klasser Lyssnargränssnitt, lyssnarklasser, Adapterklasserna Gränssnitten Serializeable, Cloneable och Runnable Testning, Junit MER om principer för god design MER om designmönster: exakt vilka vi tar upp är inte bestämt ännu... Mer om trådar: synkronisering, låsning,...?något om kommunikation: Sockets, RMI, CORBA??Ytterligare något område... 4
Litteratur Kursbok Xiaoping Jia Object Oriented Software Development Using Java Addison Wesley 2002(hard cover) 2003(paper back), andra upplagan ISBN: 0-321-210735 Om du redan har en grundläggande lärobok i Java som är omfattande, t.ex. Skansholm: Java Direkt eller Java Direkt med Swing så kan du kanske klara dig med denna bok kompletterat med material från Internet samt sådant som delas ut under kursens gång. Jag rekommenderar dock inte att köpa Java Direkt i stället för kursboken. Kursboken innehåller en genomgång av grundläggande Java som vänder sig till dem med programmeringsvana från ett annat språk. 5