Eindtermen Opleiding Informatica Universiteit Antwerpen –Faculteit Wetenschappen Versie 0.1 - dinsdag, juni 4, 2002 Preliminaire versie, inclusief gedetailleerde eindtermen per rode draad. Te bespreken op de Bachelor/Master werkgroep informatica — juni 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/ Inleiding 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. Daarom poogt dit document de competenties op te sommen die een student dient te verwerven tijdens zijn opleiding Informatica. Het is de expliciete bedoeling op basis van die opsomming ons onderwijs te reorganiseren in functie van een 3-jarige Bachelor gevolgd door een 2-jarige Master opleiding. Doelstellingen Informatica is vandaag de dag alomtegenwoordig. Bij elke administratie fungeert informatica als een essentieel 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. Het ultieme doel is bekwame informatici af te leveren die in staat zijn om (a) op leidinggevend niveau te functioneren, (b) nieuwe ontwikkelingen in de informatica op de voet te volgen, en (c) deze waar nodig te exploiteren binnen hun beroepscontext. DISCUSSIE: Bovenstaande ultieme doel is een licht aangepaste versie van wat we in ons zelfstudierapport hebben neergeschreven. Blijven we daarachter staan ? Beroepsprofielen
Zoals bevestigd in het zelfstudierapport informatica [1] is de beroepscontext waarin onze studenten moeten functioneren enorm gevarieerd. Ze wordt in hoofdzaak bepaald door de sector waar de informatica wordt toegepast; zo is er bijvoorbeeld een hemelsbreed verschil tussen transactieverwerking in banksystemen en controlesystemen voor geautomatiseerde fabricageprocessen. Ook het soort organisatie heeft een niet te verwaarlozen invloed, aangezien KMO's en multinationals nu eenmaal andere eisen aan hun informatica afdeling stellen. Tenslotte is er ook een aanzienlijke jobmigratie, waardoor pas afgestudeerden — zeker in het begin van hun carrière— vaak in verschillende omgevingen zullen terechtkomen.
Eindtermen Opleiding Informatica (versie 0.0)
2/8
Ondanks die grote variëteit is het toch nuttig enkele typische beroepsprofielen te definiëren. Het weze duidelijk dat die alleen als leiddraad dienen, en dat de situatie op de werkvloer vaak een combinatie van de verschillende beroepsprofielen zal inhouden. Een Bachelor moet in principe kunnen uitstromen naar de arbeidsmarkt, vandaar dat er daar een expliciet beroepsprofiel (dat van Ontwikkelaar) is voorzien. Toch is een Bachelor Informatica in hoofdzaak iemand die verondersteld wordt verder te studeren als Master Informatica. Bachelor / Master • Ontwikkelaar. Analyseert problemen en creëert software oplossingen; werkt typisch in
teamverband (5-tal personen). Een Master informatica moet in staat zijn een dergelijk team te leiden, terwijl van een Bachelor slechts verwacht wordt dat hij binnen zo'n team kan functioneren. Master • Consulent. Wordt ingehuurd om specifieke kennis en vaardigheden over te dragen;
zowel aan andere informatici als aan managers. • Projectleider. Draagt de verantwoordelijkheid over een (onderdeel van) een groot
softwareproject; groot betekent één jaar of meer met minstens tien personen. • Beleidsadviseur. Adviseert niet-technici (directeur, manager) over strategische keuzes
betreffende informatica infrastructuur. • Vorser. Onderzoekt mogelijkheden van spitstechnologie, zowel in een academische als
industriële context. Uit de enquêtes afgenomen ter voorbereiding van het zelfstudierapport [1], bleek dat het leeuwenaandeel van onze pas afgestudeerden tijdens hun eerste vier jaar van hun professionele carrière functioneren als ontwikkelaar of consulent. Maar de categorie "andere" was de derdegrootste, wat een indicatie is voor de variatie aan beroepssituaties waarin onze afgestudeerden terechtkomen. DISCUSSIE: Zijn bovenstaande beroepsprofielen een adequate opsomming ? Zijn de namen goed (vb. analist-programmeur i.p.v. ontwikkelaar)? Wat moet er toegevoegd worden (vb. analist) ? Wat is er teveel ? Kerntaken
Los van de variërende beroepssituaties zijn er een aantal kerntaken die steeds terugkeren en waar we onze studenten op willen voorbereiden. Bachelor • implementatie van nieuwe systemen: al dan niet als deel van een team, een gegeven
basisontwerp omzetten in een werkend programma. Verfijnen van het basisontwerp (vb., geschikte interface ontwerpen), selecteren van te gebruiken software. Integratie van verschillende componenten. • onderhoud van bestaande systemen: aanpassing van computersystemen aan
veranderingen in mogelijkheden van zowel hardware als software (upgrades). In beperkte mate, aanpassing van bestaande systemen aan veranderde behoeften. • support en advies: oplossen van problemen, helpdesk functie. In kleinere organisaties
(KMO) advies over nieuwe automatiseringsprojecten (haalbaarheid, nut, benodigde apparatuur, ...)
Eindtermen Opleiding Informatica (versie 0.0)
3/8
Master • Ontwerp en planning van grootschalige informaticaprojecten. Identificeren van taken
die voor automatisering in aanmerking komen, inschatten van de benodigde middelen (tijd, apparatuur, mankracht). • Selectie van technieken, methodes, talen, architecturen, technologieën. Het nemen van
strategische beslissingen in dit verband: vb. Unix, Linux of Windows? welk type DB? welke rol voor formele methoden? ... • Leiden van een groep informatici, met inbegrip van (a) de selectie van medewerkers, (b)
het inschatten van de benodigde mankracht en vaardigheden en (c) het plannen in de tijd van wanneer welke taken worden uitgevoerd. • Wetenschappelijk onderzoek in de informatica. Stapsgewijs kunnen we stellen dat een
informaticus (a) de literatuur moet volgen om op de hoogte te blijven van recente ontwikkelingen, (b) experimenten moet opzetten om vast te stellen of bepaalde technologie bruikbaar is voor zijn bedrijf, (c) innovatief blijven om een strategisch voordeel op de concurrentie te creëeren, (d) doorstromen naar doctoraatsonderzoek. DISCUSSIE: Gaan we akkoord dat bovenstaande kerntaken steeds terugkeren in de hoger vermelde beroepsprofielen ? Zijn er teveel ? Ontbreken er ? Is de naamgeving goed ? Kerncompetenties
Op basis van bovenstaande kerntaken is het mogelijk de competenties te identificeren die nodig zijn om die taken te vervullen. • Technische kennis en inzicht, om informaticaproblemen op een abstracte manier te
analyseren en vervolgens een oplossingen te kunnen realiseren in een concreet systeem. • Wetenschappelijke methodiek, om nieuwe ontwikkelingen kritisch te kunnen evalueren
en als basis voor een permanente vorming. • Communicatievaardigheden — zowel schriftelijk als mondeling— spelen een centrale
rol in de contacten met collega's en opdrachtgevers. • Originaliteit en creativiteit om autonoom een complex probleem aan te pakken • Ploeggeest om grootschalige informaticasystemen te kunnen bouwen. • Flexibiliteit, om in een steeds wisselende context te kunnen functioneren.
DISCUSSIE: Is er een consensus over bovenstaande kerncompetenties ? ? Kunnen we aantonen dat een student via onze opleiding die kerncompetenties zal verwerven ? Wat is er teveel ? Wat ontbreekt er ? Is de naamgeving goed ? Modulair Overzicht Om bovenstaande competenties te verwerven splitsen we het curriculum op in 7 modules: vier opties en drie basispijlers (zie Figuur 1) De vier opties (gegevens en informatiebeheer, software ontwikkeling, telecommunicatie, computationele wetenschappen) staan in voor de kennis en inzichten specifiek voor de informatica, terwijl de drie basispijlers (formeel denken, wetenschappelijke basis en maatschappelijke vorming) zorgen voor de noodzakelijke wetenschappelijke fundering.
maatschappelijke vorming
computationele wetenschappen
wetenschappelijke basis
telecommunicatie
formeel denken
gegevens- en informatiebeheer
telecommunicatie
software ontwikkeling
software ontwikkeling
4/8
gegevens-en informatiebeheer
Eindtermen Opleiding Informatica (versie 0.0)
formeel denken wetenschappelijke basis
computationele wetenschappen maatschappelijke vorming
Figuur 1: Modulair overzicht van het curriculum Informatica DISCUSSIE: Bieden de schema's in Figuur 1 een goed overzicht van de "architectuur" van onze opleiding? Welk van de twee is de beste ? Zijn er alternatieven ? Los van bovenstaande vragen, is de naamgeving voor de verschillende modules goed? Eindtermen DISCUSSIE: Hieronder heb ik de verschillende bijdragen quasi onaangeroerd tussengevoegd? Zoals te verwachten was is er hier een te grote diversiteit en zullen we moeten preciseren. Volgens mij kan dat best door onderstaande competentie op te delen in (a) essentieel — i.e. zonder die kan een student zichzelf geen bachelor/master noemen; (b) belangrijk — daaraan kunnen we een goede bachelor/master herkennen; (c) nuttig — hier kan een bachelor/master zich differentiëren van zijn medestudenten Gegevens en informatiebeheer
Kennis Bachelor - Database Modeling, E-R diagrammen - Relational Database Model - Relational algebra - Structured Query Language (SQL) - SQL-omgeving - Constraints en triggers - Database toepassingen i.v.m. Internet Technologie - Design van een database - Fysische ondervraag modellen - Expressive kracht van ondervragingstalen - Transaction management - Concurrency - Transactie failures - Security - Optimization - XML
Kennis Master - Distributed databases - Temporal databases - Decision support systems - Datamining - Object georienteerde databases - Grafische interfaces - XQuery
Eindtermen Opleiding Informatica (versie 0.0)
Vaardigheden Bachelor - Database Modeleren - Database implementeren - SQL gebruiken - Transacties schrijven - Datalog - Missing information
5/8
Vaardigheden Master - datamining technieken gebruiken - Xquery gebruiken op XML documenten - GUI's ontwikkelen voor databases
Software ontwikkeling
Kennis Bachelor - syntax en semantiek van een programmeertaal - basisconcepten van objectgericht programmeren (polimorfisme) - technieken om informaticaproblemen te specifiëren, analyseren, ontwerpen, programmeren - overzicht van testtechnieken en strategieën - software-product vs. proces - kwaliteitsattributen van een softwaresysteem - noties hebben van projectplanning - basiskennis van de structuur van computersystemen: structuur van de hardware, rol van besturingssytemen vs. applicaties, lagere en hogere programmeertalen. - basiskennis over de grote deelgebieden van het vakgebied, hun samenhang en evolutie: algorithmiek, programmeertalen, databases, arithmetiek, telecom, formele methoden - ontwerpen van eenvoudige algoritmen, analyse van hun complexiteit. Vaardigheden Bachelor - één programmeertaal op industriëel niveau goed beheersen (vb. C++) - zich zelf op een minimum van tijd een nieuwe programmeertaal kunnen aanleren - de behoeftenspecificatie voor een informaticasysteem kunnen opstellen - een informaticaprobleem kunnen analyseren (wat is het probleem ?) - een model van oplossing kunnen ontwerpen (hoe kan het opgelost worden ?) - een gegegeven oplossingsmodel kunnen programmeren - aantonen dat een oplossing voldoet aan de specificaties (hoe testen we de oplossing ?)
Kennis Master - beroepsethiek - formele specificatietechnieken - ontwerpmethodes voor user-interfaces - computer laten tekenen - problematiek gedistribueerd programmeren
Vaardigheden Master - voor een gegeven informaticaprobleem een goede oplossingsstrategie kiezen (welke technieken zijn het meest geschikt om het probleem te analyseren, specifiëren, ontwerpen, implementeren en te testen + argumentatie waarom)
Computationele wetenschappen
Kennis Bachelor - floating-point unit - integer arithmetic unit - IEEE 754/854 standaarden - semantiek floating-point uitdrukkingen (verschillend van semantiek wiskundige
Kennis Master -b eginselen & basisbegrippen van systeemtheorie & syteemidentificatie - interval rekenen (cfr. SUN's meest recente compilers) en meer algemeen validatietools zoals gebruikt in robotica
Eindtermen Opleiding Informatica (versie 0.0)
6/8
uitdrukkingen) - stabiliteit van een algoritme - conditionering van een probleemstelling - basiskennis in volgende probleemdomeinen: numerieke lineaire algebra, data fitting, data smoothing, functiebenadering, simulatie, oplossen niet-lineaire vergelijking, kwadratuur en cubatuur, gebruik en ontwikkeling van random number generators, optimalisatie - populaire Problem Solving Environments (PSE) (Matlab, computer algebra systemen zoals Maple, ...) - grondige kennis programmeren - computer graphics - FFT (Fast Fourier Transform) - blinde zoekmethodes - heuristische zoekmethodes - niet-deterministische, iteratieve zoekmethodes (simulated annealing, GA, ...) - spelspecifieke zoekmethodes - basiskennis kennisrepresentatie- en inferentie (eerste orde logica, frames, semantische netten) - kennissystemen (rule-based, case-based) - planning - basistechnieken machine learning (inclusief neurale netwerken)
- complex rekenen - veeltermtechnieken, zowel in exacte als inexacte context - oplossen van gewone/partiele differentiaalvergelijkingen - parallel en gedistribueerd programmeren - computationele getaltheorie, om te komen tot cryptografie - gevorderde technieken in volgende probleemdomeinen: numerieke lineaire algebra, data fitting, data smoothing, functiebenadering, simulatie, oplossen stelsels niet-lineaire vergelijkingen, kwadratuur en cubatuur, optimalisatie - constraint programming - gevorderde machine learning technieken - gevorderde kennisrepresentatietechnieken (niet-monotone logica, vage, logica, ...) - onzekerheid en kennisrepresentatie/inferentie (inclusief Bayesiaanse netwerken) - visie - natuurlijke taalverwerking - intelligent agent toepassingen (informatieextractie, data mining, ...)
Vaardigheden Bachelor - ...
Vaardigheden Master - ...
Telecommunicatie
Kennis Bachelor - struktuur van het gelaagd OSI model voor telecommunicatiesystemen - belangrijke (generische) protocols en mechanismen uit de verschillende lagen: (a) fysische laag (signaal, bandbreedte, ...); (b) medium access laag (LAN protocols; bv. Ethernet); (c) datalink laag (fouten en flow controle); (d) netwerk laag (IP); (e) transport laag (TCP); (f) applicatie laag (HTTP, ...) - belangrijke specifieke kenmerken van moderne telecommunicatiesystemen (verschillende lagen worden per systeem besproken), teneinde inzicht te verwerven in de op te lossen problemen (bv. foutdetectie en verbetering in GSM) en de bijhorende oplossingen: digitale telefonie, ISDN, ATM, GSM, GPRS, ADSL, HFC netwerken (bv. Telenet), satellietcommunicatie, etc.
Kennis Master - Grondige studie van belangrijke Internet protocols: (a) IP en gerelateerde protocols; (b) mobiliteit in IP netwerken; (c) quality of Service in IP netwerken; (d) TCP protocol en varianten; (e) applicatie programma's; (f) IP netwerk monitoring tools - Modeleren en bepalen van de prestaties van een telecommunicatiesysteem: (a) opstellen van een model; (b) evaluatie van de prestaties d.m.v. van analytische oplossingen of d.m.v. simulatie - grondige studie van basisprincipes van de fysische laag (signal processing) - complexe protocols in het Internet (gerelateerd met bv. beveiliging,mobiliteit, QoS, etc...)
Vaardigheden Bachelor - toekennen van een bepaalde functie van een
Vaardigheden Master - het opzetten, beheren, monitoren en
Eindtermen Opleiding Informatica (versie 0.0)
telecomsysteem aan een laag van het OSI model. - ontwikkelen van een eenvoudig protocol: (a) specificatie; (b) ontwerp; (c) ontwikkelen (programmeren); (d) testen van de oplossing - een protocol kunnen analyzeren: (a) model opstellen en evaluatie; (b) bepalen voor welke omgeving protocol geschikt is; (c) complexiteit van protocol bepalen (implementatie)identicatie van de basiseigenschappen waaraan een protocol moet voldoen in een bepaalde omgeving
7/8
optimalizeren van een IP netwerk in een laboomgeving - het bepalen van bottlenecks (door metingen, analyse of simulatie) in netwerken en het bepalen van een oplossing voor het geidentificeerde probleem - het bepalen van de prestaties van een telecommunicatiesysteem (via modelering analytisch/simulatief) en suggeren van systeemwijzigingen die de prestaties verbeteren - Het ontwikkelen en inpassen in een bestaand systeem van complexe protocols (in een laboomgeving)
Formeel Denken
Kennis Bachelor - basiskennis wiskunde: discrete wiskunde, algebra, analyse, statistiek - basiskennis formele logica: syntax vs. semantiek, model en interpretatie, samenhang met de theorie van programmeertalen - gebruik van eenvoudige modellen voor de abstracte beschrijving van algoritmen bv eindige automaten voor herkennen van talen, of Turing machines. Analyse van algoritmen. Vaardigheden Bachelor - wiskundige vaardigheden: formeel redeneren (sluitend bewijs opstellen, niet-sluitende redenering herkennen), hanteren van wiskundig formalisme.
Kennis Master - ...
Vaardigheden Master - ...
Wetenschappelijke Basis
Kennis Bachelor - wetenschappelijke formuleringen begrijpen (hoe schrijft men het) - wetenschappelijke probleemstellingen begrijpen (hoe beschrijft men het) - wetenschappelijke beschrijvingen begrijpen (hoe wordt het formeel gemodelleerd: bv. differentiaalvgln + rand/begin voorwaarden; integraalformuleringen; ...) - basisprincipes van de fysica beheersen (afkooksel van "algemene Natuurkunde") - overzicht hebben van scheikundige beginselen (anorganisch-organisch analysetechnieken - ...) - overzicht hebben van biologische beginselen (planten en dieren taxonomie) Vaardigheden Bachelor - standaard scalaire en vectorgrootheden kunnen gebruiken in een wetenschappelijke context, en buiten het formele karakter van de wiskundige definitie (grad, rot, div, laplaciaan,
Kennis Master - probleemstellingen kunnen vertalen in een wetenschappelijke beschrijving (modelleren) - wetenschappelijke literatuur begrijpen - visualiseren, analyseren en interpreteren van (grote) wetenschappelijke datasets
Vaardigheden Master - wetenschappelijke literatuur zoeken en vinden - wetenschappelijke modellen computationeel implementeren
Eindtermen Opleiding Informatica (versie 0.0)
8/8
...) - oppervlakte- en volumeintegralen kunnen hanteren - elementaire differentiaalproblemen kunnen oplossen Maatschappelijke Vorming
Kennis Bachelor - wetenschapsfilosofie: de grondslagen van de wiskunde en de theoretische computerwetenschappen - algemene economie: basisbegrippen Macroeconomie (Geldmarkt, Betalingsbalans, Inflatie, ...) en Micro-economie (Vraag en aanbod, elasticiteit, Marktvormen) - communicatievaardigheden: werken in groepen, communicatie- & vergaderentechnieken, onderhandelen, mondeling presenteren, schriftelijk rapporteren - basisbegrippen elektronica: analoge en digitale basiscomponenten, basisschakellingen, algemene principes - softwarebeveiliging: cryptografie, technische protektie en juridische normen, de bescherming van soft- en firmeware
Vaardigheden Bachelor - ...
Kennis Master - basisbegrippen informaticarecht: Intellectual Property, juridische vraagstukken ivm informatie- en communicatietechnologieën - basisbegrippen management: bedrijfskunde, technieken voor leiden van een onderneming of organisatie, strategische planning en organisatie, projectplanning - basisbegrippen systeemtheorie: lineaire sytemen, modelleren & simulatietechnieken, regeltheorie - software management: methodes, technieken en tools voor software management - gebruikersinterfaces: human-computer interaction - vakdidactiek informatica - methoden van wetenschappelijk onderzoek - bedrijfsstage + gastcolleges over actuele aspecten in de informatica Vaardigheden Master - Diepgaande kennis van enkele deelgebieden van de informatica, met inbegrip van de gebruikte methoden, theorieen, recente evolutie, beschikbare toepassingen en tools. - Zelfstandig opzoekingswerk kunnen verrichten over een gegeven onderwerp, zowel technisch als wetenschappelijk, op het net of in de literatuur. - Zelfstandig literatuur of ander materiaal over een complex informatica-onderwerp kunnen synthetiseren, en over deze synthese rapporteren. - De modellen en methoden uit de verschillende opleidingsonderdelen kunnen combineren by de oplossing van een probleem. Zelf een geschikt abstract model kunnen opstellen.
Referenties [1] Zelfstudie Informatica ten behoeve van de onderwijsvisitatie. Onderwijscommissie Informatica, Universiteit Antwerpen, Juni 2001