Projekter i forbindelse med Grundlæggende Programmering, forår 2001

Denne side omhandler forslag til og organisering af "klassiske" GP-projekter, som er egnede som programmeringsprojekter i forlængelse af kurset Grundlæggende Programmering.  Det er muligt at vælge andre projekter.  Der plejer at være andre projektforslag af varierende sværhedsgrad på projektbørsens hjemmeside. Af særlig interesse for Grundlæggende Programmering er desuden projektklyngerne/projektkurser i Søgemaskiner (kontakt Stephen Alstrup, email: stephen@it.edu) og Apparatsoftware (kontakt Thomas Hildebrandt, email: hilde@it.edu).


Hvorfor et programmeringsprojekt i forlængelse af Grundlæggende Programmering?

Kurset Grundlæggende Programmering (GP) fokusserer på individuelle begreber og aspekter af programmering og programmeringssproget Java. Det er ikke et formål med kurset at du skal skrive egentlige applikationer under forløbet.  Det er til gengæld meningen, at du gør det, udstyret med de programmeringsteknikker og -færdigheder du har tilegnet dig på GP, i et umiddelbart efterfølgende 4-ugers programmeringsprojekt i projektperioden (for fuldtidsstuderende), eller i et semesterprogrammeringsprojekt på et senere tidspunkt (for deltidsstuderende).

Det anbefales derfor fuldtidsstuderende (kandidatstuderende) stærkt at lave et programmeringsprojekt i fireugersperioden efter Grundlæggende Programmering.  Ligeledes anbefales deltidsstuderende (diplom- og masterstuderende) at lave et programmeringsprojekt i fireugersperioden eller i en efterfølgende kursusperiode.

NB: Fagudvalget for softwareudvikling har med virkning fra forår 2002 indført et forudsætningskrav om, at deltagere i kurset Objekt-Orienteret Programmering skal have gennemført et programmeringsprojekt svarende til GP projekter ud over kurset Grundlæggende Programmering.


Formål med programmeringsprojektet

Fælles for GP-projekterne, den nedenfor omtalte klynge af projektforeslag, er at de skal: Du kan vælge mellem en række forskellige projektforslag (se nedenunder), samt foreslå dit eget projekt, sålænge det tilfredsstiller de ovenfor stående overordnede formål.

Organisering af programmeringsprojekterne

Projekterne bør laves i grupper på 2-4 personer. Enkeltmandsprojekter har en tendens til at køre skævt, og resultatet skuffer alle, ikke mindst projektdeltageren.

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.  Projekterne vil være tilknyttet hjælpelærere, som vil kunne kontaktes iht. en programmeringsvagtordning under projektperioden og ved aftalte møder.  Vejledning vil desuden bestå af møder med hovedvejlederen (Fritz) og spørgetimer "i plenum" (hver onsdag i projektperioden, dog ikke 28. november, kl. 14-16).

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 indholdet af projektaftalen, der skal udarbejdes i løbet af den første projektuge.

Hvordan tilmelder jeg og min gruppe sig?

Send email med navnene, email-addresserne og det eller de projekter I er interesseret i at gennemføre til mig (henglein@it.edu).  Deltag derefter i forelæsningerne tirsdag og onsdag, den 27.-28. november (se nedenunder).  Gør projektbeskrivelsen færdig i løbet af torsdag, den 29. november, gerne i samråd med en instruktor og/eller mig, få den godkendt (jeg kan træffes torsdag, den 29. november, kl. 15-17 på 2.29) og aflever den til studieadministrationen.  Brug det officielle projektformular for projektbeskrivelsen.

Jeg er interesseret i et eller flere af nedenstående projekter, men har ikke nogen gruppe endnu.  Hvad gør jeg?

Send dit navn, email addresse og det/de projekt(er) du er interesseret i til mig (henglein@it.edu) -- gør det under alle omstændigheder.  Jeg vil så sætte dit navn under projektet/projekterne på denne side.  Kontakt derefter per email interesserede i samme projekt, hvis der allerede står nogen under selve projektet.  På denne måde vil andre interesserede kunne kontakte dig for at se, om I kan danne en gruppe, og omvendt kan du kontakte dem.  Hvis der kommer ikke noget ud af det, kom til forelæsningen tirsdag, den 27. november, kl. 10-12 i 0.10.  I frokostpausen kl. 12-13 laver vi "matchmaking" for at danne grupper.  Hvis der ikke kommer noget ud af det, deltag i matchmaking onsdag, den 28. november, kl. 12-13 samme sted.  Hvis du derefter stadigvæk ikke har en gruppe, vil jeg foreslå at sætte dig sammen med nogen anden.  Men så er mulighederne opbrugt!

Brug endelig også nyhedsgruppen news://news.it-c.dk/it-c.courses.GP for at lede efter gruppepartnere.

Deltag  i forelæsningerne tirsdag og onsdag, den 27.-28. november (se nedenunder).  Gør projektbeskrivelsen færdig med din gruppe i løbet af torsdag, den 29. november, gerne i samråd med en instruktor og/eller mig, få den godkendt (jeg kan træffes torsdag, den 29. november, kl. 15-17 på 2.29) og aflever den så til studieadministrationen.  Brug det officielle projektformular for projektbeskrivelsen.

Projektvejledning og -support

Hver projektgruppe arbejder selvstændigt på sit eget projekt og har adgang til følgende resourcer:
  1. Forelæsninger og øvelser om databaser, databaseadgang fra Java programmer (JDBC) og Java servletter.  (Se nedenunder.)
  2. Fælles spørgetimer hver onsdag i projektperioden (dog ikke første uge) kl. 14-16 i lok. 1.60.
  3. Programmeringsvagt i lokale 1.28 de fleste dage i projektperioden (se projektkalender nedenunder).
  4. Ugentlige gruppemøder onsdag formiddag med mig (efter aftale).
  5. Gruppemøder med en instruktor, som er tilknyttet Jeres projekt (efter forudgående aftale med instruktoren).
  6. Nyhedsgruppen news://news.it-c.dk/it-c.courses.GP til spørgsmål og for at se svar på andres spørgsmål.
  7. Projekthjemmesiden http://www.it.edu/courses/GP/E2001/projekter.html med aktuelle programeksempler, projektoplysninger osv.
Projektkalenderen indeholder vigtige oplysninger om projektforløb, programmeringsvagter mm.

Projektgrupper

Der er blevet etableret følgende projektgrupper:
 
Gruppe Medlemmer Email Projekt
GP1 Cathrine Kvåle, Ene Rammer Nielsen kvaale, ene +
GP2 Thomas Janum, Marie Gottlieb, Sune Høgild Keller janum, mago, sunebio +
GP3 tobiasg -
GP4 fsoeberg, shazia, jacobg, lina, clh -
GP5 Birgit Nielsen, Galina A. Ianchina Hansen, Signe Ellegård Borch, Annilisa Klevang Pedersen  bmn, galina, elleboych, klevang +
GP6 Jane Schjøth Dahl Jakobsen, Pia Eder, Jens Bo Bjørholm, Björn Wahlberg, Michael Koefoed-Hansen janjada, piaeder, jensb, bjornw, mkh +
GP7 Helgi Thorsteinsson heto
GP8 Lise Lotte Hansen, Marianne Harck, Kira Høgh, Karen Binderup Jørgensen llh, mharck, kira, karen +
GP9 Daniel Sutherland, Anders Møller, Kim Bonde, Niels Grau daniels, andersm, kimbonde, nielsg +
GP10 Kinnie Bak Pedersen, Katrine Høegsberg Olin, Pernille Kruse kinnie, kho, pernille +
GP11 klyvoe, kane, dck, rsimonsen -
GP12 gyldahl, mka, nhj -

Hver projektgruppe (GP1, GP2,...) er blevet oprettet som brugergruppe på host mysql.it-c.dk og får stillet en projektkatalog til rådighed, som kan bruges til at lægge alle filer en projektgruppe arbejder på, inkl. appletter og servletter.  Projektgruppe GP4, for eksempel, har fået tildelt katalog S:\projekter_e2001\gp4 på IT-Cs pc'er, samt en database med navn gp4 på MySQL databaseserveren på mysql.it-c.dk.  (For yderlige oplysninger se plancher fra forlæsningerne nedenunder.)


Introducerende forelæsninger og øvelser

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:

Eksamen

Format

Projekteksamen har følgende format.  Først holder gruppemedlemmerne korte individuelle foredrag (oplæg) om projektet.  Derefter eksamineres hvert gruppemedlem individuelt.  Alle gruppemedlemmer forventes at være til stede i eksaminationslokalet under hele gruppens eksamination.

Tidsplan

Eksamensdato: onsdag, den 23. januar 2002
Eksamenslokale: 3.07

-----------------------------------------
Tid   Gruppe/gruppemedlemmer
-----------------------------------------
 8:30 GP1:  Cathrine Kvaale
            Ene Rammer Nielsen
 9:10       (Votering)
 9:20 GP6:  Jane Jakobsen
            Pia Eder
            Jens Bjoerholm
            Bjoern Wahlberg
            Michael Koefoed-Hansen
11:00       (Votering)
11:20 GP5:  Birgit Nielsen
            Galina Hansen
            Signe Ellegaard Borch
            Annilisa Pedersen
12:40       (Votering)
12:55       (Frokostpause)
13:20 GP8:  Lise Lotte Hansen
            Marianne Harck
            Kira Hoegh
            Karen Joergensen
14:40       (Votering)
14:55 GP9:  Daniel Sutherland
            Anders Moeller
            Kim Bonde
            Niels Grau
16:15       (Votering)
16:30 GP10: Kinnie Bak Pedersen
            Katrine Olin
            Pernille Kruse
17:30       (Votering)
-----------------------------------------

Bedømmere

Eksaminator: Fritz Henglein, IT-C
Censor: Torben Mogensen, Datalogisk Institut, Københavns Universitet


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 Java servlets. Brugeren indtaster sine ønsker, som behandles af et eller flere Java-servlets 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. Som udgangspunkt skal der laves et biografbilletsystem for en sal og kun en forestilling hver dag.  ("Mallinge Bio").  Dette kan så udvides i ambitionsniveau trin-for-trin ved at vælge nogle af følgende udvidelsesmuligheder: flere film per dag, flere forestillinger af samme film per dag, flere biografsale, ikke-rektangulaere biografsale, visning af 'buede' biografsale, flere biografer, online-bestilling og billettering f ("Egmont Biografkæden").

Evaluering: Skriftlig rapport med design, konstruktion og beskrivelse af program og database, samt mundtlig eksamen.

Hjælpemidler: Databaseserver, og Apache/Tomcat web server og servlet container.


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 Java-servletter, eller på Java-appletter.

Evaluering: Skriftlig rapport med design, konstruktion og beskrivelse af program og database, samt mundtlig eksamen.

Hjælpemidler: Databaseserver og Apache/Tomcat web server og servlet container..


Projektforslag 4: Udklipsbureau

Beskrivelse:
Formålet er 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 med Java (servlets). Bemærk, at dette projektforslag ligner projektforslag nummer 4, men her er indlæggene 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/Tomcat web server og servlet container.


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.


Projektforslag 8: Lokalebooking system

Beskrivelse:
Formålet er at lave et webbaseret system, som lader brugere reservere lokaler i et eller flere fælleslokaler, f.eks. selskabslokaler og lignende.  Der skal laves en web interfaces (vha. af Java servlets som genererer HTML-sider eller ved hjælp af Java applets) som tillader almindelige brugere at se hurtigt, hvornår hvilke lokaler allerede reserveret og hvornår de stadigvæk er ledige, og derefter at reservere et lokale ved at angive oplysninger om sig selv.  Desuden skal der laves en web interface, som kun er tilgængelig for administratoren af systemet, som viser, hvem der har reserveret hvilket lokale hvornår.  Mulige udvidelser er, at brugerne skal kunne registrere sig som brugere og derefter logge sig på systemet, og at administratoren skal bekræfte en reservering inden den er endegyldig, og administratoren skal kunne slette reserveringer.

Hjælpemidler: Databaseserver og evtl. Apache/Tomcat webserver og servlet container.


Fritz Henglein, 2001-11-22