Exercise index of this lecture   Alphabetic index   Course home   

Exercises and solutions
Introduktion til objekt-orienteret programmering


1.1   Fænomener kontra begreber  

Denne opgave har til formål at blive god til at skelne mellem begreber og fænomener (samt mellem klasser og objekter når vi taler programmering).

Bestem hvert af de følgende som enten et fænomen (objekt) eller et begreb (klasse):

    En dør Døren til jeres grupperum Lærebogen, som anvendes på dette kursus Dit eksemplar af lærerbogen, på dette kursus Introduktionsforelæsningen på dette kursus En hjælpelærer Danmark 7 Mængden af alle studerende som følger dette kursus i et bestemt semester Studerende
I de tilfælde, hvor der er tale om fænomener, skal I endvidere identificere det begreb som dækker fænomenet.

Solution
Der findes ikke sort-hvide svar på spørgsmålene i denne opgave. I nogle tilfælde skal der foretages en fortolkning, og fastsættes nogle forudsætninger. Vi giver dog nogle ret konkrete bud på løsninger:
    En dør er et begreb Døren til jeres grupperum er et fænomen Lærebogen, som anvendes på dette kursus: Hvis vi tænker på bogen i almindelighed kan det være et begreb, idet det har et navn, en intension, og en ekstension. Vi kan også tænke på lærebogen, som vi anvender på kurset, som et fænomen, der er et eksempel på en bog (opfattet som et begreb). Hvis vi tænker på et bestemt eksemplar er det klart et fænomen. Dit eksemplar af lærebogen: Et fænomen, jf punkt 3 Introduktionsforelæsningen: Et fænomen som dækker over begrebet Forelæsning En hjælpelærer: Et begreb. Extensionen rummer mange fænomener, der alle har hjælpelærer egenskaber Danmark: Et fænomen, som er et eksempel på begrebet Land. 7: Et fænomen, som er et eksempel på et heltal Mængden af alle studerende som følger dette kursus i et bestemt semester: Et fænomen, idet der refereres til en bestemt mængde, ikke mængder i almindelighed. Fænomenet er ikke håndgribeligt, men alligevel er det et fænomen der har bestemte egenskaber, f.eks. antal elementer. Det bagvedliggende begreb er Mængde. Extensionen af Mængde rummer mange andre fænomener end 'mængden af alle studerende som følger dette kursus i et bestemt semester'. Studerende: Et begreb. Intensionen af begrebet er egenskaber såsom navn, semester, og optagelsesdato. Extensionen er mængden af alle studerende.
Man kan generelt opfatte et begreb som et fænomen. Vi kan sige at vi materialiserer begrebet, som et fænomen. Dette foranlediger, at vi kommer til at tale om mængden af begeber som et nyt begreb - et metabegreb kunne vi kalde det. I forbindelse med objekter og klasser møder vi dette, når klassen repræsenteres som et objekt. Klassen repræsenteres således af et metaobjekt; klassen, hvoraf metaobjektet er en instans, kaldes en metaklasse.


1.2   Litteraturbegreber  

Beskriv og tegn et generaliserings/specialiserings hierarki for de forskellige typer af bøger, rapporter og tidsskrifter, der findes på et fagbibliotek, såsom AUB.

Skitser dataegenskaberne af ovenstående begreber, samt hvilke operationer, der bør være, hvis vi skal bruge hierarkiet til at lave et katalogsystem til søgning ol.

Inkluder endvidere begrebet `artikel' (som vi kender det fra bl.a. tidsskrifter), og diskuter, hvordan `artikel' forholder sig til `tidsskrift'.

Diskuter tilsidst et begreb, der dækker samlingen af litteratur, som findes på et fagbibliotek. Hvordan forholder dette begreb sig til ovenstående begreber?

Solution
Der er mange mulige hierarkier af litteratur, og vi vil ikke her vise en bestemt. Fælles for dem alle er dog, at der er en 'rod', der som klasse indeholder alle egenskaber, der er fælles for al litteratur. 'Bladene' udgøres af f.eks. bog, rapport og tidsskrift. Hvis to af bladene har overlappende egenskaber (som ikke hidrører fra det gennerelle tidsskrift begreb) bør man overveje at definere en klasse mellem rod og blad, som netop indfanger de fælles egenskaber. Vær sikker på, at du forstår denne ide!

Man skal være sig bevidst om man bruger ental- eller flertalsbetegnelser for begreberne. 'Bog' har bestemte egenskaber, f.eks. forfatter og titel. 'Bøger' har andre egenskaber, f.eks. antal.

Et tidsskrift består af artikler. Med andre ord er et tidsskrift en aggregering af et antal artikler.

En samling af materiale er et nyt begreb. En samling består af litteratur, uden vi dog vil kalde det en aggregering af litteratur. (Der forskel på en samling af et antal bøger, og de forskellige dele af en flyvemaskine; Flydelenes eksistens står og falder med helhedens eksistens. det samme gør sig ikke gældende med bøger i en samling).


1.3   Time concepts  

Describe and draw the specialization/generalization hierarchy of concepts associated with points in time and time intervals. As an inpiration we can mention such concepts as date, time, day, week, month, and year.

Is there a common generalization of points in time and time interval?

Is there an aggregation relationship between the two concepts?

Describe some useful properties (operations) of the two concepts.

What is the relationships between the designed concept hierarchy and the calendar concept?

Solution
Lad os først slå fast, at det er en udfordrende opgave at få styr på tids- og kalderbegreber. Her følger en kort udredning, som afspejler min forståelse.

De mest generelle begreber er Tidspunkt og Tidsrum. Jeg ser ikke umiddelbart et mere generelt begreb, hvorfra Tidsum og Tidspunkt specialiseres. Gør du?

Et tidspunkt er et ganske bestemt punkt på tidsaksen. Et tidsrum er et interval, som består af (er aggregeret af) to tidspunkter.

Et klokkeslæt er et tidspunkt. Man kan sige, at et klokkeslæt bare er et andet ord for tidspunkt. En dag, uge, måned og et år er specialiseringer af tidsrum. Et år består af 12 bestemte måneder. Men man kan ikke sige, at en måned består af et bestemt antal uger. Hvorfor ikke?. En dato er et lidt mere uldent begreb. Hvis vi opfatter det som en dag er det blot et tidsrum, som er den del af en uge, måned og år. Ofte opfatter vi dog en dato som aggregerigen af tre talangivelser, f.eks. 5.8.1999. I denne betydning kan man næppe sige, at en dato er et tidsrum.

Der er forskellige basale operationsegenskaber på tidspunkt og tidsrum. To tidspunkter kan sammenlignes med før og efter operationer. To tidrum man sammenlignes med en indeholder operation. Mere specialiserede tidsrum vil have forgænger og efterfølger operationer. F.eks. kan vi tale om næste/forrige dag, uge, måned og år.

En kalender er en bestemt strukturering af tidsaksen i tidsrum. Denne struktuering er meget irregulær. Det hænger både sammen med tradition og naturens luner (hvor sidstnævnte hænger på astronomiske forhold). Der findes forskellige traditioner og dermed forskellige kalendere rundt omkring i verden. Ud over dette (strukturering af tid) findes der mange slags forskellige kalendere, der dog alle kan opfattes som en specialisering af den basale kalender (strukturerigen af tid). Lad mig blot nævne en aftalekalender og en julekalender:-)


Generated: Monday March 31, 2008, 12:07:56
on the system cs-unix