Grundlæggende Programmering,
Objekt orienteret programmering,
Internetprogrammering,
Databasesystemer og
Introduktion til algoritmik og datastrukturer
Velkommen til hjemmesiden for projekter i søgemaskiner.
Hjemmesiden er fælles for studerende med forskellige forudsætninger og projektmål.
Dog gælder
det for alle projekterne, at der arbejdes med teknologier, der anvendes i internet-søgemaskiner.
Inden selve projektperioden vil vi løbende informere via email og denne side om projektet.
Vi vil bl.a. informere om hvem der har tilmeldt sig projektet og hvilke projektgrupper der er dannet,
så du nemmere selv kan finde en projektgruppe.
Vi vil ligeledes afholde en indledende informationsdag om projektet,
hvor du også vil have mulighed for at danne en gruppe.
Her finder du en generelle beskrivelse af projektet.
Her finder du projektets hjemmeside
fra sidste semester.
Overordnet
For alle projektgrupperne gælder det, at der arbejdes med teknologier, der anvendes i internet-søgemaskiner.
Projektgrupperne har forskellige forudsætninger, men alle grupperne skal løse de opgaver
der er beskrevet under fællesdelen. Dog kan der træffes specielle aftaler
for hver gruppe med en lærer. Når en gruppe har løst opgaverne under fællesdelen har gruppen
sin første primitive udgave af en søgemaskine for IT-C.
Efter at en gruppe har en løsning indholdende besvarelser for opgaverne under
fællesdelen, kan gruppen vælge at bygge videre på sin løsning: det kan dreje sig om f.eks.
anvendelse af mere avanceret datastrukturer, anvendelse af
Serverteknologi eller konstruktion af pænere brugergrænseflade.
Hvad den enkelte gruppe vælger at arbejde videre med, vil afhænge af interesser og forudsætninger.
Såfremt gruppen ikke har andre forudsætninger end grundlæggende programmering forventes det ikke
at gruppen i projektperioden når meget længere end at besvare fællesdelen.
Hver gruppe skal gøre rede for sine ønsker i en projektformular.
På projektets hjemmeside vil vi løbende komme med forskellige udfordringer man kan gå i
krig med efter fællesdelen.
På denne side finder du endvidere data indsamlet fra IT-C's hjemmesider,
samt programeksempler på hvorledes disse data kan anvendes.
Hver gruppe skal beskrive sit projektarbejde i en rapport, og denne rapport skal
senere forsvares ved en projekteksamen.
Under projektperioden afholdes der projekdage. På disse dage
vil der være generel information og individuel vejledning.
Hvis du eller din gruppe herudover har problemer under projektet, er i velkomne til at henvende jer til en af
de lærere, der er tilknyttet projektet.
Fællesdelen
Under dette punkt præsenteres fællesdelen for projekterne. På den første Projektdag
vil fællesdelen blive gennemgået. På denne dag præsenteres ligeledes de teknologier som er nødvendige for at kunne
løse fællesdelen. I nedestående beskrivelse vil der således sikkert være ord som du ikke kender før
den første projektdag har været afholdt. Specielt vil teksten nok forekomme som volapyk i en eller anden
udstrækning hvis man ikke før har hørt om enkelthægtede lister. Enkelthægtede lister er en af
de teknologier som bliver præsenteret på den første projektdag.
Til brug for projektet er der konstrueret filer indeholdene data,
fra IT-C's hjemmesider, herefter kaldet URL's. Disse filer indeholder informationer om hvilke ord
der er på hvilke URL's. Filerne har forskellig størrelse, alt efter hvor mange hjemmesider de
indeholder informationer fra. I nedestående beskrives en række opgaver.
De to første opgaver går ud på at afprøve og lettere modificere
programeksemplet "RunMe". Programmet "RunMe" gør følgende tre ting :
Til opgaver der kommer efter fællesdelen må man bruge de teknologier man har lyst til.
Ud over ovenstående obligatoriske opgaver kan de enkelte projektgrupper som omtalt udbygge opgaven. F.eks. ved at anvende allerede brugte eller andre datastrukturer til f.eks. at repræsentere data på en mere kompakt måde.
Projektformular
Hver gruppe skal udarbejde en projektformular. Denne skal afleveres underskrevet af en lærer senest
d. 1 MAJ i studieadministrationen. I projektformularen indgår der en projektbeskrivelse.
Projektbeskrivelsen kan være en reference til denne hjemmeside, med en uddybning af hvad projektgruppen
vil lave ud over fællesdelen.
For grupper som ikke har andre forudsætninger end grundlæggende programmering skal det blot skitseres hvad man
vil arbejde videre med såfremt der er tid til dette efter løsning af opgaverne under fællesdelen.
I projektformularen skal hver gruppemedlem endvidere angive forudsætninger for projekter. Dette indeholder relevante kurser, uddannelser,
erfaringer m.m. fra IT-C og andre steder.
Datastrukturer
Til at løse opgaverne hørende til fællesdelen skal man bruge hægtede lister.
Listeteknologien vil blive gennemgået på den første Projektdag.
Hvis man ikke kender til hægtet lister kan man læse om disse i "JAVA : software solutions" af John Lewis og
William Loftus, anden udgave, kapitel 12.1. En rigtig god hjemmesider om hægtede lister findes her.
Et lille eksempel på brug af hægtet lister findes her . Prøv at modificer og leg lidt med dette program.
I projektet skal der også bruges hashing. Her anbefaler vi som supplerende materiale hjemmesiderne som findes her.
Serverteknologi
Denne udvidelse af fællesdelen er primært for de studerende, som
har fulgt kurset Internetprogrammering. Hvis man ikke har fulgt
internetprogrammering men alligevel godt kunne tænke sig at prøve
kræfter med internetprogrammering kan det sagtens lade sig gøre. Vi
anbefaler dog at man i såfald kommer til forlæsningen onsdag, 2 maj
kl. 10-12 i lokale 0.19 hvor Peter Sestoft vil gennemgå de nødvendige teknologier.
Ideen er at konstruere en client-server-løsning basert på Java-servlets. Java-servlets er i modsætning til Java-applets kode, som kan eksekveres af serveren. Java-servlets kan opfattes som server-scripts. I kan finde eksempler på brugen af servlets her. Man kan her finde en tutorial til Java-servlets. Bemærk dog at på it-c bruges version 2.0 af java servlets og at denne tutorial er basseret på nyere versioner. API referencen for den version der bruges på it-c kan ses her.
Her er et eksempel på en HTML-side, som kalder en servlet. I bør ændre servletten, så den opbygger sin datastruktur i init-metoden.
Servlets på it-c:
Hvis man er interesseret i at bruge servlets skal man kontakte Søren Eduard Jacobsen. Han står for vedligeholdelse af serveren og uddeller konti til de studerende. Man vil så få tildelt en servletzone.
Det første man skal gøre er at have oversat sin servlet til .class filer. For at gøre dette skal man bruge filen servlet-2.0.jar. Det er vigtigt at man ikke bruger Netscape men i stedet bruger Internet Explorer til at hente denne fil. Og når man har hentet den bør man tjekke at den har den rigtige størrelse som er 44544 bytes.
Man kan f.eks. hente servlet-2.0.jar ned i kataloget c:\bin\jdk13\jre\lib\ext. Man skal så fortælle Java systemet at det skal bruge denne fil når det oversætter programmer. Hvis man benytter sig af JCreator til at oversætte sine programmer med gøres dette ved i menuen at vælge Configure, dernæst vælge Options og så vælge JDK Profiles. Man skal så vælge JDK version 1.3 og vælge Edit. Man skal så trykke på Add og vælge Add package og man skal angive filen servlet-2.0.jar.
De oversatte .class skal placeres i kataloget h:\servlets. Dette katalog skal man selv oprette. Hvis selve servleten ligger i klassen MyServlet vil den så blive udført når man går ind på hjemmesiden http://mysql.it-c.dk/hanszone/MyServlet hvor man skal erstatte hanszone med den servletzone man har fået tildelt.
Hvis man inde fra sin servlet har brug for at læse en fil skal denne fil også placeres i kataloget h:\servlets. Hvis den fil man skal læse f.eks. hedder myfile.txt skal man altså gemme den som h:\servlets\myfile.txt. Inde fra servleten kan man referere til denne fil som /import/home/hans/servlets/myfile.txt hvor man skal skrive sit brugernavn i stedet for hans.
Bemærk, at hvis man selv laver små test-filer, så skal man undgå et afsluttende linie-skift til
sidst i filen. Da diverse værktøjer under windows i modat fald ellers kan finde på at ændre filerne.
Som en ekstra service stilles pr 5. maj følgende opdaterede filer tilrådighed:
Hver gruppe skal forsvare sin rapport ved en mundtlig eksamen.
Til projekteksamen skal gruppen præsentere indeholdet af sin rapport.
Bemærk, der skal være mindst to deltagere i en gruppe, med mindre andet
er aftalt med projektvejleder.
Gruppe 1 (vejleder Theis): Nguyen Vo (GP og IADS), Christian Elbrandt og Jose Orellana (GP, DBS, NOP, IAD, PS,IP)
Philip Bille (instruktor), email:beetle@diku.dk Udfordringer
Programeksempler
Hvis man ønsker at køre et java program, f.eks. RunMe, på en af de store data-filer
skal man skrive følgende : java -mx80M -ms80M RunMe datafil, hvor datafil skal være navnet på den datafil
man vil anvende.
Data
Datafiler med forskellig størrelse:
Rapport
Rapporten skal som minimum indeholde :
På grundlæggnede programmering er der udarbejdet en note om
hvorledes en projektrapport kan se ud. Denne note anbefales det at man læser før rapportskrivning.
I noten skønnes det at en projektrapport ca. fylder 25 side. For dette konkrete projekt
skønner vi at en rapport kan fylde meget mindre, og rapporten må maksimalt fylde 20 sider
med almindelig font. I de 20 sider skal ikke indregnes bilag og figur.
Vigtige datoer
Projekteksamen
Eksamensplan 28. og 29. juni 2001
På basis af rapporten og forsvaret gives der en individuel karakter på 13-skalaen for hver deltager i gruppen.
Afslutningvis kan man eventuelt fortælle om hvorledes man ville kunne rette eventuelle fejl eller udbedre mangler.
Herefter vil der blive stillet spørgsmål for at udrede uklarheder, misforståelser og til at fastlægge det
endeig niveau.
Projektdage
Under projektperioden vil der være dage hvor projektgrupperne har mulighed for at
få hjælp til projektet m.m. Nedestående projektdage kommer til at foregå i lokale 1.90 og 0.19.
Projektgrupper
Nedenstående projektgrupper skal betragtes som foreløbige projektgrupper.
Indtil videre er blot listet de studerende som på dette tidlige
tidspunkt har ytret interesse for projektet.
Gruppe 2 (vejleder Theis): Kevin Hectl (GP og OOP), Thomas Sandvik (OOP, DBS og DBD) og Mette Bruhn-Pedersen (OOP, DBS, DBD, E-handel)
Gruppe 3 (vejleder: Theis): Sten Graff Larsen (IADS) og Henrik L. Sørensen (IADS)
Gruppe 4 (vejleder: Stephen): Marie Louise Nielsen (IADS), Hai Son Nguyen, Hanus Reinert, og Anne Mette Mørkbak (IADS)
Gruppe 5 (vejleder Stephen): Kim An Pham (GP), Eydun R. Jensen (GP), Nasim Odeh (GP) og Salman Khan (GP)
Gruppe 6 (vejleder: Inge): Anna Bizova (GP,DBD), Mads-Jørn Nørgaard (GP) og Wajiha Rehman (GP, DBS, DBD)
Gruppe 7 (vejleder: Inge): Lars Gyldenkærne (GP,DBD, DBS), Christian Pedersen (GP, DBD, DBS) og Maibritt Larsen (GP, DBD, DBS)
Gruppe 8 (vejleder: Stephen): Jakob Lund (OOP,IP,GP) og Stig Lundbech (VOOP,OOP,IAD,GP)
Gruppe 9 (vejleder: Inge): Susanne Bisgaard (GP og DBS) og Henriette Rolskov(GP og DBS)
Gruppe 11 (vejleder: Theis): Sune Kloppenborg Jeppesen (IP, NOP, DBS), Line Midtgård Madsen (OOP, IAD. DKM, Bachel. fra DAT-RUC), Stine Grith Christensen (GP, IMS, IS, OOP, IP), Thorkild AAgaard (OOP, FP)
Gruppe 13 (vejleder Stephen) : Maria Kondor (GP, DBS og IAD) og Minh Duc Tran (IAD)
Gruppe 14 (vejleder Stephen): Sebastian Jensen og Kristian Nørgaard (OOP og IP)
Gruppe 15 (vejleder: Stephen): Camilla Petersen (IAD,IIT,DBD,OOP, SU) og Anders Kron (IAD,IIT,DBD, OOP,SU)
Gruppe 16 (vejleder: Stephen): Nikolaj Aggeboe (GP, NP, DBS), Asem Butt (GP, NP, DBS) og Sigrid Jensdottir Dalsgård (GP, INP, NP)
Gruppe 17 (vejleder : Theis): Kristian Munkholm (GP) og Kristian Rastrup (GP)
Gruppe 18 (vejleder: Inge): Peter Krogstrup (GP,DKM), Jussi Arstorp (GP,DKM), Grete Ellersgaard (GP,DKM) og Christina Schou Christensen (GP,DKM)
Gruppe 22 (vejleder: Theis): Joan Campbell-Tofte (GP, IADS, DBS, OOP, IB), Nikolaj Hansen (GP,DBS,NOP)
Gruppe 23 (vejleder: Inge): Jonas Damgaard-Jensen (GP, DBD, DBS), Jacob Ingversen (GP, DBD, DBS), Pernille Platz (GP, DBD, IT-platforme) og Lars Høyrup Jensen (GP, DBD, DBS)
Gruppe 24 (vejleder: Theis): Rasmus Espholm (GP, OOP), Carsten Hjort (IP, GP, OOP), David Graff Nielsen (GP, OOP, SU)
Gruppe 25 (vejleder: Stephen): Mikkel Westh Pedersen (GP) og Janus Friis (GP, DBS)
FAQ
Spørgsmål om projektet kan stilles og bliver besvaret her.
Instruktorer
Der er to instruktorer knyttet til projektet.
Se instruktorstatussiden for yderligere informationer.
Lærere
Stephen Alstrup (adjunkt), email:stephen@it-c.dk
Jens Chr. Godskesen (lektor), email:jcg@it-c.dk
Theis Rauhe (adjunkt), email:theis@it-c.dk
Inge Li Gørtz (ph.d.-studerende), email:inge@it-c.dk
Christian Worm Mortensen (instruktor), email :cworm@it-c.dk