Curriculum Bachelor Informatica Universiteit Antwerpen –Faculteit Wetenschappen Versie 0.2 - woensdag, 4 december, 2002 (Tijdens curriculumbespreking van 4 december 2002). Daarna nog te bespreken op de Onderwijscommissie — ?? 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 gedefiniëerd [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 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 Opleiding Informatica (versie 0.2)
2/19
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
artificiële intelligentie
computationele wetenschappen
telecommunicatie
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).
computationele wetenschappen
telecommunicatie
software ontwikkeling
gegevens-en informatiebeheer
Tijdens de master opleiding bieden we vier opties aan: • gegevens en informatiebeheer • software ontwikkeling • telecommunicatie • computationele formeel denken wetenschappen Deze opties sluiten nauw aan bij wetenschappelijke basis de aanwezige onderzoeksexpertise, zoals trouwens vereist voor een master opleiding. maatschappelijke vorming Desalnietemin is het de bedoeling samen te werken met Figuur 2: Modulair overzicht van de Master Informatica andere departementen en universiteiten om de nodige kwaliteitsgaranties te bieden.
Curriculum Opleiding Informatica (versie 0.2)
3/19
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 discrete wiskunde inleiding computersystemen talen en automaten gegevensstructuren inleiding software engineering calculus en statistiek computernetwerken TOTAAL profileringsruimte
SEM1 6 9 6 6
27
SEM2
6 6 9 6 27
JAAR 6 9 6 6 6 6 9 6 54 6
Curriculum Opleiding Informatica (versie 0.2)
4/19
» Inleiding programmeren
6 studiepunten
• Voorkennis - Geen. • Doelstelling - inleiding tot hedendaagse basistechnieken van het programmeren. - programmeertaal: Oberon-2 • Inhoud - procedurele aanpak - syntactische constructies (dataspecificatie en verwerkingsinstructies) a.h.v EBNF - types en samengestelde types - top-down ontwerp - abstractiemogelijkheden - modulair programmeren - inleiding object-gericht programmeren (expliciete pointer syntax, encapsulatie, hergebruik) - abstractiemogelijkheden (procedureel, klassiek ADT, objectgericht) » Discrete Wiskunde
9 studie punten
• Voorkennis - Verzamelingen, functies • Doelstelling - Basiskennis discrete wiskunde ter ondersteuning van informatica-vakken • Studiemateriaal - Maurer en Ralston, voorlopig in het Engels • Inhoud - 1. Preliminaries: Verzamelingen, relaties, functies, notaties, equivalentierelaties, partities, ordening - 3. Inductie: Varianten van inductie, inductie en algoritmes - 5. Combinatoriek: Permutaties, combinaties, inclusie, exclusie, binomium van Newton - 7. Kanstheorie: Onafhankelijkheid, voorwaardelijke kans, stelling van Bayes, gemiddelde en variantie, randomwaarden 2. Random variabelen en distributies * Random variabelen * Distributies: CDF en PDF, discreet en continu * Verwachtingswaarde en momenten * Belangrijke random variabelen: exponentiele, uniform, Bernoulli, geometrisch, binomiaal, normaal,... - 8. Logica: Propositielogica, deductie, boolse algebra, predicatenlogica - 9. Oneindige processen: Rijen en reeksen, ordenotatie, sommatie van reeksen, machtreeksen, differentievergelijkingen » Calculus & Statistiek - 9ptn - Annie Cuyt
9 studie punten
Curriculum Opleiding Informatica (versie 0.2)
• Voorkennis - Rekenkunde van de reele getallen, gebruik coordinaten, elementaire functies, berekening van limieten, afgeleiden en eenvoudige integralen • Doelstelling - Basiskennis discrete wiskunde ter ondersteuning van informatica-vakken • Studiemateriaal - (nog te zoeken: als voorbeeld Advanced Calculus van Spiegel) • Inhoud - 1. Calculus * Limieten * Functies * Continuiteit * Afgeleiden * Integralen * Machtreeksontwikkelingen (Taylorpolynomen) * Fourierreeksen * Functies meerdere veranderlijken * Partiele afgeleiden * Rekenen met complexe getallen - 4. Beschrijvende statistiek * frequentie en histogrammen * Belangrijke kansverdelingen (normale, Chi-kwadraat, t-verdeling, ...) * Parameterschattingen en betrouwbaarheidsintervallen * Lineaire & Logaritmische regressie » Inleiding Computersystemen
6 studie punten
• Voorkennis - Nihil • Doelstelling - @@Nihil@@ • 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 & 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
• Voorkennis - Elementaire verzamelingenleer • Doelstelling
5/19
Curriculum Opleiding Informatica (versie 0.2)
6/19
- Inzicht krijgen in specificatie versus implementatie met behulp van automaten theorie en formele talen. • Studiemateriaal - [vijf eerste hoofdstukken uit]: J. Hopcroft, R. Motwani, J. Ullman, Introduction to Automata Theory, Languages, and Computation, Add. Wesley, 2001, http://wwwdb.stanford.edu/~ullman/ialc.html • Inhoud - algemene inleiding van belangrijke * formele bewijzen, inductieve bewijzen, strings, automaten en talen - deterministische en niet-deterministische automaten, * equivalentie en aanvaarde talen * toepassing: text-search. - reguliere expressies en reguliere talen * verband met eindige automaten * algebraische wetten voor reguliere expressies * toepassing: UNIX en zoeken naar patronen in teksten. * eigenschappen: pumping lemma, effect van Booleaanse expressies, homomorfismes, testen van equivalenties, emptyness en membership - context-vrije talen * parse trees uitgelegd * context-vrije talen (toegepast op YACC en XML) * ambiguiteit in context-vrije talen besproken. » Gegevensstructuren
6 studie punten
• Voorkennis - vertrouwd met de grondslagen van een hogere programmeertaal (Oberon, C, Pascal, enz.) = alle aspecten van zo’n taal bestudeerd hebben + zelfstandig kunnen toepassen op kleine en elementaire programmeerproblemen. [> Inleiding Programmeren] • 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). • Doelstelling - 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).
Curriculum Opleiding Informatica (versie 0.2)
• Inhoud - Programmeerprincipes en software engineering - 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
• Voorkennis - Programmeren in een objectgerichte programmeertaal (> Inleiding Programmeren) - Lineaire Regressie (> Wiskunde 2) • Doelstelling - Eerste kennismaking met beheersing van informatica-projecten - Voorbereiden op gevorderd programmeren • Inhoud - Polymorphisme, gebruik van overerving - Testen, Contracten (pre- & post condities), Tijdsschatting - Beperkte vorm van UML - Toepassen van bovenstaande - Vergelijking van syntaxbeschrijvingen a.h.v. EBNF
7/19
Curriculum Opleiding Informatica (versie 0.2)
8/19
» Computernetwerken
6 studie punten
• Voorkennis - Discrete Wiskune • Doelstelling - Inzichten in de belangrijkste protocollen van de verschillende lagen van het OSI-model • Inhoud - 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...) - 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 (het IP protocol) - transport laag (TCP en UDP protocols) - applicatielaag (HTTP, mail,...) - netwerk security 2de jaar
numerieke lineaire algebra gevorderd programmeren machines en berekenbaarheid algoritmen en complexiteit computersystemen softwareontwerp databases TOTAAL profileringsruimte
SEM1 0 6 6 0 9
21
SEM2 9 0 0 6 0 6 6 27
» Numerieke Lineaire Algebra
9 studie punten
• Voorkennis - Discrete Wiskunde - floating-point aritmetiek • Doelstelling - @@Nihil@@ • 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,
JAAR 9 6 6 6 9 6 6 48 12
Curriculum Opleiding Informatica (versie 0.2)
-
-
9/19
* nulruimte en kolommenruimte en rang van een matrix, * lineaire afbeeldingen en matrixvoorstelling, * eigenwaarden en eigenvectoren, Normen, 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) Numeriek oplossen stelsels lineaire vergelijkingen: iteratieve methoden Numerieke berekening van eigenwaarden/eigenvectoren
» Gevorderd Programmeren
6 studie punten
• Voorkennis - Inleiding Programmeren - Inleiding Software Engineering. - praktische UNIX kennis (uit Computersystemen) • Doelstelling - grondige kennismaking met de programmeertaal C++, - nadruk op het objectgeoriënteerd programmeren • Studiemateriaal - The C++ Programming Language, B. Stroustrup, Addison-Wesley • Inhoud - C++ syntax (specifiek objectgeoriënteerd programmeren zoals overerving en polymorfisme) - Theoretische noties (het substitutie principe, covariatie, en contravariatie) - C++ idiomen (typische taalgebruik in C++ programma’s) - Begrippen van UML (Unified Modeling Language) - Klasse ontwerp » Machines en Berekenbaarheid
6 studie punten
• Voorkennis - talen en automaten • Doelstelling - Studie van fundamentele eigenschappen van algoritmen • Studiemateriaal Hoofdstuk 8 en de eerste helft van hoofdstuk 9 uit "Intoduction to Automata Theory, Languages and Computation", Hopcroft, Motwani, Ullman, Addison-Wesley, 2001. • 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)
Curriculum Opleiding Informatica (versie 0.2)
10/19
» Algoritmen en Complexiteit
6 studie punten
• Voorkennis - Machines en berekenbaarheid - Gegevensstructuren • Doelstelling - Analyse van de complexiteit van algoritmen • Studiemateriaal - [hoofdstukken ... uit]: J. Hopcroft, R. Motwani, J. Ullman, Introduction to Automata Theory, Languages, and Computation, Add. Wesley, 2001, http://wwwdb.stanford.edu/~ullman/ialc.html • Inhoud - (Eventueel) aanvullingen Pushdown automaten en contectvrije talen. - (Eventueel) een concreet niet-berekenbaar probleem: PCP. - 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. » Computersystemen
9 studie punten
• Voorkennis - Inleiding Computersystemen - Inleiding Programmeren - Boolse algebra • Doelstelling - @@Nihil@@ • 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)
Curriculum Opleiding Informatica (versie 0.2)
-
11/19
geheugenhierarchie input & output communicatie/networks Java virtuele machine trends in computerarchitectuur
» Softwareontwerp
6 studiepunten
• Voorkennis - Gevorderd Programmeren • Doelstelling - Deze cursus biedt een kennismaking met softwareontwerp en met het werken in groep aan een softwareontwikkelingsproject. • Studiemateriaal - The Unified Modeling Language User Guide, G. Booch, J. Rumbaugh, I. Jacobson, Addison-Wesley - Design Patterns, E. Gamma, R. Helm, R. Johnson, J. Vlissides, Addison-Wesley • Inhoud - summier overzicht softwareontwikkelingtraject - analyse en ontwerp - Unified Modeling Language (UML) - Design Patterns - Toegepast a.h.v. project in groepen van vier tot zes personen » Databases
6 studie punten
• Voorkennis - @@Nihil@@ • Doelstelling - inleiding in de database systemen - ontwerpen van database toepassingen - gebruik van SQL als datbase management taal • Studiemateriaal - J. Ullman, J. Widom, A First Course in Database Systems, Prentice Hall, 2001, http://wwwdb.stanford.edu/~ullman/fcdb.html • Inhoud - illustratie van database processen en de ontwikkeling van database toepassingen - databse modeling (entity-relation model) - definitie relationele database model & relationele algebra - SQL (queries, updates, triggers en constraints) - koppeling van databases met het Web - onderbouw en de basisbegrippen van databases - ontwerp van databases (functionele afhakelijkheden, de lijst-algebra, datalog, verschillende calculi en de expressieve kracht van SQL). 3de jaar
eindwerk databases (XML& webtechnologie) telecommunicatiesystemen
SEM1 0 6 0
SEM2 9 0 6
JAAR 9 6 6
Curriculum Opleiding Informatica (versie 0.2)
numerieke en grafische technieken software engineering TOTAAL profileringsruimte
12/19
9 6 21
0 0 15
9 6 36 24
» Eindwerk
9 studie punten
• Voorkennis - Eerste twee bachelor-jaren succesvol beeindigd • Doelstelling - Ervaring verwerven met elders aangeleerde technieken (cfr. Databases, Software Engineering, … ) • Inhoud - Project of stage met aandacht voor een of meer van de volgende aspecten * Uitbouwen van een concreet software-systeem * Doorlopen van alle fases (specificatie, ontwerp, implementatie, testen, onderhoud, documentatie) van een software project * Planning * Verantwoording technische keuzes » Databases, XML, Webtechnologie
6 studie punten
• Voorkennis - Databases • Doelstelling - @@Nihil@@ • Inhoud - Deel 1: aanvullende begrippen uit de database wereld. * transaction management * Locks en concurrency * Failures en recovery * veiligheid, optimizatie en betrouwbaarheid * Gedistribueerde en temporele databases * basisbegrippen van datamining - Deel 2: XML * semigestructureerde databases * ondervragings- en updatetechnieken voor XML * XQuery en XUpdate * DTD's en het verband met HTML en XSLT - Deel 3: Web en hypermedia * de Three Tier architectuur * standaarden als ODBC, COM en .NET De bedoeling is een overzicht van deze technieken en de fundamenten ervan te bieden, geen gedetailleerde bespreking. » Telecommunicatiesystemen
6 studie punten
Curriculum Opleiding Informatica (versie 0.2)
13/19
• Voorkennis - Computernetwerken • Doelstelling - de architectuur en de werking van een aantal hedendaagse telecommunicatiesystmen te bespreken gebruik makend van het OSI referentie model (Dit betekent niet dat voor elk systeem alle lagen besproken worden. Er wordt een selectie gemaakt per systeem van de meest relevante aspekten) • Inhoud - telefonienetwerken - SDH/PDH netwerken - ISDN netwerken - ATM netwerken - access netwerken (APON, EPON, ADSL/VDSL, HFC) - draadloze access netwerken (GSM, GPRS, UMTS) - Draadloze LANs (WiFi, Hiperlan) - 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
• Voorkennis - Calculus en Statistiek, Numerieke Lineaire Algebra • Doelstelling - @@Nihil@@ • Inhoud (Voorlopig duidt I op het luik Numerieke technieken en II op het luik Grafische technieken; we willen echter de onderwerpen "ritsen" maar dat vraagt in de nabije toekomst nog wat overleg tussen Frans en Annie.) - Voor elk onderwerp wordt uitgegaan van een toepassing in de informatica (beeldverwerking, robotica, FPU implementatie, ...) en aansluitend daarop de theorie aangebracht. - Beide delen maken intensief gebruik van visualisatie-software zoals aangeboden in Maple, Matlab, Mathematica, GrafEq, ... - Formeel model onderliggend aan de IEEE754-854 standaard - Numerieke technieken * I1. Oplossen van een niet-lineaire vergelijking * I2. Oplossen van een stelsel niet-lineaire vergelijkingen * I3. Veelterminterpolatie * I4. Splines (t/m natuurlijke kubische die in de industrie gebruikt worden) * I5. Kleinste kwadraten modellen * I6. Rationale modellen * I7. Functiebenadering (niet discreet) * I8. Kwadratuur (inclusief Monte Carlo en RNG) * I9. Extrapolatie * De delen zijn afhankelijk van wat er reeds in wiskunde- of andere vakken is gezien. Voor de rest is het best de grafische technieken misschien uit te breiden op het ogenblik dat ze ook gedemonstreerd kunnen worden!
Curriculum Opleiding Informatica (versie 0.2)
14/19
- Grafische technieken * II1. grafische raster-scan output hardware * II2. impliciete-expliciete-parametrische vgln rechte en vlak * II3. eigenschappen van scalaire en vectorproducten * II4. affiene transformaties (punt- zowel als coordinaattransformaties) * II5. projectietechnieken (beperkt tot eenvoudig orthografisch en perspectief) * II6. eenvoudige verborgen lijn en vlak technieken * II7. 2- en 3-D (4-D) plotting » Software Engineering
6 studie punten
• Voorkennis - Gevorderd programmeren - Project ervaring (> Inleiding Software Engineering & Software ontwerp) - Logica (>Discrete Wiskunde) - Lineaire en logaritmische regressie (> Calculus en Statistiek) - Verzamelingenleer, equivalentierelaties, partitie (> Discrete Wiskunde) • Doelstelling - 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) - Deontologie Profileringsruimte Informatica
Hieronder sommen we de vakken op die we zelf zullen invullen. » Compilers
6 studie punten
• Voorkennis - talen en automaten, - een imperatieve programmeertaal (> Gevorderd Programmeren), - gegevensstructuren • Doelstelling - @@Nihil@@ • Inhoud - 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 * 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.
Curriculum Opleiding Informatica (versie 0.2)
15/19
» Inleiding Gedistribueerde en Parallelle Systemen
6 studie punten
• Voorkennis - Computersystemen (2de jaar) • Doelstelling - @@Nihil@@ • 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
• Voorkennis - Gevorderd programmeren - Numerieke en Grafische Technieken • Studiemateriaal - F. S. Hill Jr., Computer Graphics using OpenGl, Prentice Hall 2001, ISBN 0-02-354856-8. • Doelstelling - overzicht geven van de grafische technieken - een realistische weergave van een drie-dimensionele wereld op een computerscherm. • Inhoud - Projectieve transformaties => tweedimensionale geprojecteerde afbeelding van de wereld - Realisme a.h.v. fenomenologische modellen (inkleuring en belichting van een polygonaal opgebouwde wereld) - texturemapping & schaduwvorming
Curriculum Opleiding Informatica (versie 0.2)
16/19
- 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. » Toegepaste logica & AI
6 studie punten
• Voorkennis - Logica - Gegevensstructuren - Algoritmen en Complexiteit • Doelstelling - @@Nihil@@ • Studiemateriaal - 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 - 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. » Economie
6 studie punten » Natuurkunde
6 studie punten
Curriculum Opleiding Informatica (versie 0.2)
17/19
» 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. Voor diegenen die al een opleidingsonderdeel uit dit lijstje gevolgd hebben dienen voor een equivalent bedrag aan studiepunten een andere keuze te maken. Deze keuze wordt gevalideerd door de onderwijscommissie informatica. Studenten wiskunde die een minor informatica willen volgen, moeten in onderstaand lijstje " Programmeren en Gegevensstructuren" vervangen door "Gevorderd Programmeren" en " Capita Selecta Numerieke en Grafische technieken" vervangen door "Numerieke benaderingsleer". Programmeren en Gegevensstructuren Computer en Telecommunicatie Systemen Databases Capita Selecta Numerieke en Grafische technieken Keuzevak TOTAAL Keuzevakken Artificiële Intelligentie Web-technologie en Internet
» Programmeren
6 studie punten
• Voorkennis - @@Nihil@@ • Doelstelling - @@Nihil@@ • Inhoud - algoritmes - computertaal: bv JAVA » Computer- en Telecommunicatiesystemen
6 studie punten
• Voorkennis - @@Nihil@@
JAAR 6 6 6 6 6 30
6 6
SEM ? ? 2 1 30
Curriculum Opleiding Informatica (versie 0.2)
18/19
• Doelstelling - @@Nihil@@ • 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 & 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
• Niet hetzelfde als "Artificiële Intelligentie" » Web-technologie & Internet
6 studie punten
• Nog in te vullen (Jan Paredaens) Minor Informatica voor de Wiskunde
Twee basisvakken (Inleiding Computer Systemen en Gevorderd Programmeren) + de vier basispijlers. Inleiding Computer Systemen Gevorderd Programmeren Databases Software Ontwerp Computernetwerken Numerieke Benaderingsleer TOTAAL keuzevak informatica
JAAR 6 6 6 6 6 6 36 6
SEM 1 1 2 2 2 ?
Curriculum Opleiding Informatica (versie 0.2)
19/19
Curriculum Master Het programma van de Master dient nog uitgewerkt te worden. Conclusies De huidige versie bevat voor elk van de opleidingsonderdelen een lijstje van onderwerpen die daar behandeld zullen worden. Velen onder de inzenders hadden hun best gedaan om die beschrijving in een vlotte tekst te gieten (waarvoor dank), maar dat verhinderd een snelle lezing en dus ook validatie t.o.v. eindtermen. Vandaar dat alles is omgezet naar bullet-lists. Wat moer er nog gedaan worden ?
• Voorkennis. De voorkennis is op vele plaatsen ontbrekend, en op andere plaatsen te vaag. Gewoon refereren naar een ander opleidingsonderdeel is niet genoeg; zeker niet voor de referenties naar wiskundige- en theoretische vakken waar we preciezer moeten kunnen vastleggen wat we nodig hebben om credit-systemen en schakelprogramma's te definiëren. Vandaar de vraag om alle voorkennis op één van twee manieren te formuleren. (a) Een vaardigheid die overeenkomt met een doelstelling van een ander opleidingsonderdeel; daarmee zeggen we eigenlijk dat dit opleidingsonderdeel volledig gevolgd moet worden. (b) begrippen uit de inhoudslijst; daarmee zeggen we dat die voorkennis bij voorkeur in dit opleidingsonderdeel kan verworven worden. • Eindtermen. We moeten het curriculum nog valideren t.o.v. de eindtermen. Vandaar dat ik een nieuwe versie van de eindtermen heb gemaakt [3], waar we kunnen noteren in welke opleidingsonderdelen die eindtermen gedekt worden. Waar nodig zullen we de inhoud en/of de eindtermen moeten aanpassen. • Naamgeving. Er moet nog eens gekeken worden naar de consistentie van de naamgeving. Gebruiken we nederlandstalige begrippen (Databases of Databanken) ? Gebruiken we nummers (Wiskunde 1, Wiskunde 2, … ) of gebruiken we preciesere namen ? 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.4). Onderwijscommissie Informatica, Universiteit Antwerpen, 29 november 2002.