Curriculum Opleiding Informatica Universiteit Antwerpen – Faculteit Wetenschappen Versie 0.0 - maandag, 25 november, 2002 (Na afronding van de curriculumbespreking van 13 november 2002). Zo goed als alle beschrijvingen van opleidingsonderdelen zijn op de goede plaatsen ingevoegd. Tegen versie 0.1 zal alles geuniformiseerd worden, en dat vragen en opmerkingen expliciet in de tekst zullen worden opgenomen. Daarna nog te bespreken op de Bachelor/Master vergadering — 4 december 2002 Dit is een 'levend' document en wordt aangepast op basis van discussie en feedback. Het document is te vinden op http://win-www.uia.ac.be/u/sdemey/BaMa/ Samenvatting
De Informatica opleiding aan de Universiteit Antwerpen wordt —net zoals alle andere hogere opleidingen— gevraagd zich te reorganiseren naar het komende Bachelor/Master model. Liever dan enkele minimale aanpassingen door te voeren aan de huidige opleiding heeft de Onderwijscommissie Informatica ervoor gekozen om de opleiding grondig te hervormen, mede op basis van de aanbevelingen geformuleerd tijdens de net afgelopen visitatieronde. Dit document bevat dan ook de neerslag van twee jaar aan intensieve discussies onder de vorm van een concreet curriculum voor een 3-jarige Bachelor gevolgd door een 2-jarige Master opleiding. Inleiding Informatica is vandaag de dag alomtegenwoordig. Bij elke administratie fungeert informatica als een essentiëel element van de organisatie, ongeveer alle elektronische apparaten worden gestuurd door software en via het internet heeft de computer zijn opmars naar de huiskamer ingezet. Als gevolg daarvan is de vraag naar professionele informatici enorm gestegen, in zoverre zelfs dat het aanbod de vraag niet kan bijhouden. Anderzijds impliceert dit groeiend maatschappelijk belang een verhoogde eis naar kwaliteit, wat belangrijke consequenties heeft voor het opleidingsniveau van de informatici. Geconfronteerd met de vraag naar hooggekwalificeerde informatici, kiest de onderwijscommissie Informatica resoluut voor een opleiding van hoogwaardig wetenschappelijk niveau. Daartoe wil de onderwijscommissie de opleiding Informatica reorganiseren in functie van een 3-jarige Bachelor gevolgd door een 2-jarige Master opleiding. Deze reorganisatie zal tevens gebeuren op basis van de visitatieronde, die bij de informatica net achter de rug is [1]. Als eerste stap van deze reorganisatie werd een discussietekst opgesteld waarin een aantal toekomstscenerio's werden uitgetekend [2]. Dat zijn er drie, te weten een Bachelor & Master Informatica (de huidige licentie Informatica) een Polyvalente Master (staat open voor Bachelors uit andere richtingen - vb. ASIB) en een Minor Informatica (Informatica als bijkomende opleiding naast een andere major - vb. Wiskunde-Informatica). Hier beperken we ons tot de Bachelor Informatica en de en Minor Informatica; in een later stadium zullen we het Master programma uitwerken (zowel de Master Informatica als de Polyvalente Master). Als tweede stap werden de eindtermen die moeten gelden voor een komende Bachelor/Master informatica vastgelegd [3]. Daartoe werd een eerste inventaris opgemaakt van alle competenties die een student tijdens zijn opleiding dient te verwerven, waarbij we doelbewust erg gedetailleerd zijn
Curriculum Opleiding Informatica (versie 0.0)
2/18
geweest om het verschil duidelijk te maken met andere informatica-gerelateerde opleidingen (industrieel en burgerlijk ingenieur, graduaat, …). Als derde en laatste stap leggen we het eigenlijke curriculum vast. Daarvoor zijn we vertrokken van (a) de richtlijnen die door de centrale UA onderwijscommissie werden opgesteld, (b) het huidige curriculum met zijn gekende sterke en zwakke punten, (c) gelijkwaardige curricula aangeboden door andere universiteiten. Modulair Overzicht Het curriculum wordt opgedeeld in een aantal modules. Daarbij maken we een sterk onderscheid tussen de bachelor —een brede basisvorming— en de master opleiding — een specialisatie. Anderzijds zijn er een aantal elementen die inherent zijn aan een wetenschappelijke opleiding op academisch niveau, en die worden gebundeld in drie basispijlers. Bachelor
computersystemen
theoretische Informatica
computationele wetenschappen
telecommunicatie
artificiële intelligentie
computationele wetenschappen
gegevens-en informatiebeheer
telecommunicatie
software ontwikkeling
Tijdens de master opleiding bieden we vier opties aan: • gegevens en informatiebeheer • software ontwikkeling • telecommunicatie • computationele wetenschappen Deze opties sluiten nauw aan bij de aanwezige onderzoeksexpertise, zoals trouwens vereist voor een master opleiding. Desalnietemin is het de bedoeling samen te werken met andere departementen en universiteiten om de nodige kwaliteitsgaranties te bieden.
gegevens-en informatiebeheer
software ontwikkeling
Voor de bachelor opleiding voorzien we 7 basismodules (software ontwikkeling, gegevens en informatiebeheer, telecommunicatie, computationele wetenschappen, artificiële intelligentie, theoretische informatica, formeel denken computersystemen) die instaan voor de kennis en inzichten wetenschappelijke basis specifiek voor de informatica. Anderzijds zijn er drie basispijlers (formeel denken, maatschappelijke vorming wetenschappelijke basis en Figuur 1: Modulair overzicht van de BachelorInformatica maatschappelijke vorming) die zorgen voor de noodzakelijke wetenschappelijke fundering (zie Figuur 1).
formeel denken
wetenschappelijke basis
maatschappelijke vorming
Figuur 2: Modulair overzicht van de Master Informatica
Curriculum Opleiding Informatica (versie 0.0)
3/18
Curriculum Bachelor In dit hoofdstuk sommen we het curriculum op dat zal leiden tot een diploma bachelor informatica. Bij de opstelling van het curriculum gaan we uit van een onderwijsorganisatie van twee semesters per jaar, wat naar alle waarschijnlijkheid in de eerste overgangsjaren nog steeds de norm zal zijn. Toch willen we de overgang naar een credit-systeem zo vlot mogelijk maken, vandaar dat de voorkennis voor voor elk opleidingsonderdeel expliciet wordt vermeld. Bovendien werd het curriculum studentvriendelijker gemaakt door de volgende maatregelen
• profileringsruimte: Er wordt heel wat keuzeruimte voorzien om een student de mogelijkheid te bieden zicht te profileren in functie van zijn interesses. Daarom wordt binnen de 180 studiepunten van de Bachelor opleiding, 36 studiepunten voorbehouden voor profileringsruimte. Daarbij is het dus mogelijk een Minor van 30 studiepunten te kiezen aangeboden door een andere opleiding (vb. Economie voor de eerder management geinteresseerden, Biologie voor studenten die later bio-informatica willen gaan doen, Informatica voor studenten die zich willen profileren via hun vakkennis). Deze minor zal expliciet op het diploma vermeld worden, waardoor het profileringselement extra in de verf wordt gezet. Naast die 30 studiepunten is er dan nog steeds de mogelijkheid om een opleidingsonderdeel van 6 studiepunten vrij te kiezen. • uitwisselbaarheid: Om vergelijking en uitwisseling met andere informatica opleidingen mogelijk te maken kiezen we voor relatief grote opleidingsonderdelen (minimum 6 studiepunten) met duidelijke leerdoelen. Bovendien krijgen alle opleidingsonderdelen een gewicht dat een veelvoud is van drie, zodat alvast binnen de UA —waar deze algemene richtlijnen geldt—de uitwisselling van opleidingsonderdelen mogelijk moet zijn. • wiskunde: De inhoud van de opleidingsonderdelen wordt zodanig gedefinieerd dat ze bijdraagt tot de vakkennis van de informatica. Zo wordt de inhoud van de wiskunde vakken in de eerste twee jaren herzien, met meer nadruk op statiestiek en kansrekenen. Zo wordt ook geopteerd voor een goede balans tussen eerder formele een eerder praktische informatica-vakken. • projectwerking: Een academisch gevormde informaticus moet in staat zijn de brede vakkennis die hij tijdens zijn opleiding verwerft ook in de praktijk toe te passen. Vandaar dat er veel ruimte voorzien wordt voor praktijk en groepswerk. In het bijzonder wordt in elk jaar een groot blok voorzien waar een studenten in groep een project zullen uitvoeren. 1rste jaar
inleiding programmeren wiskunde 1 computersystemen talen en automaten gegevensstructuren inleiding software engineering + programmeren wiskunde 2 computernetwerken TOTAAL profileringsruimte
SEM 1 6 9 6 6
27
SEM 2
6 6 9 6 27
JAAR 6 9 6 6 6 6 9 6 54 6
Curriculum Opleiding Informatica (versie 0.0)
¨ Inleiding programmeren
6 studiepunten, 30u theorie + 30h practicum
• Doelstelling: Deze cursus verzorgt een inleiding op de hedendaagse basistechnieken van het programmeren. Als programmeertaal wordt (als middel eerder dan als doel) Oberon-2 aangewend wegens de compacte, doch voor deze cursus voldoende volledige syntax. De practica worden binnen een eenvoudige programmeeromgeving uitgevoerd. • Inhoud: Er wordt gestart met een procedurele aanpak waarbinnen alle nodige syntactische constructies voor dataspecificatie en verwerkingsinstructies worden aangebracht. Er wordt aandacht besteed aan samengestelde types, top-down ontwerp, abstractiemogelijkheden, en modulair programmeren. Er wordt een inleiding gegeven op het object-gericht programmeren, vertrekkend van expliciete pointer syntax, en met nadruk op de mogelijkheden tot encapsulatie en hergebruik. Afsluitend wordt een overzicht gegeven van de abstractiemogelijkheden (procedureel, klassiek ADT, objectgericht) die Oberon biedt dankzij het modulair en objectgericht karakter van de taal. • Vereiste voorkennis: Geen. • Onderwijsvorm: Hoorcollege met interactieve demonstraties voor de theorie. Begeleide werksessies in het computerlabo voor de practica. • Examenvorm: Schriftelijk en mondeling voor de theorie, practicumsessie in het computerlabo voor de praktijk. • Verplicht studiemateriaal: [1] Cursusnota’s ¨ Wiskunde 1 (Discrete Algoritmische Wiskunde)
9 studie punten >>> INHOUD NOG TER DISCUSSIE <<<
• Studiemateriaal Maurer en Ralston, voorlopig in het Engels • Inhoud • 1. Preliminaries: Verzamelingen, relaties, functies, notaties • 2. Algoritmen: Voorbeelden van algoritmes, recursie, procedure, functie • 3. Inductie: Varianten van inductie, inductie en algoritmes • 4. Grafen en Bomen: Terminologie, paden, cycles, kortste pad, breadth first, depth first • 5. Combinatoriek: Permutaties, combinaties, inclusie, exclusie, binomium van NewtonA • 6. Differentievergelijkingen: Is hieraan behoefte?
4/18
Curriculum Opleiding Informatica (versie 0.0)
• • • •
7. Kanstheorie: Onafhankelijkheid, voorwaardelijke kans, stelling van Bayes, gemiddelde en variantie, randomwaarden 8. Logica: Propositielogica, deductie, boolse algebra, predicatenlogica 9. Oneindige processen: Rijen en reeksen, ordenotatie, sommatie van reeksen, machtreeksen 0. Appendices over sorting
¨ Wiskunde 2 (Calculus) - 9ptn - Annie Cuyt
9 studie punten >>> INHOUD NOG TER DISCUSSIE <<<
• Studiemateriaal geextraheerd uit het boek Advanced Calculus van Spiegel, een Nederlandse tegenhanger moet zeker te vinden zijn, bovendien vermeld ik een aantal hoofdstukken uit het boek hieronder niet) • Inhoud • Limieten • Functies • Continuiteit • Afgeleiden • Integralen • Vectorrekenen • Machtreeksontwikkelingen • Fourierreeksen • Functies van een complexe veranderlijke ¨ Computersystemen
6 studie punten
• overzicht computersystemen + korte geschiedenis - hierarchie, lagen-model van computersystemen - data representatie + getallenstelsels (binair, hexadecimaal, ...) basis hardware: transistoren, logische poortjes, multiplexer, flip-flop, ... • basis computer architectuur: CPU, geheugen, bus, ... • von Neuman architectuur: fetch-execute cycle - basis software: assembler & machinetaal Operating Systems: memory management, process management, file management applicaties: spreadsheets, databases, AI, ... • basis netwerken & www • beperkingen van computer simulaties ¨ Talen en automaten
6 studie punten
• Inhoud: Deze cursus omvat een inleiding van automaten theorie en formele talen. Deze onderwerpen vormen de hoekstenen en de formele beschrijving van de werking van een automaat of een computer en van de syntax en de semantiek van talen zoals programmeertalen, coderingstalen en interfacetalen. We beginnen met een algemene inleiding van belangrijke concepten die in deze en in andere cursussen zullen gebruikt worden zoals formele bewijzen, inductieve bewijzen, strings, automaten en talen.
5/18
Curriculum Opleiding Informatica (versie 0.0)
Daarna gaan we dieper in op deterministische en niet-deterministische automaten, hun equivalentie en talen die aanvaard worden door deze automaten. We passen dit toe op text-search. Een volgend hoofdstuk gaat over reguliere expressies en reguliere talen. Het verband met eindige automaten wordt bestudeerd en algebraische wetten voor reguliere expressies worden gegeven. Dit wordt toegepast op UNIX en op het zoeken naar patronen in teksten. Verschillende eigenschappen van reguliere expressies worden onderzocht: pumping lemma, effect van Booleaanse expressies, homomorfismes, testen van equivalenties, emptyness en membership. In een laatste hoofdstuk wordt ingegaan op context-vrije talen. Na een informele benadering worden parse trees uitgelegd. Context-vrije talen worden toegepast op YACC en XML. Tenslotte wordt de ambiguiteit in context-vrije talen besproken. • Studiemateriaal: De eerste vijf hoofdstukken van het volgende boek worden gevolgd: J. Hopcroft, R. Motwani, J. Ullman, Introduction to Automata Theory, Languages, and Computation, Add. Wesley, 2001, http://www-db.stanford.edu/~ullman/ialc.html ¨ Gegevensstructuren
6 studie punten
• Competentie • Aan het eind van het opleidingsonderdeel gegevensstructuren zijn de studenten in staat om: (Zelfstandig en in groep) voor eenvoudige, realistische informaticaproblemen oplossingen te ontwerpen en deze te implementeren in een concreet systeem, met behulp van denkprocessen en technieken die professionele informatici gebruiken. • Of in meer detail: (Zelfstandig en in groep) voor eenvoudige, realistische informaticaproblemen (1) oplossingen te ontwerpen volgens de principes van object-oriented design (OOD), abstract data types (ADT) en top-down design (TDD) en (2) deze oplossingen op deskundige wijze te implementeren in een concreet systeem met weloverwogen keuzes betreffende de organisatie van de gegevens (de gegevensstructuren). • Doelstellingen: • Inzicht hebben in de verschillende componenten van de software lifecycle (= kennis). • Een onderscheid kunnen maken tussen het ontwerp van een oplossing enerzijds en de realisatie van een concreet systeem anderzijds, en dit ook voor elk gegeven probleem doen (= attitude). • De principes van object-oriented design, abstract data types en top-down design kunnen toepassen in de ontwerpfase (= kennis+vaardigheid+attitude). • Programmeervaardigheden verfijnen en de geschikte gegevensstructuren kunnen kiezen voor de implementatie van een concreet systeem (= kennis+vaardigheid). • Het tot een gewoonte maken elk stukje programma, hoe klein ook, goed te documenteren (=attitude). • Voorkennis: De studenten dienen vertrouwd te zijn met de grondslagen van een hogere programmeertaal zoals Oberon, C, Pascal, enz.. Dit betekent dat ze alle aspecten van zo’n taal bestudeerd hebben en zelfstandig kunnen toepassen op kleine en elementaire programmeerproblemen. [> Inleiding Programmeren] • Inhoud: • Programmeerprincipes en software engineering
6/18
Curriculum Opleiding Informatica (versie 0.0)
• • •
• • • • •
•
Gegevensabstractie • ADT geordende lijst Recursie • Acht koninginnen probleem - backtracking • Towers of Hanoi Searching • Sequentieel • Binair • Efficiëntie (O) ADT stack Algebraïsche uitdrukkingen - haakjes controleren - evalueren (infix, prefix, postfix) ADT queue Bomen • ADT binaire boom • ADT binaire zoekboom Tabellen • ADT tabel • ADT priority queue • Heaps -heapsort • 2-3 bomen • AVL bomen • Hashing • Gegevens met meerdere organisaties Externe methoden • Externe mergesort • Zoeken in externe tabellen • Indexeren van externe bestanden • Externe hashing • B-bomen • Multiple indexing
¨ Inleiding Software Engineering
6 studie punten, 15u theorie + 45u praktijk
• Doel: Eerste kennismaking met beheersing van informatica-projecten • Inhoud: - Testen, Contracten (pre- & post condities), Tijdsschatting - Beperkte vorm van UML - Toepassen van bovenstaande • Onderwijsvorm: - Project • Examenvorm - Permanente evaluatie (projectverdediging) • Voorkennis: - Programmeren in een objectgerichte programmeertaal (> Inleiding Programmeren) - Lineaire Regressie (> Wiskunde 2)
7/18
Curriculum Opleiding Informatica (versie 0.0)
8/18
¨ Computernetwerken
6 studie punten
• Inhoud Omwille van de inherente complexiteit van computernetwerken worden ze bestudeerd aan de hand van een gelaagd model (layers). In deze cursus behandelen we de volgende lagen: fysische laag (signalen in tijds- en frequentiedomein, analoge en digitale signalen,...), medium access control laag (LAN protocols zoals Ethernet), datalink laag (foutdetectie en correctie, flow controle), netwerk laag (ther IP protocol), transport laag (TCP en UDP protocols) , applicatielaag (HTTP, mail,...). De nadruk wordt gelegd op essentiele mechanismen en algoritmen die gebruikt worden in de verschillende lagen, met speciale aandacht voor de protocols die in het Internet worden gebruikt (Ethernet, IP, TCP, HTTP...). Tenslotte wordt netwerk security behandeld. 2de jaar
numerieke lineaire algebra gevorderd programmeren machines en berekenbaarheid algoritmen en complexiteit computersystemen softwareontwerp databases TOTAAL profileringsruimte
SEM 1 9 6 6
21
SEM 2
6 9 6 6 27
JAAR 9 6 6 6 9 6 6 48 12
¨ Numerieke Lineaire Algebra
9 studie punten
• Inhoud • Matrixrekening en oplossen van stelsels • elementair rekenen, • blokvermenigvuldiging, • rijechelonvorm van een matrix, • Gaussreductie, • determinanten • Algemene vectorruimten • voortbrengers, • basissen en dimensie voor eindigdimensionale vectorruimten, • direkte som en direkt product, • nulruimte en kolommenruimte en rang van een matrix, • lineaire afbeeldingen en matrixvoorstelling, • eigenwaarden en eigenvectoren, • Vector normen, matrix normen • Eindige precisie matrix rekenen, conditiegetal • Gestructureerde matrices (driehoeksmatrices, symmetrische matrices, ...) • Numeriek oplossen stelsels lineaire vergelijkingen: directe methoden • Roundoff analyse van Gaussische eliminatie • LU Factorisatie • Orthogonaliteit en Kleinste Kwadraten (QR factorisatie)
Curriculum Opleiding Informatica (versie 0.0)
• Numeriek oplossen stelsels lineaire vergelijkingen: iteratieve methoden • Numerieke berekening van eigenwaarden/eigenvectoren • Singuliere waarden decompositie ¨ Gevorderd Programmeren
6 studie punten, 30u theorie + 30h practicum
• Doelstelling: Deze cursus houdt een grondige kennismaking met de programmeertaal C++ in, met nadruk op het objectgeoriënteerd programmeren. Daarvan wordt ook de theoretische achtergrond bekeken. • Inhoud: Een uitgebreid overzicht van de C++ syntax met vooral aandacht voor de C++ aspecten die ondersteuning geven aan het objectgeoriënteerd programmeren zoals overerving en polymorfisme. Ook theoretische noties zoals het substitutie principe, covariatie, en contravariatie komen aan bod. Tegelijkertijd wordt het idioom (het typische taalgebruik in C++ programma’s) bekeken en ook ingeoefend in de practica. Inleidende begrippen van UML (Unified Modeling Language) worden ingevoerd waar mogelijk om het programmaontwerp te visualiseren. • Vereiste voorkennis: Inleiding Programmeren en Inleiding Software Engineering. • Onderwijsvorm: Hoorcollege met demonstraties voor de theorie. Begeleide werksessies in het computerlabo voor de practica. • Examenvorm: Mondeling voor de theorie, permanente evaluatie. • Verplicht studiemateriaal: [1] The C++ Programming Language, B. Stroustrup, Addison-Wesley [2] Cursusnota’s ¨ Machines en Berekenbaarheid
6 studie punten
• Inhoud - Turing machines en hun talen, basisdefinities - Programmeertechnieken voor TM, Multitape TM - Turingmachines en computers, universele TM - Onbeslisbaarheid: niet-RE talen, diagonalizatie - Recursieve talen, universele taal - Onbeslisbare problemen voor TM, Stelling van Rice (evt in Algoritmen en complexiteit) • Studiemateriaal Hoofdstuk 8 en de eerste helft van hoofdstuk 9 uit "Intoduction to Automata Theory, Languages and Computation", Hopcroft, Motwani, Ullman, Addison-Wesley, 2001. • Voorkennis: talen en automaten ¨ Algoritmen en Complexiteit
6 studie punten
• Inhoud - (Eventueel) aanvullingen Pushdown automaten en contectvrije talen. - (Eventueel) een concreet niet-berekenbaar probleem: PCP.
9/18
Curriculum Opleiding Informatica (versie 0.0)
- Berekeningsmodellen en complexiteit: RAM, RASP, Turing Machine, uniforme en logaritmische complexiteit. Worst-case en average case complexiteit. - Toepassing op concrete algoritmen: lexicografisch ordenen, quicksort, heapsort, opzoeken van woorden. - Intractable problemen: P versus NP, algoritme van Kruskal, TSP. - NP problemen: SAT, 3SAT, reducties (bv naar hamiltonian circuit). - Plaatscomplexiteit, verband met tijdscomplexiteit. - Gerandomizeerde algoritmen. • voorkennis: Machines en berekenbaarheid, gegevensstructuren, grafen, automaten ¨ Computersystemen
9 studie punten
• Inhoud - Overview of Operating Systems - Processes, threads and microkernels - Concurrency, mutual exclusion, synchronisation - Deadlock and I/O management - Scheduling - Access-control and security - (practical) Unix shell programming, programming for concurrency
• • • • • • • • - digitale logica: Boolse algebra + reductietechnieken, basis logische componenten, multiplexer, flip flops, finite state machines, ... - hierarchie, lagen-model van computersystemen - gevorderde data representatie + computer aritmetiek (hardware implementatie & consequenties) - RISC/CISC - Instructie Set Architectuur van een moderne computer (SPARC) - compilation/assembly process/linking/loading/executing - datapath en controle sectie - microarchitectuur & hardwired control (VHDL) - memory - input & output - communicatie/networks - trends in computerarchitectuur ¨ Softwareontwerp
6 studiepunten, 15u theorie + 60h practicum
• Doelstelling: Deze cursus biedt een kennismaking met softwareontwerp en met het werken in groep aan een softwareontwikkelingsproject. • Inhoud: In de theoretische les wordt eerst een summier overzicht gegeven van de typische stappen in een softwareontwikkelingtraject. Daarna wordt er ingegaan op de analyse en vooral het ontwerp. De Unified Modeling Language (UML) wordt als taal gehanteerd om ontwerpen weer te geven. Er wordt besproken wat Design Patterns zijn en enkele van de prominente Design Patterns worden expliciet bestudeerd. In het practicum wordt in groepen van vier tot zes personen gewerkt aan een project softwareontwikkeling. Er wordt een duidelijke opgave gedaan van welke materialen op welk tijdstip afgeleverd moeten worden (website, modellen, documentatie, code, testresultaten enzovoort). Daarbij wordt dan uiteraard veel aandacht besteed aan de ontwerpfase. Als voertaal voor de implementatie wordt de programmeertaal C++ gebruikt.
10/18
Curriculum Opleiding Informatica (versie 0.0)
11/18
• Vereiste voorkennis: Gevorderd Programmeren. • Onderwijsvorm: Hoorcollege met demonstraties voor de theorie. Groepswerk in het computerlabo voor het practicum. • Examenvorm: Permanente evaluatie met inbegrip van presentaties. • Verplicht studiemateriaal: [1] The Unified Modeling Language User Guide, G. Booch, J. Rumbaugh, I. Jacobson, Addison-Wesley [2] Design Patterns, E. Gamma, R. Helm, R. Johnson, J. Vlissides, Addison-Wesley [3] Cursusnota’s ¨ Databases
6 studie punten
• Inhoud Deze cursus geeft een inleiding in de database systemen in het algemeen en legt verder de nadruk op het ontwerpen van database toepassingen en het gebruik van SQL als datbase management taal. Eerst worden database processen en de ontwikkeling van database toepassingen geillustreerd.Er wordt uitgelegd wat databse modeling betekent via het entity-relation model. Het relationele database model wordt gedefinieerd samen met zijn algebra. De kern van de cursus is het hoofdstuk over SQL. Hierin wordt het query en het update gedeelte samen met de triggers en de constraints besproken. Men gebruikt ORACLE in de toepassingen. Het eerste deel van de cursus sluit af met een inleiding van de koppeling van databases met het Web. In een tweede deel onderzoeken we de onderbouw en de basisbegrippen van databases. Het ontwerp van databases wordt nader besproken. We gaan in op functionele afhakelijkheden, de lijst-algebra, datalog, verschillende calculi en de expressieve kracht van SQL. • Examenvorm De evaluatie van deze cursus bestaat een theorie, oefeningen en een project. • Studiemateriaal J. Ullman, J. Widom, A First Course in Database Systems, Prentice Hall, 2001, http://www-db.stanford.edu/~ullman/fcdb.html 3de jaar
eindwerk databases (XML& webtechnologie) telecommunicatie numerieke en grafische technieken software engineering TOTAAL profileringsruimte
SEM 1 5 6
SEM 2 4 6
9 6 15
6
JAAR 9 6 6 9 6 36 24
¨ Eindwerk
9 studie punten
• Doel: Ervaring verwerven met elders aangeleerde technieken (cfr. Databases, Software Engineering, …)
Curriculum Opleiding Informatica (versie 0.0)
• Inhoud: - Uitbouwen van een concreet software-systeem - Doorlopen van alle fases (specificatie, ontwerp, implementatie, testen, documentatie) - Planning - Verantwoording technische keuzes • Onderwijsvorm: - Project • Examenvorm - Permanente evaluatie (projectverdediging) • Voorkennis: - Goed programmeren (> Inleiding Programmeren & Gevorderd Programmeren) - Ontwerp- en implementatie technieken (> Software ontwerp, Databases) - Projectbeheersingstechnieken (> Inleiding Software Engineering, Software Engineering) ¨ DATABASES, XML, WEBTECHNOLOGIE
6 studie punten
• Inhoud - In een eerste deel gaan we verder in op basisbegrippen uit de database wereld. We bespreken verschillende modellen van transation management. Locks en concurrency worden besproken. Failures en recovery worden behandeld. Daarna gaan we in op enkele andere algemene aspecten van databases zoals veiligheid, optimizatie en betrouwbaarheid. Gedistribueerde en temporele databases worden behandeld. De basisbegrippen van datamining worden uitgelegd. - In een tweede deel bespreken we XML bekeken vanuit de database wereld. We zeggen wat semigestructureerde databases zijn en gaan in op ondervragings- en updatetechnieken. Dit wordt geillustreerd met XQuery en XUpdate. Hierop worden ook toepassingen gemaakt. DTD's en het verband met HTML en XSLT wordt besproken. - In een derde deel wordt aandacht besteed aan de koppeling met het Web en met hypermedia.De opkomst van het Internet heeft een hele waaier van technologien doen ontstaan die gebruikt worden om gegevens uit databanken te halen en te publiceren in webtoepassingen. We beschrijven de Three Tier architectuur die hieraan ten grondslag ligt, en gaan in op enkele standaarden als ODBC, COM en .NET. De bedoeling is een overzicht van deze technieken en de fundamenten ervan te bieden, geen gedetailleerde bespreking. ¨ Telecommunciatiesystemen
• Doelstelling: Het doel van deze cursus is de architectuur en de werking van een aantal hedendaagse telecommunicatiesystmen te bespreken . Hierbij wordt gebruik gemaakt van het ISO referentie model bestudeerd in de cursus Computernetwerken (1ste bachelor). Dit betekent niet dat voor elk systeem alle lagen besproken worden. Er wordt een selectie gemaakt per systeem van de meest relevante aspekten. • Inhoud Meer in het bijzonder komen volgende telecommunicatiesystemen aan bod: - telefonienetwerken, - SDH/PDH netwerken, - ISDN netwerken, - ATM netwerken, - access netwerken (APON, EPON, ADSL/VDSL, HFC), - draadloze access netwerken (GSM, GPRS, UMTS)
12/18
Curriculum Opleiding Informatica (versie 0.0)
- Draadloze LANs (WiFi, Hiperlan) - Etc. De bovenstaande lijst wordt aangepast naargelang de evolutie. Naast algemene principes die gebruikt worden voor het ontwerp en de werking van deze netwerken, worden ook architecturale aspecten behandeld. In het bijhorend praktisch deel van deze cursus wordt een eenvoudig protocol ontworpen, waarbij aandacht besteed wordt aan de specificatie, ontwerp, ontwikkeling (programmeren), testen van het protocol. ¨ Numerieke en Grafische technieken
9 studie punten
• Nog in te vullen (Annie Cuyt) ¨ Software Engineering
6 studie punten
• Doel: Overzicht van technieken om informatica-projecten te beheersen
• Inhoud:
- Software levenscyclus(Behoeften specificatie, Analyse, Ontwerp, Implementatie, Testen, Onderhoud) - Kwaliteitscontrole (reviews, ISO 9000, CMM, metingen) - Projectbeheer (Pert & Gantt, Kostschattingen) • Onderwijsvorm: - Hoorcolleges en Practicum • Examenvorm - Schriftelijk en mondeling examen • Voorkennis: - Goed programmeren (> Inleiding Programmeren & Gevorderd Programmeren) - Project ervaring (> Inleiding Software Engineering & Software ontwerp) - Hoare triples, waarheidstabellen (NOT, AND, OR, IF) (> ???) - Lineaire en logaritmische regressie (> Wiskunde 2) - Verzamelingenleer, equivalentierelaties, partitie (> Wiskunde 1) Profileringsruimte Informatica
Hieronder sommen we de vakken op die we zelf zullen invullen. ¨ Compilers
6 studie punten
• Eerste deel: Aanvullingen voor de formele basistechnieken: - Pushdown automaten, parsing algoritmen, LL(k) en LR(k) gammatica's. - Attribuutgrammatica's • Tweede deel: structuur van een typische compiler voor een imperatieve programeertaal. Enkele aspecten die aan bod komen: - geheugenorganizatie, run-time systeem - specificatie van de vertaling - de logische fazen van het compilatieproces • Derde deel: project Er wordt, naast een inzicht in de besproken compilertechnieken, van de studenten verwacht dat zij die kunnen integreren tot een werkende compiler voor een eenvoudige imperatieve taal.
13/18
Curriculum Opleiding Informatica (versie 0.0)
• Voorkennis: talen en automaten, een programmeertaal, datastructuren, enige programmeerervaring ¨ Inleiding Gedistribueerde en Parallelle Systemen
6 studie punten
• Voorkennis: computersystemen II • Inhoud • Inleiding •
•
•
•
•
- Achtergrond: parallel vs distributed Architectuur - parallelisme in processor - parallelle/gedistribueerde systemen: SIMD, SMP, CC-NUMA, Distributed Memory, Clusters, Grids, Loosely Coupled Gedistribueerde Operating Systems - thread scheduling - gedistribueerde OS’s - i.h.b. gedistribueerde filesystemen - beheer van gedistribueerde resources (naming, sharing, availability, reliability…) - security - authenticatie - authorizatie Concepten ivm concurrency/synchronisatie - synchronisatie primitieven & OS-ondersteuning ervan - gedistribueerde deadlock, mutex - gedistribueerde klok Programmeerniveau - data parallelisme en taak parallelisme - middleware systemen (DCOM, CORBA, MOM, …) - parallelle algoritmen / decompositie van algoritmen Case Study - www architectuur (communicatie, caching, replicatie, security, …) - Java thread API
¨ Graphics
6 studiepunten, 30u theorie + 30h practicum
• Doelstelling: Deze cursus beoogt een overzicht te geven van de grafische technieken met als doel een realistische weergave van een drie-dimensionele wereld op een computerscherm. De nodige wiskundig-geometrische achtergrond voor deze cursus wordt aangebracht en onmiddellijk in praktijk gebracht. De practicumsessies dienen om de verworven inzichten in de praktijk om te zetten • Inhoud: In eerste instantie worden kort de hardwarematige elementen belicht die grafische output kunnen realiseren. Daarna worden de grafische primitieven voor het afbeelden van elementaire krommentoegelicht. Driedimensionale transformaties in homogene coördinaten van de wereld zowel als de beschrijvende assenstelsels worden behandeld, met o.a. een wereldbeschrijving vanuit camera oogpunt als resultaat. Projectieve transformaties worden ingevoerd om uiteindelijk te leiden tot een tweedimensionale geprojecteerde afbeelding van de wereld. Realisme wordt toegevoegd door fenomenologische modellen te gebruiken voor
14/18
Curriculum Opleiding Informatica (versie 0.0)
15/18
inkleuring en belichting van een polygonaal opgebouwde wereld. Ook texturemapping om wereldelementen te bedekken, en schaduwvorming, worden behandeld. Zowel Z-buffering (efficient maar beperkt realistisch) als Raytraycing (traag maar zeer realistisch) worden behandeld om naast back-face culling de overdekte elementen uit de figuren te weren. De practica gebeuren in C++ met gebruik van de OpenGL library. • Vereiste voorkennis: De wiskunde- en programmeervakken uit de eerste twee bachelorjaren • Onderwijsvorm: Hoorcollege met interactieve demonstraties voor de theorie. Permanente evaluatie aan de hand van een aantal korte projectjes. • Examenvorm: Mondeling voor de theorie, permanente evaluatie voor de praktijk. • Verplicht studiemateriaal: [1] F. S. Hill Jr., Computer Graphics using OpenGl, Prentice Hall 2001, ISBN 0-02354856-8. ¨ Toegepaste logica & AI
6 studie punten
• Studiemateriaa;: • Logica voor Informatici, Van Benthem, Van Ditmarsch, Ketting, Meyer-Viol • Essentials of Artificial Intelligence, M. Ginsberg • Computational Intelligence, A Logical Approach, D. Poole. A. Mackworth, R. Goebel • Inhoud • Toegepaste Logica • Voorbij de predikaatlogica • Modale logica • Logica en berekenbaarheid • Logica en imperatief programmeren • Logisch programmeren • Modale structuren in kennisrepresentatie • Redeneervormen met onvolledige informatie • Artificiele Intelligentie • Zoekmethodes • blinde zoekmethodes • heuristische zoekmethodes • specifieke zoekmethodes voor constraint satisfaction problemen (?) • spelspecifieke zoekmethodess (?) • niet-deterministische, iteratieve zoekmethodes (simulated annealing, GA, ...) • Kennisrepresentatie- en inferentie • eerste orde logica (is besproken in het deel toegepaste logica) • frames (?) • semantische netten (?) • Kennissystemen (rule-based, case-based) • Planning • Basistechnieken machine learning (inclusief neurale netwerken) Profileringsruimte
Hieronder sommen we de vakken op die we graag ingevuld zien door andere onderwijscommissie.
Curriculum Opleiding Informatica (versie 0.0)
16/18
¨ Economie
6 studie punten ¨ Natuurkunde
6 studie punten ¨ Wetenschappelijk Engels
6 studie punten ¨ Wetenschapsfilosofie
6 studie punten ¨ Presentatietechnieken
6 studie punten Minor Informatica
Het volgende programma zouden we aanbieden als minor informatica, in eerste instantie voor de Faculteit Wetenschappen (gezien de nodige voorkennis), maar studenten uit andere richtingen kunnen ook inschrijven. Programmeren Computer Systemen Databases Numerieke en Grafische technieken Keuzevak TOTAAL Keuzevakken Artificiële Intelligentie Web-technologie en Internet
JAAR 6 6 6 6 6 30
6 6
¨ Programmeren
6 studie punten
• Inhoud - algorithmes - computertaal: bv JAVA ¨ Computer Systemen
6 studie punten
• Inhoud - overzicht computersystemen + korte geschiedenis - hierarchie, lagen-model van computersystemen - data representatie + getallenstelsels (binair, hexadecimaal, ...) basis hardware: transistoren, logische poortjes, multiplexer, flip-flop, ... - basis computer architectuur: CPU, geheugen, bus, ... - von Neuman architectuur: fetch-execute cycle - basis software: assembler &
Curriculum Opleiding Informatica (versie 0.0)
machinetaal - Operating Systems: memory management, process management, file management - applicaties: spreadsheets, databases, AI, ... - basis netwerken & www - beperkingen van computer simulaties ¨ Databases
6 studie punten
• Zie "Databases" in 2de jaar ¨ Numerieke & Grafische technieken
6 studie punten
• Zie "Numerieke en Grafische technieken" in 3de jaar ¨ Artificiele Intelligentie
6 studie punten
• Zie "Artificiële Intelligentie" in Profileringsruimte Informatica ¨ Web-technologie & Internet
6 studie punten
• Nog in te vullen (Jan Paredaens)
17/18
Curriculum Opleiding Informatica (versie 0.0)
Curriculum Master … Conclusies Quality Check * naamgeving Referenties [1] Zelfstudie Informatica ten behoeve van de onderwijsvisitatie. Onderwijscommissie Informatica, Universiteit Antwerpen, Juni 2001 [2] Toekomstscenario's Opleiding Informatica (versie 0.3). Onderwijscommissie Informatica, Universiteit Antwerpen, 6 februari 2002. [3] Eindtermen Opleiding Informatica (versie 0.3). Onderwijscommissie Informatica, Universiteit Antwerpen, 6 juli 2002.
18/18