Søgemaskiner for

Grundlæggende Programmering,
Objekt orienteret programmering,
Internetprogrammering,
Databasesystemer og
Introduktion til algoritmik og datastrukturer

MAJ 2001


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.


Denne side er opdelt i følgende punkter :

  • Overordnet
  • Vigtige datoer
  • Fællesdelen
  • Projektformular
  • Datastrukturer
  • Serverteknologi
  • Udfordringer
  • Programeksempler
  • Data
  • Rapport
  • Projekteksamen
  • Projektdage
  • Projektgrupper
  • Generel beskrivelse af projektet
  • Instruktorer
  • Lærere
  • FAQ
  • Om Algoritmeundervisning på IT-C

  • 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 :

    Følgende opgaver skal løses : De obligatoriske dele fra fællesdelen skal implementeres vha. simple javakommandoer, dvs. at det ikke er tilladt at bruge f.eks. De eneste ikke trivielle javakommandoer der må bruges er kommandoer til strenge, som f.eks. til at finde det første tegn i en streng, finde en hashværdi for en streng osv. Hvis du er i tvivl om du bruger en kommando som ikke må bruges så kontakt en af lærerne.

    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.


    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:

    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:


    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

    Hver gruppe skal forsvare sin rapport ved en mundtlig eksamen.
    På basis af rapporten og forsvaret gives der en individuel karakter på 13-skalaen for hver deltager i gruppen.

    Til projekteksamen skal gruppen præsentere indeholdet af sin rapport.
    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.

    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)
    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)

    Alle lærere og studerende


    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

    Philip Bille (instruktor), email:beetle@diku.dk
    Christian Worm Mortensen (instruktor), email :cworm@it-c.dk