Søgemaskiner for

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

December 2000


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.


Denne side er opdelt i følgende punkter :

  • Overordnet
  • Vigtige datoer
  • Fællesdelen
  • Projektformular
  • Datastrukturer
  • Serverteknologi
  • Programeksempler
  • Data
  • Rapport
  • Projekteksamen
  • Projektdage
  • Projektgrupper
  • Generelle beskrivelse
  • Lærer
  • 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å 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ærerer, 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 bekskrivelse 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 to 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 : 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. 29 November 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.
    I projektet skal der også bruges hashing. Her anbefaler vi som supplerende materiale hjemmesiderne som findes her.

    Endvidere skal/kan der anvendes datastrukturer som hashing, trier m.m.
    Det nødvendige materiale om disse andre datastruktuktur vil blive udleveret og gennemgået under Projekdagene.


    Serverteknologi

    Denne udvidelse af fællesdelen er primært for de studerende, som har fulgt kurset Internetprogrammering. 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. En tutorial til Java-servlets.

    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.


    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.

    Vigtige datoer


    Projekteksamen

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

    Projektdage

    Under projektperioden vil der være dage hvor projektgrupperne har mulighed for at
    få hjælp til projektet m.m.

    Mandag og tirsdag hhv. d. 27 og 28 november afholder Peter Sestoft informationsdage om forskellige teknologier mellem kl. 10 og 12 i auditorium 0.10. Det anbefales at komme d. 28 november vis man er interesseret i sevletter. Serveletter er en teknologi der kan benyttes hvis man ønsker at sit software skal være tilgængelig via nettet. Nedestående projektdage kommer til at foregå i lokale 2.51.


    Projektgrupper

    Nedestående projektgrupper skal betragtes som foreløbige projektgrupper.
    Indtil videre er blot listet de studerende som på dette tidlige tidspunkt har ytret interesset for projektet.

    Bemærk, der skal være mindst to deltagere i en gruppe, med mindre andet er aftalt med projektvejleder.

    Foreløbig gruppe 1 : Ole Bue Lond og Jakob Rauhe (IAD)
    Foreløbig gruppe 2 : Nada Yahyah Alzubeidi (INT studerende)
    Gruppe 3 : Tine Thorn og Susanne Olsen (IAD, OOP og DBD)
    Foreløbig Gruppe 4 : Mads Peter Nymand og Olav Madsen (OOP,DBS og DBD)
    Foreløbig Gruppe 5 : Leif Kristiansen(IAD og OOP)
    Foreløbig Gruppe 6 : Susanne Pehrsson og Helle Hulegaard Sørensen (IAD og OOP)
    Foreløbig gruppe 7 : Jakob Bang Hansen (IAD, IP)

    Alle lærer og studerende


    Lærer

    Stephen Alstrup
    Jens Chr. Godskesen
    Theis Rauhe