Projekter i forbindelse med Grundlæggende Programmering, efterår 2000
21. december Nu er der lavet tidsplan for
den mundtlige fremlæggelse torsdag den 11. januar.
16. december Eksempler: brug af CardLayout og brug af dialog-bokse.
2. december: Brug gerne GPs spørgsmål-svar
system til at stille
tekniske spørgsmål (og tjek om ikke dit
spørgsmål allerede er besvaret der).
I forbindelse med Grundlæggende Programmering følger syv forslag til
konstruktionsprojekter. Man skal beskrive, designe og realisere et
system der faktisk kører, men hvor man formentlig udelader en række
faciliteter, som ville være ønskelige i `den virkelige verden'.
Der er andre projektforslag af varierende sværhedsgrad på projektbørsens
hjemmeside. Af særlig interesse for Grundlæggende Programmering
er projektkurserne Søgemaskiner
og Apparatsoftware.
Projekterne bør laves i grupper på 2-4 personer. Af praktiske grunde
må vi begrænse antallet af grupper til ca. 8.
Projekterne er åbne for alle studerende, fra SWU, Diplom, INT, MMT,
TIT, DKM og EBUSS. Hver projektgruppe kan med fordel involvere
studerende med forskellig baggrund og interesser, og må gerne bygge på
arbejdsdeling, så forskellige studerende står for design og
realisering af brugergrænseflade, programmering af den tekniske
funktionalitet, afprøvning og kvalitetssikring, osv. Alle skal dog
medvirke til rapportskrivning (f.eks. udarbejdelse af dokumentation).
Projektforslagene angivet nedenfor er ment som inspiration. Det er
meningen at I selv skal præcisere indhold, mål, ambitionsniveau og
tidsplan for projektet. Dette er nemlig indholdet af projektaftalen,
der skal udarbejdes i løbet af de to første projektdage.
Da de fleste projektforslag nedenfor involverer brug af Internet,
webserver, databaseserver og lignende vil vi i projektperiodens første
dage holde indledende forelæsninger om disse emner:
- Mandag den 27. november 2000 kl 10-12 i auditorium 0.10
- Databaseadgang fra Java-programmer og appletter (SQL og JDBC)
- Plancher fra forelæsningen (PDF)
- Suns officielle
JDBC-tutorial
- Dokumentation af klasserne i standard-pakken java.sql.
- Arkivet postgresql.jar indeholder Postgresql-driveren til JDBC.
Her er postgresql.jar til JDK 1.1 (som på
CDROMmen) og her er postgresql2.jar til JDK
1.2 og 1.3. Til
almindelige programmer der bruger JDK 1.1 og MS Windows 95/98
skal denne pakke ligge på
klientmaskinen under C:\...\jdk118\lib\postgresql.jar
og være nævnt i CLASSPATH. På IT-Cs maskiner,
under JDK 1.2 og 1.3 skal man
omdøbe postgresql2.jar til postgresql.jar og lægge den
i C:\bin\jdk13\jre\lib\ext\postgresql.jar; det er ikke nødvendigt at sætte CLASSPATH.
For appletter der bruger
JDBC skal pakken (for JDK 1.1) ligge (udpakket med jar xf
postgresql.jar) på webserveren i det katalog som indeholder
appletten.
- Eksempelprogrammer:
StudieApplet.html, StudieApplet.java, StudierDB.java, UtilDB.java,
Studie1DB.java,
Disse eksempler benytter databaseserveren ellemose.dina.kvl.dk på KVL,
med brugernavn gp og databasenavn gp.
- Databaseserveren på IT-C hedder mysql.it-c.dk. Projektgruppe nummer X har
brugernavn grpX og databasenavn grpX (og et løsen).
- Tilgå en databaseserver (default mysql.it-c.dk) med appletten PsqlFrontend (virker kun med Netscape).
Kildetekst til PsqlFrontend:
ClosableFrame.java,
LabeledTextField.java,
PsqlFrontend.java
- Her er dokumentation
til Postgres, blandt andet syntaksen for forespørgselssproget SQL.
- Tirsdag den 28. november 2000 kl 10-12 i auditorium 0.10
- HTML, maskinel generering af websider, webserver-skripts
(servletter) i Java
- Udfærdigelse af projektrapport
- Fredag den 1. december kl 12.00 er fristen for
indlevering af projektbeskrivelser (underskrevet af studerende og
vejledere). Projektformularen fås på intranettets studieadministrationsside.
- Fredag 22. december kl 12.00 er fristen for aflevering
af det færdige projekt. Bemærk at dette er en fast grænse:
studieadministrationen lukker kl 12.00 den dag.
Vi har lavet et lille antal øvelser i at lave appletter og
servletter som tilgår Postgres databaser.
Slides fra projektbørsen.
Projekteksamen holdes torsdag 11. januar 2001. Censor er lektor
Jørgen Steensgaard-Madsen fra Institut for Informationsteknologi,
Danmarks Tekniske Universitet.
Eksamen foregår i lokale 3.08.
Eksamensplanen ser sådan ud:
| Gruppe | Antal | Minutter | Start | Slut
|
|---|
| 1 | 3 | 40 | 9.00 | 9.40
|
| 2 | 3 | 40 | 9.45 | 10.25
|
| 3 | 3 | 40 | 10.30 | 11.10
|
| 4 | 4 | 45 | 11.15 | 12.00
|
| 5 | 3 | 40 | 12.05 | 12.45
|
| |
| 6 | 3 | 40 | 13.20 | 14.00
|
| 12 | 1 | 25 | 14.05 | 14.30
|
| 8 | 2 | 35 | 14.35 | 15.10
|
| |
| 9 | 3 | 40 | 15.40 | 16.20
|
| 10 | 1 | 25 | 16.25 | 16.50
|
| 11 | 2 | 35 | 16.55 | 17.30
|
Ved projekteksamen fremlægger gruppen i fællesskab rapporten,
hvorefter vejledere og censor stiller spørgsmål til gruppen eller til
de enkelte gruppemedlemmer. Derefter gives der karakter. Sørg for at
alle i gruppen får lejlighed til at sige noget og til at svare på
spørgsmål. I princippet kan der gives individuelle karakterer.
Der er afsat 25 minutter til grupper med 1 person, 35 minutter til
grupper med 2 personer, 40 minutter til grupper med 3 personer og 45
minutter til grupper med 4 personer inklusive votering.
Der er dannet følgende grupper
- Gruppe 1, online registrering af kursusønsker: Anne Mette Mørkbak
(anne@it-c.dk), Sissel Elsman (sissel@it-c.dk), Nana Dencker Bargisen
(ndb@wapportal.dk).
- Gruppe 2, biografbilletter: Henrik L. Sørensen (hls@it-c.dk), Sten
Graff Larsen (graff@it-c.dk), Kevin Hechtl (kevinh@it-c.dk).
- Gruppe 3, meddelelsessystemet: Anders Kron (kron@it-c.dk), Camilla
B.S. Petersen, (camillas@it-c.dk) Marie Louise Nielsen
(mlouise@it-c.dk).
- Gruppe 4, biografbilletter:
Christoffer Andreas Viggo Soya (christoffer@it-c.dk),
Mathilde Luidor Uhrskov (mathilde@it-c.dk),
Anne Katrine Eggert Eriksen (katrine@it-c.dk),
Ursula Maegaard (ursula@it-c.dk).
- Gruppe 5, online kursusønsker: Christian Elbrandt
(celbrandt@it-c.dk), Martin Schiøtz Jensen (msc@it-c.dk) og Nikolaj
Hansen (nikolajhansen@hotmail.com).
- Gruppe 6, spil med central rangliste: Rasmus Espholm
(rasesp@yahoo.com), Anders Bonde Jensen (abjensen@worldonline.dk),
Simon Kohrtz (kohrtz@it-c.dk).
- Gruppe 7, biograf:
Morton P. Cristiansen (morton_c@worldonline.dk)
- Gruppe 8, online kursusønsker: Henrik Hansen (hih@it-c.dk), Morten
Holm (mholm@it-c.dk).
- Gruppe 9, online pizzabestilling: Hai Son Nguyen
(hai@it-c.dk), Hanus (reinert@it-c.dk) og Kristoffer (krihu@it-c.dk).
- Gruppe 10, server til distribuerede spil: Elena Johansen
(elena@it-c.dk).
- Gruppe 11, biograf: Simon Faarup (simonfaarup@it-c.dk) og Brian
Sørensen (brs@it-c.dk).
- Gruppe 12, booking i rejsebureau: Jeppe Risum (jepper@mobolixnet.dk).
Projektforslag
Projektforslag 1: Online registrering af studerendes kursusønsker
Beskrivelse:
Formålet er at lave online registrering af kursusønsker for studerende
på IT-højskolen. Der er en database med kurser der udbydes og hvilke
kurser de forudsætter. Derudover er der en database med studerende og
de kurser de allerede har haft.
Opgaven er at lave online registrering af kursusønsker ved hjælp af
cgi-scripts (servlets). Brugeren indtaster sine ønsker, som behandles
af et eller flere Java-programmer der kører på en WEB
server. Java-programmerne opdaterer databaserne og sender html-sider
tilbage med oplysninger om de registrerede ønsker.
Opgaven gør brug af databaseteori, brugergrænseflader, design og
programmering. Projektet kan evt. indeholde en lille foranalyse
og/eller kravspecifikation, hvor studieadministrationen på IT-C samt
studerende kan interviewes i forbindelse med funktionalitet og
brugergrænseflade.
Evaluering: Skriftlig rapport med design, konstruktion og beskrivelse
af program og database, samt mundtlig eksamen.
Hjælpemidler: Databaseserver, evt. Apache web server.
Projektforslag 2: Salg af biografbilletter (flere billetluger)
Beskrivelse:
Formålet er at lave et billetsalgssystem, der kan bruges i en biograf
med flere billetluger. Programmet i hver enkelt billetluge kan
f.eks. køre som en applet, der tilgår en fælles database (eller
lignende fælles server) via Internettet. I denne udgave af projektet
kunne også indgå overvejelser om hvilke yderligere faciliteter der
kræves for at biografkunder kan købe deres billetter på WWW inden de
går hjemmefra. Ellers gælder mange af de samme forhold som for
projektet `Salg af biografbilletter (1 billetluge)'.
Evaluering: Skriftlig rapport med design, konstruktion og beskrivelse
af program og database, samt mundtlig eksamen.
Hjælpemidler: Databaseserver, og evt. Apache web server.
Projektforslag 3: Fælles beskedsystem for en arbejdsplads
Beskrivelse:
Formålet er at lave et webbaseret system med hvilket medarbejderne på
en arbejdsplads kan orientere hinanden om hvornår de er til møde, på
forretningsrejse, er syge, arbejder hjemme, er på ferie, osv. Man
skal kunne indtaste og læse beskeder ved hjælp af en almindelig
webbrowser. Systemet skal kunne vise alle dagens beskeder (uanset
hvem de vedrører) og skal kunne vise alle beskeder om en given
medarbejder (uanset hvilke dage de vedrører). Systemet kan enten
baseres på HTML og webserver-skripts, eller på Java-appletter.
Evaluering: Skriftlig rapport med design, konstruktion og beskrivelse
af program og database, samt mundtlig eksamen.
Hjælpemidler: Databaseserver og evt. Apache web server.
Projektforslag 4: Udklipsbureau
Beskrivelse:
At lave et webbaseret udklipsbureau, hvor man kan registrere artikler
under diverse emnekategorier. Det skal være muligt at søge efter
artikler givet diverse søgekriterier. Et udklipsbureau gennemlæser
daglig mange aviser og blade for at finde omtaler af virksomheder,
institutioner, lande, personer, og forskellige emnekategorier
(uddannelsesforhold, udlandshandel, sociale forhold, finans, økonomi,
miljø, ...). For hver artikel i hver avis registreres avis, sidetal,
overskrift, forfatter (hvis angivet) og omtrentlig artikellængde for
hvert relevant emne. Udklipsbureauets kunder (virksomheder,
organisationer, ambassader, ...) bruger udklipsbureauets database til
at finde bestemte slags artikler, f.eks. om virksomheden selv, om
konkurrenter eller om branchen.
Det ville være smart med en webgrænseflade så kunderne løbende kan se
hvad der er blevet lagt ind. Overvej organisering af dataene (central
database), brugergrænsefladen for de ansatte `avislæsere' og
brugergrænsefladen for kunderne.
Udvidelsesmuligheder: (1) Hver artikel skannes og arkiveres som
billede så den kan læse direkte fra nettet. I så fald skal kundens
tilgang til artiklen registreres så der kan betales til avisen. (2)
Hvordan skal udklipsbureauet organiseres hvis det henviser til
websteder i stedet for papiraviser? Hvad med websteder der opdateres
hele tiden, så det samme link i morgen henviser til en helt anden
artikel?
Evaluering: Skriftlig rapport med design, konstruktion og beskrivelse
af program og database, samt mundtlig ekamen.
Hjælpemidler: Databaseserver og evt. Apache web server.
Projektforslag 5: Spil og rangliste
Beskrivelse:
Formålet er at implementere et simpelt spil som en applet. Det er
vigtigt, at man kan blive målt på, hvor god man er til at spille
spillet, idet der også skal implementeres en central rangliste. Der
skal implementeres et eller flere simple spil, hvor spillernes
duelighed kan måles, f.eks. (yatzi, memory, minestryger, ...). Spillet
skal implementeres som en applet.
Appletten skal vedligeholde en rangliste på en central database, hvor
en deltagers resultat registreres. Det skal overvejes om alle
resultater skal registreres eller kun de resultater som spillerne
ønsker registreret. Databasen kan udvides til også at håndtere små
turneringer, hvor en gruppe spillere kæmper indbyrdes om at være den
bedste.
Evaluering: Skriftlig rapport med design, konstruktion og beskrivelse
af program og database, samt mundtlig eksamen.
Hjælpemidler: Databaseserver.
Projektforslag 6: Webbaseret diskussionsforum
Beskrivelse:
Formålet er at lave et webbaseret diskusionsforum, hvor man kan
oprette et nyt emne, samt kommentere på de emner / indlæg der allerede
findes. Man kan opfatte systemet som en lang liste af emner der bliver
diskuteret. Under hvert emne findes en række indlæg der vedrører
emnet. Alle indlæg registreres i en central database. Det skal
overvejes hvorledes man skal kunne starte en tråd af indlæg og give
direkte svar på tidligere indlæg. Det er tænkeligt, at hvert emne kan
indeholde mange tråde.
Systemet er tænkt implementeret ved CGI-programmering med Java
(servlets). Bemærk, at dette projektforslag ligner projektforslag
nummer 4, men her er indlægene ordnet som tråde. I projektforslag 4 er
indlæggene mere ordnet efter medarbejer og dato.
Evaluering: Skriftlig rapport med design, konstruktion og beskrivelse
af program og database, samt mundtlig eksamen.
Hjælpemidler: Databaseserver og Apache web server.
Projektforslag 7: Analyse af webserverlog
Beskrivelse:
Formålet er at analysere en webserverlog, og beregne statistik for
hvorledes ens webserver anvendes. En webserver registrerer alle
henvendelser i en log, som er en tekstfil i et nærmere specificeret
layout. Projektet går ud på at læse loggen og finde interessant
information i den: besøgendes fordeling på døgnet, på ugen, på
websider, på domæner, osv. Overvej hvordan man finder antal besøgende
(ikke bare sideforespørgsler), træk søgemaskiner fra, osv. Lav
grafiske fremstillinger.
Programmet kan evt. vedlige holde en central database over den
statistik som beregnes regelmæssigt.
Evaluering: Skriftlig rapport med design, konstruktion og beskrivelse
af program og database, samt mundtlig eksamen.
Hjælpemidler: Apache web server og evt. databaseserver.
Niels Hallenberg (nh@it-c.dk) 26/5-2000 og
Peter Sestoft (sestoft@dina.kvl.dk) 2001-01-03