Eindtermen Opleiding Informatica Universiteit Antwerpen – Faculteit Wetenschappen Versie 0.2 - maandag, 24 juli, 2017 Aangepaste versie, na bespreking Bachelor/Master werkgroep informatica. Te bespreken op de Onderwijscommissie informatica — 19 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/ 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. 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. Inleiding 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. 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 is een discussietekst opgesteld waarin een aantal toekomstscenerio's werden uitgetekend [2]. Als tweede stap willen we een consensus bereiken rond de eindtermen die moeten gelden voor een komende Bachelor/Master informatica. Dit document maakt daartoe een eerste inventaris op van alle competenties (kennis & vaardigheden) die een student tijdens zijn opleiding dient te verwerven. Deze competenties werden geidentificeerd op basis van een aantal typische beroepsprofielen en bijhorende kerntaken. De lijst competenties is doelbewust zo breed mogelijk opgesteld, om ze achteraf te kunnen reduceren tot redelijke proporties. Dat laatste zal de hoofdopdracht vormen van de onderwijscommissie in haar bespreking van 19 juni 2002. Eindtermen Opleiding Informatica (versie 0.0) 2/9 Doelstelling Het ultieme doel van de opleiding Informatica aan de Universiteit is bekwame informatici af te leveren die in staat zijn om (a) op leidinggevend niveau te functioneren, (b) bij te dragen tot de nieuwe ontwikkelingen in de informatica, 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. Hij 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 de soort organisatie heeft een niet te verwaarlozen invloed, aangezien KMO's en multinationals nu eenmaal verschillende 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. Ondanks die grote variëteit is het toch nuttig enkele typische beroepsprofielen te definiëren. Het weze duidelijk dat die alleen als leidraad 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 Analist-programmeur. Analyseert problemen en creëert software oplossingen. Functioneert in teamverband (5-tal personen). Duivel-doe-al. Functioneert als eerste-lijnshelper in een kleine onderneming, waarin hij een brede waaier aan problemen oplost. Master Projectleider. Draagt de verantwoordelijkheid over een (onderdeel van) een groot softwareproject (groter dan 10 manjaar). Analyseert problemen en creëert software oplossingen. Is in staat een kleine ploeg (5-tal personen) te leiden. Consulent. Wordt ingehuurd om specifieke kennis en vaardigheden over te dragen; zowel aan andere informatici als aan managers. Vorser. Draagt bij tot de ontwikkeling van spitstechnologie, zowel in een academische als industriële context. Lange termijn Een master Informatica moet in staat zijn om op termijn door te groeien naar een verantwoordelijke positie binnen een grote organisatie. De meest voor de hand liggende functie is die van Beleidsadviseur Informatica (EDP-Manager). Adviseert de top van een groot bedrijf (directeur, manager) over strategische keuzes betreffende informatica infrastructuur. Zet die strategische keuzes om in actieplannen en zorgt voor de nodige opvolging ervan. 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 Eindtermen Opleiding Informatica (versie 0.0) 3/9 functioneren als ontwikkelaar of consulent. Maar de categorie "andere" was de op twee na grootste, 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. ontwikkelaar i.p.v. analist-programmeur)? 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, ...). opvolgen technologische ontwikkelingen: de vakliteratuur volgen om op de hoogte te blijven van recente ontwikkelingen. eigen maken nieuwe technologie: in staat zijn om heel efficient nieuwe technologie te leren gebruiken. Master Ontwerp en planning van grootschalige informaticaprojecten. Identificeren van taken die voor automatisering in aanmerking komen, inschatten van de benodigde middelen (tijd, budget, 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. Een master informatica moet (a) experimenten kunnen opzetten om vast te stellen of bepaalde technologie bruikbaar is voor zijn bedrijf, (b) een bijdrage maken tot spitstechnologie om een strategisch voordeel op de concurrentie te creëeren, (c) 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. Eindtermen Opleiding Informatica (versie 0.0) 4/9 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 computationele wetenschappen telecommunicatie software ontwikkeling gegevens-en informatiebeheer 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. formeel denken wetenschappelijke basis maatschappelijke vorming Figuur 1: Modulair overzicht van het curriculum Informatica DISCUSSIE: Biedt het schema in Figuur 1 een goed overzicht van de "architectuur" van onze opleiding? Zijn er alternatieven ? Los van bovenstaande vragen, is de naamgeving voor de verschillende modules goed? Eindtermen DISCUSSIE: Hieronder zijn de verschillende bijdragen quasi onaangeroerd tussengevoegd? Zoals te verwachten was is er hier een te grote diversiteit en zullen we moeten reduceren. Volgens Eindtermen Opleiding Informatica (versie 0.0) 5/9 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 Vaardigheden Bachelor - Database Modeleren - Database implementeren - SQL gebruiken - Transacties schrijven - Datalog - Missing information Kennis Master - Distributed databases - Temporal databases - Decision support systems - Datamining - Object georienteerde databases - Grafische interfaces - XQuery 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, Kennis Master - beroepsethiek - formele specificatietechnieken - ontwerpmethodes voor user-interfaces - computer laten tekenen - problematiek gedistribueerd programmeren Eindtermen Opleiding Informatica (versie 0.0) 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 ?) 6/9 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 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) Kennis Master -b eginselen & basisbegrippen van systeemtheorie & syteemidentificatie - interval rekenen (cfr. SUN's meest recente compilers) en meer algemeen validatietools zoals gebruikt in robotica - 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 - ... Eindtermen Opleiding Informatica (versie 0.0) 7/9 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 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 Vaardigheden Master - het opzetten, beheren, monitoren en 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 - geavanceerde modellen voor de hoog-niveau beschrijving van software (UML, Coloured Petri nets, ...) - Rule-based programmeren - Proces algebras - Wiskundige basis van cryptografie Vaardigheden Master - opstellen van een design met behulp van geavanceerde SW modellen en gebruik van de bijbehorende tools. Eindtermen Opleiding Informatica (versie 0.0) 8/9 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, ...) - oppervlakte- en volumeintegralen kunnen hanteren - elementaire differentiaalproblemen kunnen oplossen 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 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) - basisbegrippen elektronica: analoge en digitale basiscomponenten, basisschakellingen, algemene principes - softwarebeveiliging: cryptografie, technische protektie en juridische normen, de bescherming van soft- en firmeware Vaardigheden Bachelor - communicatievaardigheden: werken in groepen, communicatie- & vergaderentechnieken, onderhandelen, mondeling presenteren, schriftelijk rapporteren 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. Eindtermen Opleiding Informatica (versie 0.0) 9/9 - 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 [2] Toekomstscenario's Opleiding Informatica (versie 0.3). Onderwijscommissie Informatica, Universiteit Antwerpen, 6 februari 2002