logo

Vier specialisaties

De 2-jarige Master of Science in de Ingenieurswetenschappen: Computerwetenschappen laat je toe om te specialiseren in een deeldomein van de computerwetenschappen. Het programma bereidt je zowel voor op een carrière als specialist binnen de software-industrie, als op een onderzoekscarrière, en dit evengoed in de academische wereld als in de industrie. Het is een master in de Ingenieurswetenschappen en dus levert het je de titel van burgerlijk ingenieur op. Binnen deze tweejarige master volg je een gemeenschappelijke kern van vakken, en kies je daarbovenop één specialisatie uit vier mogelijke specialisaties. De vier specialisaties zijn:

Artificiële Intelligentie

Meer...

Data Management en Analytics

Meer...

Multimedia

Meer...

Software Languages en Software Engineering

Meer...

Master of Science in de Ingenieurswetenschappen: Computerwetenschappen


Algemene informatie over het programma, inschrijvingen, en meer.

Algemene informatie

Artificiële Intelligentie

De AI specialisatie gaat over het bouwen van intelligente software-artefacten. We benadrukken de principes van dynamische systemen en zelf-organisatie en beginnen met de principes van complexe dynamische systemen in aanverwante vakken, zoals wiskunde, natuurkunde en biologie. Naast data-mining en big data zullen studenten worden blootgesteld aan actuele onderzoek in de vakken van adaptieve systemen, multi-agent systemen, de origine van taal, bioinformatica en computationele creativiteit.

Opening van het VUB AI Experience Center, 21 November 2019

In detail

Het AI-laboratorium van de VUB is het langst bestaande AI-onderzoekscentrum op het Europese vasteland en dateert van 1982. Deze unieke geschiedenis zorgt in onze Artificial Intelligence (AI) masterspecialisatie voor een brede en diepe expertise in Artificial Intelligence-onderzoek en -technologie. Ze dekt de fundamenten van het vakgebied tot en met de laatste ontwikkelingen. De specialisatie richt zich op AI-engineering: je leert computationele intelligente systemen te programmeren en hun mogelijkheden in detail te bestuderen. Na het succesvol afronden van de specialisatie ben je goed voorbereid op een carrière in Artificial Intelligence, op het snijvlak van de huidige golf van intelligente computersystemen. Deze specialisatie erkent dat AI zeer snel verandert en heeft als doel je uit te rusten met de technische en intellectuele vaardigheden van een onafhankelijke zelfsturende leerling, die in staat is om de huidige trends voor te blijven en zo bij te dragen aan de industrie of de academische wereld op het hoogst mogelijke niveau gedurende een boeiende carrière.

Als student in de AI-specialisatie bestudeer je, pas je de nieuwste AI-technieken toe, waaronder op logica gebaseerde, statistische en probabilistische, en neurale inferentiesystemen, cognitieve modellering, multi-agentsamenlevingen met opkomende intelligentie, taalverwerking, reinforcement learning en computationele creativiteit, dit alles in een wiskundige en wetenschappelijke context, waarbij de kloof tussen toepassing en theorie wordt overbrugd. In je masterscriptie doe je origineel onderzoek onder leiding van een internationaal gerenommeerde AI-specialist en je werk kan een bijdrage leveren aan de lopende projecten van het lab, waardoor je een blijvende bijdrage levert aan de AI-wetenschap.

De AI-specialisatie bestaat uit drie verplichte vakken en een brede keuze aan keuzevakken die je in staat stellen om je eigen persoonlijke accent te leggen tijdens je studie. Zo kun je bijvoorbeeld leren hoe je kennis kunt opslaan zodat deze zowel door mensen als door computers kan worden begrepen, en hoe je deze achteraf kunt gebruiken om automatisch problemen op te lossen; als je geïnteresseerd bent in machinaal leren, kun je bestuderen hoe computers en robots kunnen leren door te zoeken naar interessante patronen in gegevens, of hoe ze kunnen leren uit ervaring en geleidelijk aan beter kunnen worden in het uitvoeren van een taak; als je geïnteresseerd bent in taal kun je bestuderen hoe kunstmatige intelligentie kan worden gebruikt om te onderzoeken hoe taal werkt, hoe het is geëvolueerd en hoe computers het kunnen begrijpen, produceren en leren; als je geïnteresseerd bent in hoe computers kunnen bijdragen aan creatieve activiteiten in de wetenschap, kunst en muziek, kun je creatieve productie bestuderen vanuit het cognitieve perspectief (hoe doen mensen dat? ), vanuit een engineering-perspectief (welke AI-systemen kunnen het doen?) of vanuit een filosofisch perspectief (wat is creativiteit eigenlijk?); als je geïnteresseerd bent in het effect van AI op de wereld, kun je de ethiek en de sociale impact ervan bestuderen. De keuze is aan u.

120 ECTS

Artificiële Intelligentie is een specialisatie in onze 2 jaar durende masteropleiding in Computerwetenschappen van 120 ECTS. Studenten van deze specialisatie moeten slagen voor de zorgvuldig ontworpen kern van 30 ECTS die alle vier de specialisaties gemeen hebben, de 18 ECTS van drie verplichte vakken binnen deze specialisatie, minstens 12 ECTS van keuzevakken binnen de specialisatie, nog eens 30 ECTS van keuzevakken uit deze of een van de andere specialisaties, en voor een onderzoeksopleiding van 6 ECTS en een masterscriptie van 24 ECTS.

Software Architecturen (kern, 6 ECTS, sem 1)

Dit vak behandelt het ontwerp en de implementatie van grootschalige softwaresystemen die wereldwijd opereren met duizenden concurrente gebruikers. We bespreken architecturale patronen en tactieken om kwaliteiten te realiseren zoals reactiviteit (tijdig reageren op invoer), weerbaarheid (herstellen van onverwachte falingen), en elasticiteit (reageren op variaties in belasting). We illustreren deze patronen aan de hand van frameworks voor de programmeertaal Scala, waarvan de relevante eigenschappen eerst overlopen worden
Berekenbaarheid (kern, 3 ECTS, sem 2)
Deze cursus behandelt de basisbegrippen van de theorie van berekenbaarheid en complexiteitstheorie. Voor de theorie van berekenbaarheid zijn dit: Turing machines, de Church-Turing thesis, beslisbaarheid, het stopprobleem, herleidbaarheid en de recursiestelling. Voor de complexiteitstheorie zijn dit: Tijdscomplexiteit en de klassen P en NP, NP-volledigheid, de stelling van Cook-Levin, en andere NP-complete problemen.
Informatietheorie (kern, 3 ECTS, sem 1)
De cursus geeft een inleiding in de informatietheorie steunend op de aanpak van Shannon enerzijds en Kinchine anderzijds. Begrippen als eigeninformatie, entropie, voorwaardelijke entropie, gemiddelde fout en ambiguiteit, transinformatie, redundantie e.d. worden ingeleid en talrijke voorbeelden worden behandeld en berekend. De kanaalcapaciteit wordt berekend voor een transmissiekanaal en toegepast op praktische voorbeelden (o.a. voor DSL op twisted pair en wireless radio kanalen).
Declaratief Programmeren (kern, 6 ECTS, sem 2)
Declaratief programmeren omvat het specificeren van de invoer-uitvoerrelatie die een gebruiker nodig heeft uit zijn programma, terwijl, voor zover mogelijk, de feitelijke uitvoeringsmethode aan de compiler wordt overgelaten. In deze praktische cursus wordt constraint logic programming diepgaand bestudeerd, zowel vanuit theoretisch als praktisch perspectief. De logische programmeertaal Prolog wordt in detail behandeld, vanuit een historisch perspectief dat je voorbereidt op blootstelling aan logische programma's in de industrie, tot de laatste ontwikkelingen in constraint logic programming en numerieke constraint satisfaction.
Methoden van Wetenschappelijk onderzoek (kern, 3 ECTS, sem 1)
Deze cursus geeft een inleiding van de basis van de wetenschappelijke methodes: hoe wetenschappers voorkomen dat ze het wiel opnieuw uitvinden, hoe voorkomen zichzelf voor de gek te houden en hoe ze voorkomen dat onbetrouwbare en foute resultaten verspreid worden. De cursus wordt geëvalueerd met een aantal praktische uitdagingen voor de studenten.
Scientific Integrity (verbredend, 3 ECTS, sem 1)
In de film Jurassic Park zegt het personage Dr. Ian Malcolm: “your scientists were so preoccupied with whether they could, they didn’t stop to think if they should.” Dat is één van de ethische aspecten van wetenschap waaraan deze cursus aandacht schenkt; je zal over dergelijke problemen een column schrijven. Ander onderwerpen zijn academische fraude en slordige wetenschap. Met andere woorden: je gaat een kijkje nemen achter de schermen van wetenschap en zal inzicht verwerven omtrent de goede redenen om zelf onderzoek te verrichten op ethische wijze.
Open Informatiesystemen (kern, 6 ECTS, sem 1)
In dit vak stellen we computergebaseerde agenten in staat gegevens op een zinvolle (semantische) manier uit te wisselen en te verwerken. We bespreken zowel “semantic elicitation” als “semantic application”. Het eerste betreft het formeel specificeren van gedeelde begrippen van een “Universe of Discourse” in een zogenaamde ontologie. Het tweede houdt zich bezig met het opvragen, integreren en gebruiken van gegevens uit heterogene bronnen met zulke ontologieën. We illustreren de verschillende principes op het Semantische Web door gebruik te maken van diens standaarden (onder andere RDF, OWL, en SPARQL).

Statistical Foundations of Machine Learning (kern, 6 ECTS, sem 2)

Machine Learning is toepasbaar op veel taken uit de echte wereld, en bestaat voornamelijk uit het leren van correlaties in data, of tussen in- en outputs. In deze cursus worden alle fundamentele aspecten van de meest voorkomende Machine Learning benaderingen uitgelegd, zodat de studenten perfect begrijpen hoe ze goed functionerende Machine Learning systemen kunnen ontwerpen, hun prestaties nauwkeurig kunnen meten en het resultaat van de leerprocedure zo efficiënt mogelijk kunnen gebruiken. Deze cursus legt ook uit hoe verschillende algoritmen werken, zoals de kleinste-kwadratenregressie, neurale netwerken of beslisingsbomen.
Actual Trends in Artificial Intelligence (verdieping, 6 ECTS, sem 1+2)
De artificiële intelligentie ontwikkelt zich in een ongelooflijk tempo. In deze cursus wordt de nieuwste vooruitgang op het gebied van state-of-the-art AI geïntroduceerd. In de loop van tien gastcolleges komen experts uit hun vakgebied aan het woord over hun nieuwste onderzoek. Naast het theoretische gedeelte zullen de studenten in de AI-uitdagingen de geleerde technieken in een team toepassen, om zo een AI-gedreven toepassing te creëren!
Computational Game Theory (kern, 6 ECTS, sem 1)
Net als mensen leven AI-systemen niet in afzondering. Het heeft geen zin om één enkel verkeerslicht slim te maken, maar de verkeerslichten moeten zich als een team organiseren om de verkeersdoorstroming te optimaliseren. Het doel van de cursus is om de cursisten kennis te laten maken met het veld van de "learning agents", waarbij het leren in een groep of populatie van agenten gebeurt. De studenten zullen ook een basisinzicht krijgen in de (evolutieve) speltheorie en de complexe netwerken die hen toelaten de wetenschappelijke literatuur in dat domein en de relevantie van dit domein voor het leren in het algemeen te begrijpen.

Adaptive Systems Seminar (verdiepend, 6 ECTS, sem 2)

Tijdens deze cursus zullen we een aantal videocolleges van MLSS bekijken en bespreken, een terugkerende zomercursus voor doctoraatsstudenten in machine learning. De lezingen worden gegeven door topexperts in het betreffende onderwerp.
Processus dynamiques (verbredend, 5 ECTS, sem 2)
Deze cursus biedt een introductie in belangrijke technieken voor het analyseren van stochastische en dynamische processen zoals wachtrijen en voorraadbeheersystemen.
Multi-agent Learning Seminar (verdiepend, 6 ECTS, sem 1+2)
Door middel van lezingen en een project (geen examen) onderzoeken we hoe we met Reinforcement Learning learning agents kunnen ontwerpen. Reinforcement Learning is een leerparadigma waarbij agenten hun toestand observeren en acties uitvoeren en feedback krijgen. Op basis van deze feedback leren ze geleidelijk aan om de beloning die ze krijgen te maximaliseren en worden ze beter en beter in de taak die ze moeten uitvoeren. Net als hoe kinderen leren fietsen. Het seminar legt verschillende manieren uit om praktische middelen te ontwerpen, van zeer eenvoudig tot complex (diep) en de verschillende settings waarin Reinforcement Learning toepasbaar is.
Evolution of speech (verbredend, 6 ECTS, sem 1)
In deze cursus bestuderen we een reeks computationele technieken die gebruikt worden om spraak en taal te modelleren. We passen deze toe op de studie van spraak en taal vanuit een evolutionair perspectief. De twee doelen van de cursus zijn het introduceren van computationele modellen van spraak en taal en het laten zien hoe AI-technieken kunnen worden gebruikt om een bredere wetenschappelijke vraag te bestuderen.
Discrete Modeling, Optimization, and Search using Answer Set Programming (verdiepend, 6 ECTS, sem 1)
In deze cursus bestuderen we moderne technieken voor combinatorisch zoeken en het formalisme voor kennisrepresentatie "answer set programming". In het laatste geval worden combinatorische zoek- of optimalisatieproblemen beschreven in een taal op hoog niveau zodanig dat de formulering van het probleem en de methode om oplossingen te vinden volledig gescheiden worden.
Computational Creativity (verbredend, 6 ECTS, sem 2)
Computational Creativity is de studie van computersystemen die in staat zijn om dingen te doen die, als een mens ze zou doen, creatief zouden worden genoemd. Dit omvat kunst, muziek en literatuur, maar ook receptuurontwerp, wetenschap, techniek en wiskunde. Deze cursus behandelt de filosofie, wetenschap en technologie van computationele creativiteit in een gemengde reeks van lezingen en seminars. Elke student bouwt zijn eigen computationeel creatief systeem.
Computer Vision (verbredend, 4 ECTS, sem 1)
Deze cursus richt zich op het begrijpen en toepassen van fundamentele wiskundige en computationele technieken in computer vision, en op het implementeren van basis computer vision-toepassingen.
Swarm Intelligence (verbredend, 5 ECTS, sem 2)
Swarm intellligence is de discipline die zich bezighoudt met natuurlijke en kunstmatige systemen die bestaan uit vele individuen die samenwerken met behulp van gedecentraliseerde controle en zelforganisatie. In het bijzonder richt de discipline zich op het collectieve gedrag dat voortvloeit uit de lokale interacties van de individuen met elkaar en met hun omgeving. Voorbeelden van systemen die door swarm intelligence worden bestudeerd zijn mieren- en termietenkolonies, scholen vissen, zwermen vogels, kuddes landdieren.
Advanced Methods in Bioinformatics (verdiepend, 6 ECTS, sem 2)
Deze cursus richt zich op algoritmen en methoden in de computationele biologie, met actieve deelname van de studenten aan de implementatie van dergelijke algoritmen. De cursus behandelt methoden en bijbehorende algoritmen voor het oplossen van problemen met betrekking tot eiwitsequenties, eiwitevolutie en eiwitstructuur, evenals Next Generation Sequencing data analyse en strategieën voor de ontdekking van regulerende motieven, in het bijzonder genomics en transcriptomics data met betrekking tot kanker.
Artificial Intelligence Programming Paradigms (verbredend, 6 ECTS, sem 1)
In deze cursus leer je programmeren met behulp van de meest centrale paradigma’s in de symbolische AI, waaronder unificatie, zoekstrategieën, heuristieken, meta-layer architecturen and computationele reflectie. Je leert zowel de theoretische als praktische aspecten hiervan, waardoor je aan het einde van de cursus in staat zal zijn je eigen intelligente systemen te bouwen.
Natural Language Processing (verdiepend, 6 ECTS, sem 2)
In deze cursus bouw je intelligente systemen die in staat zijn om met hun omgeving te communiceren door middel van natuurlijke taal. Het fundamentele idee hierachter is dat de betekenis van natuurlijke taaluitingen kan worden gemodelleerd als uitvoerbare programma's. De student zal de nodige kennis en vaardigheden verwerven om een uitdagend AI-onderzoeksproject te managen in het subveld van situated natural language understanding.
Decision Engineering (verbredend, 5 ECTS, sem 2)
Het doel van deze cursus is om de basisprincipes van de beslissingstheorie te introduceren. Het hoofddoel is te illustreren hoe wiskundige modellen en specifieke algoritmen kunnen worden gebruikt om besluitvormers te helpen bij complexe problemen (waarbij een groot aantal alternatieven / meerdere criteria / onzekere of risicovolle uitkomsten / meerdere besluitvormers betrokken zijn, ...).

Research Training (verdiepend, 6 ECTS, sem 1+2)

Dit vak is opgevat als een intensieve stage binnen een van de onderzoeksgroepen van het departement computerwetenschappen. Studenten wordt gevraagd om autonoom te werken aan een bepaald deel van een experiment of aan een lopend ontwikkelingsproject. Zij worden van dichtbij opgevolgd en ontvangen regelmatig feedback over hun werk.
Masterthesis Computerwetenschappen (verdiepend, 24 ECTS, sem 1+2)
Studenten ontwikkelen, publiceren, en verdedigen een originele bijdrage tot het domein van  Computerwetenschappen in het algemeen en tot de daarin gekozen specialisatie in het bijzonder. Zij kunnen het onderwerp vrij bepalen in samenspraak met een promotor van het departement. Hiertoe wordt een lijst van aanbevolen onderwerpen gecommuniceerd. 

Klik hier voor het officiële overzicht van dit programma met een volledige lijst van keuzevakken.

Bijkomend kan men tot 12 ECTS kiezen uit het bachelorprogramma Computerwetenchappen, mits goedkeuring van de examencommissie.

Research in the picture

Professor Nowé, docent uit de specialisatie Artificiële Intelligentie, en haar team passen reinforcement learning toe op het probleem van het optimaliseren van het gebruik van het elektrische netwerk door een vloot van elektronische voertuigen. U kunt meer lezen over het onderzoek op hun website.

Terug naar programmaoverzicht

Klik hier

Meer info over inschrijven

Klik hier

Data Management en Analytics

De Data Management en Analytics specialisatie spitst zich in de interdisciplinaire context van Data Science en Big Data toe op schaalbare en gedistribueerde gegevensbeheersystemen, information retrieval en data mining algoritmes, alsook technieken voor informatievisualisatie en human-data interactie. Je bestudeert algoritmes, technieken, architecturen en methoden voor het beheer, de verwerking en de interactie met zowel gestructureerde als ongestructureerde data. Je past de verworven theoretische kennis toe in het ontwerp van applicaties die nieuwe inzichten ontsluiten uit stromen van data zoals bijvoorbeeld geproduceerd door Internet of Things apparaten.

Waar Big Data en Interactive Data Science samenkomen!

In detail

De Data Management en Analytics specialisatie dekt de interdisciplinaire aspecten van interactieve data science en big data management, inclusief schaalbare en gedistribueerde data management systemen, information retrieval en data mining algoritmes, alsook visualisatie en mens-data interactie technieken. Ons doel is om studenten voor te bereiden op de uitdagingen van de toekomst in het beheren en analyseren van de snelgroeiende data die handmatig door mensen wordt ingevoerd, of automatisch wordt gegenereerd, bijvoorbeeld door sensoren in het Internet Of Things, door webapplicties, of als uitkomst van wetenschappelijke experimenten. Om de studenten voor te bereiden op een toekomstige carrière als data scientist of data engineer, ligt de focus vooral op de wetenschappelijke aspecten en concepten die de fundamenten vormen van schaalbare gegevensbeheersystemen, information retrieval en data mining, alsook verschillende informatievisualisatie- en interactietechnieken, en niet op bestaande mainstream technologie. 

Als student in de Data Management en Analytics specialisatie zal je oplossingen bestuderen, ontwerpen, en ontwikkelen voor big data opslag, verwerking, en analyse en voor interactie met big data. Daarin ligt een sterke focus op het systeemaspect van oplossingen voor beheer en analyse van big data. Je zal gespecialiseerde systemen en algoritmes bestuderen voor het ontwerp van gegevensintensieve applicaties die hun data op een gedistribueerde manier opslaan, zoals bijvoorbeeld gebruikt door grote spelers in de markt zoals Google en Facebook, die centraal zullen zijn voor het ontwerpen van applicatie van de toekomst in het opkomende domein van het Internet of Things. Je zal machine learning algoritmes en technieken om informatie te zoeken in een grote collectie documenten (zoals bijvoorbeeld gebruikt in Google's zoekalgoritme) en de theorie en praktische aspecten van het automatisch detecteren van structuur in grote en complexe data. Deze kennis over methodes en technieken van machine-gebaseerde analyse van grote datasets al een belangrijke rol spelen toekomstige oplossingen aangezien data vandaag de dag massaal verzameld wordt, en het meer en meer essentieel wordt om deze verder te verwerken, analyseren en inzichten er uit te extraheren. Aangezien heel wat analytische taken niet geautomatiseerd kunnen worden, zal je ook leren over moderne informatievisualisatie en interactie technieken die de mens kunnen helpen in het verkennen en begrijpen van grote en complexe datasets. Je zal bovendien leren hoe interactieve visualisatie oplossingen te ontwikkelen die kunnen helpen om datagebaseerde kennis te presenteren en een belangrijke rol kunnen spelen in beslissingsprocessen en bij kennisoverdracht. 

De Data Management en Analytics specialisatie bestaat uit vier verplichte fundamentele vakken en een lijst van verdiepende en verbredende keuzevakken. Op deze manier kunnen de studenten zelf kiezen om hun kennis te verdiepen in opslag en gegevensbeheer van big data, verwerken en analyse van grote datasets, of innovatieve oplossingen voor mens-data interactie. Voor studenten met een bredere interesse is het uiteraard ook mogelijk om keuzevakken uit verschillende van deze richtingen te kiezen, en ze te combineren met vakken uit de andere drie afstudeerrichtingen aangeboden door het departement computerwetenschappen.

120 Studiepunten

Data Management en Analytics is een specialisatie in onze 2 jaar durende masteropleiding in Computerwetenschappen van 120 ECTS. Studenten van deze specialisatie moeten slagen voor de zorgvuldig ontworpen kern van 30 ECTS die alle vier de specialisaties gemeen hebben, de 24 ECTS van vier verplichte vakken binnen deze specialisatie, minstens 6 ECTS van keuzevakken binnen de specialisatie, nog eens 30 ECTS van keuzevakken uit deze of een van de andere specialisaties, en voor een onderzoeksopleiding van 6 ECTS en een masterscriptie van 24 ECTS.

Software Architecturen (kern, 6 ECTS, sem 1)

Dit vak behandelt het ontwerp en de implementatie van grootschalige softwaresystemen die wereldwijd opereren met duizenden concurrente gebruikers. We bespreken architecturale patronen en tactieken om kwaliteiten te realiseren zoals reactiviteit (tijdig reageren op invoer), weerbaarheid (herstellen van onverwachte falingen), en elasticiteit (reageren op variaties in belasting). We illustreren deze patronen aan de hand van frameworks voor de programmeertaal Scala, waarvan de relevante eigenschappen eerst overlopen worden
Berekenbaarheid (kern, 3 ECTS, sem 2)
Deze cursus behandelt de basisbegrippen van de theorie van berekenbaarheid en complexiteitstheorie. Voor de theorie van berekenbaarheid zijn dit: Turing machines, de Church-Turing thesis, beslisbaarheid, het stopprobleem, herleidbaarheid en de recursiestelling. Voor de complexiteitstheorie zijn dit: Tijdscomplexiteit en de klassen P en NP, NP-volledigheid, de stelling van Cook-Levin, en andere NP-complete problemen.
Informatietheorie (kern, 3 ECTS, sem 1)
De cursus geeft een inleiding in de informatietheorie steunend op de aanpak van Shannon enerzijds en Kinchine anderzijds. Begrippen als eigeninformatie, entropie, voorwaardelijke entropie, gemiddelde fout en ambiguiteit, transinformatie, redundantie e.d. worden ingeleid en talrijke voorbeelden worden behandeld en berekend. De kanaalcapaciteit wordt berekend voor een transmissiekanaal en toegepast op praktische voorbeelden (o.a. voor DSL op twisted pair en wireless radio kanalen).
Declaratief Programmeren (kern, 6 ECTS, sem 2)
Declaratief programmeren omvat het specificeren van de invoer-uitvoerrelatie die een gebruiker nodig heeft uit zijn programma, terwijl, voor zover mogelijk, de feitelijke uitvoeringsmethode aan de compiler wordt overgelaten. In deze praktische cursus wordt constraint logic programming diepgaand bestudeerd, zowel vanuit theoretisch als praktisch perspectief. De logische programmeertaal Prolog wordt in detail behandeld, vanuit een historisch perspectief dat je voorbereidt op blootstelling aan logische programma's in de industrie, tot de laatste ontwikkelingen in constraint logic programming en numerieke constraint satisfaction.
Methoden van Wetenschappelijk onderzoek (kern, 3 ECTS, sem 1)
Deze cursus geeft een inleiding van de basis van de wetenschappelijke methodes: hoe wetenschappers voorkomen dat ze het wiel opnieuw uitvinden, hoe voorkomen zichzelf voor de gek te houden en hoe ze voorkomen dat onbetrouwbare en foute resultaten verspreid worden. De cursus wordt geëvalueerd met een aantal praktische uitdagingen voor de studenten.
Scientific Integrity (verbredend, 3 ECTS, sem 1)
In de film Jurassic Park zegt het personage Dr. Ian Malcolm: “your scientists were so preoccupied with whether they could, they didn’t stop to think if they should.” Dat is één van de ethische aspecten van wetenschap waaraan deze cursus aandacht schenkt; je zal over dergelijke problemen een column schrijven. Ander onderwerpen zijn academische fraude en slordige wetenschap. Met andere woorden: je gaat een kijkje nemen achter de schermen van wetenschap en zal inzicht verwerven omtrent de goede redenen om zelf onderzoek te verrichten op ethische wijze.
Open Informatiesystemen (kern, 6 ECTS, sem 1)
In dit vak stellen we computergebaseerde agenten in staat gegevens op een zinvolle (semantische) manier uit te wisselen en te verwerken. We bespreken zowel “semantic elicitation” als “semantic application”. Het eerste betreft het formeel specificeren van gedeelde begrippen van een “Universe of Discourse” in een zogenaamde ontologie. Het tweede houdt zich bezig met het opvragen, integreren en gebruiken van gegevens uit heterogene bronnen met zulke ontologieën. We illustreren de verschillende principes op het Semantische Web door gebruik te maken van diens standaarden (onder andere RDF, OWL, en SPARQL).

Schaalbare Datamanagement Systemen (kern, 6 ECTS, sem 1)

In de cursus Scalable Data Management Systemen bestuderen we systemen en algoritmen die ontwikkeld zijn voor het ondersteunen van data intensieve toepassingen op schaal.  De cursus volgt een principiële aanpak en behandelt aspecten van gedistribueerde databanken, MapReduce afgeleiden, en andere relevante systemen. De cursus focust onder meer op uitdagingen rond gegevens partitionering, gedistribueerd query plannen en schaalbare transactieverwerking.
Information Retrieval and Data Mining (kern, 6 ECTS, sem 2)
Information Retrieval omvat de theorie en de praktijk van het zoeken naar en het doorzoeken van documenten, zoals bijvoorbeeld gebruikt door Google. Het is gerelateerd aan Data Mining, de theorie en de praktijk van het automatisch begrijpen van de structuur van data. Deze gecombineerde cursus behandelt onderwerpen gaande van praktische problemen zoals het ruimte-efficiënt indexeren van massale gegevensbanken, tot het bepalen van het belang van woorden en andere vormen van semantiek in gestructureerde en ongestructureerde documenten. .
Information Visualisation (kern, 6 ECTS, sem 2)
Dit vak bespreekt verschillende visualisatietechnieken ter ondersteuning van de exploratieve analyse van grote datasets. De theorie behandelt specifieke elementen van menselijke perceptie, aspecten van de kleurtheorie, alsook de ontwerpprincipes en interactietechnieken voor mens-in-de-lus data-exploratie, geïllustreerd aan de hand van verschillende case studies. De theorie wordt toegepast en verder verdiept in een groepsopdracht waarbij interactieve visualisatieoplossingen voor grote en complexe datasets ontworpen en geïmplementeerd worden..
Advanced Topics in Big Data (kern, 6 ECTS, sem 2)
In dit seminarie reviewen we onderzoekspapers binnen het domein big data. Studenten vergaren op deze manier kennis over de recente ontwikkelingen binnen het veld big data en de onderliggende technologieën. Studenten krijgen een of meerdere onderzoekspapers toegekend en leren hoe deze kritisch te analyseren alsook hoe hun evaluatie te formuleren via het schrijven van wetenschappelijke rapporten en door het geven van mondelinge presentaties.

Cloud Computing and Big Data Processing (verdiepend, 6 ECTS, sem 1)

Dit vak introduceert de basisconcepten uit de gelijknamige domeinen, en het gebruik ervan binnen gerelateerde raamwerken en hulpmiddelen. Over Cloud Computing passeren beveiliging, consistentie, reactiviteit en decentralisatie (blockchain) de revue. Tot de Big Data Processing onderwerpen behoren cluster computing, fouttolerantie en gegevenslocaliteit, partitionering en streaming.
Statistical Foundations of Machine Learning  (verdiepend, 6 ECTS, sem 2)
Deze cursus behandelt de basisconcepten van statistisch machinaal leren. De volgende onderwerpen worden besproken: wat is een goed geformuleerd leerprobleem, is machinaal leren van het probleem wel mogelijk? Wat is het verschil tussen trainen en testen, en fouten en ruis? Hoe kunnen we veilig veralgemenen? Op het vlak van technieken bekijken we oa. Lineaire modellen, Neurale netwerken, Support vector machines, Kernel methoden, Bayesiaans machinaal leren, en Causaliteit.
Advanced Databases (verdiepend, 5 ECTS, sem 1)
Dit vak behandelt geavanceerde concepten die de integratie van databanken in objectgerichte en gedistribueerde software-systemen vergemakkelijken, zoals actieve databanken die data repliceren en consistent houden. Het vak behandelt ook het beheer van niet-relationele gegevenstypes, zoals temporele, graf, en ruimtelijke data. Het vak behandelt de theoretische fundamenten alsook hun toepassing in innovatieve applicatie-domeinen.
Database Systems Architecture (verdiepend, 5 ECTS, sem 1)
Of je nu zoekmachine zoals Google gebruikt, of je volgende vakantie online boekt: in zowat elke moderne applicatie is er nood aan systemen om data op grote schaal op te slaan, te verwerken, en op te zoeken. Dit vak bestudeert hoe zulke systemen ontworpen en geïmplementeerd worden, en heeft twee doelstellingen. (1) De inzichten verwerven die nodig zijn om in de toekomst zelf data management systemen te kunnen ontwikkelen en (2) een inzicht te krijgen hoe de efficiëntie van praktische bestaande data management systemen getuned kunnen worden.
Next Generation User Interfaces  (verdiepend, 6 ECTS, sem 1)
Na het volgen van deze cursus heeft de student inzicht in de interactieprincipes van nieuwe apparaten zoals smartphones, multi-touch tafels of op gebaren-interfaces, evenals de theoretische achtergrond voor deze interactieprincipes. De student kan reflecteren over de kwaliteiten en tekortkomingen van verschillende interactiestijlen, met de gebruiker als centrale component van het ontwerpproces van de interface. De theorie wordt toegepast in een groepsproject waarbij studenten hun individuele gebruikersinterface van de volgende generatie ontwerpen en ontwikkelen.

Research Training (verdiepend, 6 ECTS, sem 1+2)

Dit vak is opgevat als een intensieve stage binnen een van de onderzoeksgroepen van het departement computerwetenschappen. Studenten wordt gevraagd om autonoom te werken aan een bepaald deel van een experiment of aan een lopend ontwikkelingsproject. Zij worden van dichtbij opgevolgd en ontvangen regelmatig feedback over hun werk.
Masterthesis Computerwetenschappen (verdiepend, 24 ECTS, sem 1+2)
Studenten ontwikkelen, publiceren, en verdedigen een originele bijdrage tot het domein van  Computerwetenschappen in het algemeen en tot de daarin gekozen specialisatie in het bijzonder. Zij kunnen het onderwerp vrij bepalen in samenspraak met een promotor van het departement. Hiertoe wordt een lijst van aanbevolen onderwerpen gecommuniceerd. 

Klik hier voor het officiële overzicht van dit programma met een volledige lijst van keuzevakken.

Het onderstaande keuzevak uit het bachelorprogramma kan enkel worden gekozen met goedkeuring van de examencommissie. Het is bedoeld als een "boost"-cursus voor studenten die een bachelorprogramma afwerkten aan een instelling met minder nadruk op web technologieën.

Web Technologies (boosting, 6 ECTS, SEM1)
Dit vak onderzoekt de oorsprong van hypermedia en het World Wide Web en we bespreken huidige en toekomstige ontwikkelingen op het web. We studeren de architectuur van het internet en verschillende protocollen zoals het Hypertext Transfer Protocol (HTTP) en HTML5, JavaScript, CSS3, Web 2.0, het Semantic Web, web search en beveiliging en privacy. De theorie wordt toegepast in verschillende WPOs en in een Rich Internet Application die als onderdeel van deze cursus ontwikkeld wordt.

Research in the picture

Professor Signer, die de cursus Information Visualisation in de specialisatie Data Management en Analytics doceert, en zijn team hebben een nieuw type fysieke gebruikersinterface ontwikkeld voor de interactie met Big Data-datasets. U kunt meer lezen over het onderzoek op zijn website.

Terug naar programmaoverzicht

Klik hier

Meer info over inschrijven

Klik hier

Software Languages en Software Engineering

De SOFT-specialisatie dekt de programmeertalen, ontwikkeltools, en de abstractie- en compositiemechanismen die nodig zijn voor het bouwen en onderhouden van grootschalige toepassingen. De vakken variëren van theoretische grondslagen (bv. typetheorie in Haskell, formele bewijzen in Agda), over programmeertaal-paradigma's (bv. multi-core en gedistribueerd programmeren in Clojure en Scala) en implementatietechnieken (bv. compilers en virtuele machines) tot geavanceerde software engineering concepten (bv. quality assurance en security, meta-programmeren).

Programmeertalen, ontwikkeltools of -frameworks ... op conceptueel, technisch, en op theoretisch niveau!

In detail

De specialisatie "Software Languages & Software Engineering" (of kortweg SOFT) gaat helemaal over de kunst, wetenschap en techniek van software-ontwikkeling. Uiteraard hebben studenten die onze master betreden al uitstekende programmeervaardigheden. De SOFT specialisatie verbreedt en verdiept deze competentie tot het niveau van academische beheersing. Het is onze ambitie om eersteklas specialisten op te leiden op het gebied van "software-ontwikkelingstechnologie van de toekomst". Onze alumni hebben immers nog een carrière van meer dan 40 jaar voor de boeg! De SOFT-specialisatie richt zich daarom sterk op de wetenschappelijke aspecten van programmeertalen en software engineering, in plaats van de courante technologieën die vandaag trendy zijn, maar morgen misschien niet meer bestaan.

Als student in de SOFT-specialisatie bestudeer, gebruik en ontwerp je de modernste programmeertalen, krachtige tools voor softwareontwikkeling, en zeer innovatieve software frameworks. Afhankelijk van je persoonlijke interesses kan je ze bestuderen op conceptueel niveau, op technisch niveau of ––voor de diehards–– op theoretisch en / of implementatieniveau. Ons departement is goed uitgerust met state-of-the-art hardware om eender welke academische interesse diepgaand te verkennen (een gedistribueerde cluster, enkele many-core machines, smartphones, micro-controllers, Arduinos, Raspberry Pis, GPU's, ... ).

De SOFT-specialisatie bestaat uit drie verplichte vakken en een uitgebreide lijst keuzevakken waarmee studenten een persoonlijke nadruk op hun studies kunnen leggen. Studenten met interesse in fundamentele wetenschappelijke kennis over programmeertalen kunnen zich verdiepen in de semantiek van of in de implementatie van programmeertalen. 
Studenten die geïnteresseerd zijn in de kunst van programmeren kunnen expert worden in geavanceerde paradigma’s zoals gedistribueerd en multi-core programmeren. Studenten met interesse in de ontwikkeling van grootschalige systemen kunnen cursussen volgen over het analyseren van repositories en over softwarekwaliteit. Tot slot kunnen studenten met een brede interesse kiezen uit elk van deze cursussen.

120 ECTS

Software Languages en Software Engineering is een specialisatie in onze 2 jaar durende masteropleiding in Computerwetenschappen van 120 ECTS. Studenten van deze specialisatie moeten slagen voor de zorgvuldig ontworpen kern van 30 ECTS die alle vier de specialisaties gemeen hebben, de 18 ECTS van vier verplichte vakken binnen deze specialisatie, minstens 12 ECTS van keuzevakken binnen de specialisatie, nog eens 30 ECTS van keuzevakken uit deze of een van de andere specialisaties, en voor een onderzoeksopleiding van 6 ECTS en een masterscriptie van 24 ECTS.

Software Architecturen (kern, 6 ECTS, sem 1)

Dit vak behandelt het ontwerp en de implementatie van grootschalige softwaresystemen die wereldwijd opereren met duizenden concurrente gebruikers. We bespreken architecturale patronen en tactieken om kwaliteiten te realiseren zoals reactiviteit (tijdig reageren op invoer), weerbaarheid (herstellen van onverwachte falingen), en elasticiteit (reageren op variaties in belasting). We illustreren deze patronen aan de hand van frameworks voor de programmeertaal Scala, waarvan de relevante eigenschappen eerst overlopen worden
Berekenbaarheid (kern, 3 ECTS, sem 2)
Deze cursus behandelt de basisbegrippen van de theorie van berekenbaarheid en complexiteitstheorie. Voor de theorie van berekenbaarheid zijn dit: Turing machines, de Church-Turing thesis, beslisbaarheid, het stopprobleem, herleidbaarheid en de recursiestelling. Voor de complexiteitstheorie zijn dit: Tijdscomplexiteit en de klassen P en NP, NP-volledigheid, de stelling van Cook-Levin, en andere NP-complete problemen.
Informatietheorie (kern, 3 ECTS, sem 1)
De cursus geeft een inleiding in de informatietheorie steunend op de aanpak van Shannon enerzijds en Kinchine anderzijds. Begrippen als eigeninformatie, entropie, voorwaardelijke entropie, gemiddelde fout en ambiguiteit, transinformatie, redundantie e.d. worden ingeleid en talrijke voorbeelden worden behandeld en berekend. De kanaalcapaciteit wordt berekend voor een transmissiekanaal en toegepast op praktische voorbeelden (o.a. voor DSL op twisted pair en wireless radio kanalen).
Declaratief Programmeren (kern, 6 ECTS, sem 2)
Declaratief programmeren omvat het specificeren van de invoer-uitvoerrelatie die een gebruiker nodig heeft uit zijn programma, terwijl, voor zover mogelijk, de feitelijke uitvoeringsmethode aan de compiler wordt overgelaten. In deze praktische cursus wordt constraint logic programming diepgaand bestudeerd, zowel vanuit theoretisch als praktisch perspectief. De logische programmeertaal Prolog wordt in detail behandeld, vanuit een historisch perspectief dat je voorbereidt op blootstelling aan logische programma's in de industrie, tot de laatste ontwikkelingen in constraint logic programming en numerieke constraint satisfaction.
Methoden van Wetenschappelijk onderzoek (kern, 3 ECTS, sem 1)
Deze cursus geeft een inleiding van de basis van de wetenschappelijke methodes: hoe wetenschappers voorkomen dat ze het wiel opnieuw uitvinden, hoe voorkomen zichzelf voor de gek te houden en hoe ze voorkomen dat onbetrouwbare en foute resultaten verspreid worden. De cursus wordt geëvalueerd met een aantal praktische uitdagingen voor de studenten.
Scientific Integrity (verbredend, 3 ECTS, sem 1)
In de film Jurassic Park zegt het personage Dr. Ian Malcolm: “your scientists were so preoccupied with whether they could, they didn’t stop to think if they should.” Dat is één van de ethische aspecten van wetenschap waaraan deze cursus aandacht schenkt; je zal over dergelijke problemen een column schrijven. Ander onderwerpen zijn academische fraude en slordige wetenschap. Met andere woorden: je gaat een kijkje nemen achter de schermen van wetenschap en zal inzicht verwerven omtrent de goede redenen om zelf onderzoek te verrichten op ethische wijze.
Open Informatiesystemen (kern, 6 ECTS, sem 1)
In dit vak stellen we computergebaseerde agenten in staat gegevens op een zinvolle (semantische) manier uit te wisselen en te verwerken. We bespreken zowel “semantic elicitation” als “semantic application”. Het eerste betreft het formeel specificeren van gedeelde begrippen van een “Universe of Discourse” in een zogenaamde ontologie. Het tweede houdt zich bezig met het opvragen, integreren en gebruiken van gegevens uit heterogene bronnen met zulke ontologieën. We illustreren de verschillende principes op het Semantische Web door gebruik te maken van diens standaarden (onder andere RDF, OWL, en SPARQL).

Functional Programming (kern, 6 ECTS, sem 1)

Deze cursus is een geavanceerde cursus functioneel programmeren. De voertaal is Haskell. Het begin van de cursus gaat in sneltempo over de Haskell-taalfeatures en gaat ervan uit dat studenten reeds voldoende hoog niveau in een taal als Scheme halen. Studenten die geen bachelorcursussen aan de VUB hebben afgelegd dienen eerst Higher Order Programming te volgen. Topics uit de cursus zijn o.m. monads, applicative functors, STM, Hindley-Milner typering, IO, inductiebewijzen en parsercombinators.
Meta Programming and Reflection (kern, 6 ECTS, sem 1)
Deze cursus introduceert de verschillende principes en technieken van metaprogrammeren (d.w.z. programma's die programma's manipuleren). De cursus bespreekt een historisch perspectief van metaprogrammeren en reflectie, en stelt studenten bloot aan een aantal compile-time en runtime technieken voor metaprogrammeren. Hierbij komen twee belangrijke talen aan bod: Smalltalk en CLOS.
Cloud Computing and Big Data Processing (verdiepend, 6 ECTS, sem 1)
Cloud Computing en Big Data Processing is een geavanceerde tweedelige cursus die de basisconcepten en -technieken van deze domeinen introduceert en het gebruik ervan binnen gerelateerde raamwerken en hulpmiddelen motiveert en illustreert. Onderwerpen voor cloud computing zijn beveiliging, consistentie, reactiviteit en decentralisatie (blockchain). Big Data Processing-onderwerpen omvatten cluster computing, fouttolerantie en gegevenslocaliteit, partitionering en streaming. Kennis van JavaScript en Scala is een pluspunt.

Multicore Programming (verbredend, 6 ECTS, sem 2)

Of je nu een laptop, smartphone, of server in de cloud gebruikt, je machine bevat waarschijnlijk een multicore processor. Om deze hardware efficiënt te gebruiken zal je moeten leren hoe parallelle programma’s te schrijven. In het vak “Multicore Programming” bestuderen we verschillende programmeermodellen en -technieken voor parallellisme en concurrency, inclusief technieken die gebruikmaken van message passing zoals actors, geheugen dat veilig gedeeld wordt via transacties, en parallellisme op grote schaal op een GPU.
Software Quality Analysis (verdiepend, 6 ECTS, sem 2)
Deze cursus behandelt algoritmes die programma’s als data voorstellen en op die manier redeneren over hun kwaliteit. Tot de onderwerpen behoren statische analyses voor het detecteren van bugs, symbolische executie voor het genereren van tests, abstractie interpretatie voor het voorspellen van informatielekken, en programma-transformatie voor het moderniseren van programma’s. De hoorcolleges dekken de formele fundamenten van deze algoritmes, terwijl de werkcolleges rond concrete implementaties in Scala werken.
Distributed and Mobile Programming Paradigms (verbredend, 6 ECTS, sem 2)
Dit is een geavanceerde cursus voor gedistribueerde systemen, waarbij verschillende programmeermodellen en -technieken worden bestudeerd, met een focus op gedistribueerde applicaties die op mobiele hardware draaien (inclusief technieken voor message-passing, tuple-spaces, enz). De cursus gaat ook in op fundamentele concepten van gedistribueerde systemen zoals gedistribueerde synchronisatie, consistentie en replicatie. Studenten passen de verworven kennis toe door een mobiele applicatie voor Android te bouwen. De cursus veronderstelt een basiskennis van parallellisme en distributie.
Next Generation User Interfaces (verbredend, 6 ECTS, sem 2)
Na het volgen van deze cursus heeft de student inzicht in de interactieprincipes van nieuwe apparaten zoals smartphones, multi-touch tafels of op gebaren-interfaces, evenals de theoretische achtergrond voor deze interactieprincipes. De student kan reflecteren over de kwaliteiten en tekortkomingen van verschillende interactiestijlen, met de gebruiker als centrale component van het ontwerpproces van de interface. De theorie wordt toegepast in een groepsproject waarbij studenten hun individuele gebruikersinterface van de volgende generatie ontwerpen en ontwikkelen.
Interpretation of Computer Programs 2 (verbredend, 6 ECTS, sem 2)
In deze cursus staat de semantiek van geavanceerde programmeertalen centraal. Geavanceerde controlemechanismen (zoals generators, continuaties, typering, …) worden bestudeerd op basis van interpreters. Geavanceerde data-organisatietechnieken (zoals objecten, klassen, actors,  …) worden bestudeerd door ze als macro’s toe te voegen aan een dialect van Scheme. Studenten die deze cursus willen volgen maar geen bachelorcursussen aan de VUB hebben gevolgd dienen eerst Higher Order Programming te volgen.
Compilers (verbredend, 6 ECTS, sem 2)
Na een algemeen overzicht waarin de diverse componenten van een compiler worden geillustreerd wordt dieper ingegaan op o.a. 1) Lexicale analyse d.m.v. reguliere expressies, eindige automaten, optimisatie van automata en scanner generatoren (flex); 2) Syntax analyse met behulp van LL en LR(1) parsers, en parser generatoren (bison); 3) Intermediate code generatie en optimisatie (basic block en globaal dmv answer set programma's), en code generatie en run-time organisatie.
Programming Language Engineering (verdiepend, 6 ECTS, sem 2)
Deze cursus overbrugt de kloof tussen conceptuele benaderingen van programmeertaalontwikkeling en hun praktische toepassingen in termen van efficiënte taalprocessoren. Deze cursus bestudeert een familie van virtuele machines die vertrekken van een eenvoudige mapping van een referentie-implementatie in Scheme naar een C-implementatie en behandelt geleidelijk aan zaken als geautomatiseerd geheugenbeheer, lexicale adressering, gedeeltelijke evaluatie, runtime-pools en optimalisatie in het algemeen.
Fundamentals of Programming Languages (verdiepend, 6 ECTS, sem 1)
Deze cursus gaat over theoretische aspecten van geavanceerde programmeertalen (typetheorie, Hoare-logica, afhankelijke types, ...) en het bewijzen van hun eigenschappen in de proof assistant Coq. De cursus wordt officieel gedoceerd aan de Universiteit Gent door een professor die vroeger aan de VUB werkte. We hebben één van de teleklaslokalen van de VUB geboekt zodat de VUB-studenten niet naar Gent hoeven te reizen. De cursus wordt in het Nederlands gegeven met Engelse cursusnota's en oefeningen.
Capita Selecta of Software Engineering (verbredend, 6 ECTS, sem 1+2)
Deze cursus gaat over het creëren van echt intelligente ontwikkeltools door geavanceerde machinale leer- en datamining-algoritmes toe te passen op software-engineeringgegevens. Onderwerpen zijn onder andere het voorspellen van de locatie van defecten in de broncode met behulp van classifiers zoals Support Vector Machines, het prioriteren van testgevallen met behulp van Genetische Algoritmen, en het blootleggen van herhaling in commit histories met behulp van Pattern Mining.
Capita Selecta of Programming Languages (verdiepend, 6 ECTS, sem 1+2)
In dit vak leren studenten werken met Agda, een dependent-getypeerde functionele programmeertaal die gebruikt kan worden om rigoureuze bewijzen te geven van eigenschappen van programma’s en zelfs van algemene wiskundige stellingen. Deze kennis wordt vervolgens toegepast in de studie van geverifieerde en veilige compilers. Het vak wordt gegeven op een hands-on manier en wordt geëvalueerd met een project.

Research Training (verdiepend, 6 ECTS, sem 1+2)

Dit vak is opgevat als een intensieve stage binnen een van de onderzoeksgroepen van het departement computerwetenschappen. Studenten wordt gevraagd om autonoom te werken aan een bepaald deel van een experiment of aan een lopend ontwikkelingsproject. Zij worden van dichtbij opgevolgd en ontvangen regelmatig feedback over hun werk.
Masterthesis Computerwetenschappen (verdiepend, 24 ECTS, sem 1+2)
Studenten ontwikkelen, publiceren, en verdedigen een originele bijdrage tot het domein van  Computerwetenschappen in het algemeen en tot de daarin gekozen specialisatie in het bijzonder. Zij kunnen het onderwerp vrij bepalen in samenspraak met een promotor van het departement. Hiertoe wordt een lijst van aanbevolen onderwerpen gecommuniceerd. 

Klik hier voor het officiële overzicht van dit programma met een volledige lijst van keuzevakken.

Het onderstaande keuzevak uit het bachelorprogramma kan enkel worden gekozen met goedkeuring van de examencommissie. Het is bedoeld als een "boost"-cursus voor studenten die een bachelorprogramma afwerkten aan een instelling met minder aandacht voor functioneel programmeren.

Higher Order Programming (boosting, 6ECTS, sem 1)
Dit is een ondersteunende cursus in functioneel programmeren die speciaal is ontworpen voor studenten die al goed kunnen programmeren in een mainstream taal met beperkte functionele kenmerken (bijv. Java, C #, Python, ...). We raden dit vak aan voor alle studenten van de specialisatie Software Languages ​​& Software Engineering met een niet-VUB BA achtergrond. Het vak kan in eenzelfde semester worden gecombineerd met Functional Programming.

Research in the picture

Professor De Meuter, docent uit de specialisatie Software Talen en Software Engineering, en zijn team hebben een visuele programmeertaal ontwikkeld die het uitvoeren van citizen science projecten tot een fluitje van een cent maakt. Met een minimale hoeveelheid code kan iedereen een mobiele applicatie bouwen die de sensordata naar een centrale verwerkingsserver stuurt. Meer over het onderzoek kunt u lezen op https://flamenco.vlaanderen

Terug naar programmaoverzicht

klik hier

Meer info over inschrijven

Klik hier

Multimedia

De multimediaspecialisatie verkent technieken voor signaalverwerking en -communicatie van multimediacontent. Het programma beoogt een grondige technologische en wetenschappelijke kennis op te bouwen van verschillende multimediadomeinen, zoals digitale televisie, telefonie en videofonie, computeranimatie, computerspelletjes en het internet. De studenten doen ervaring op met complexe ICT-architecturen voor de verwerking, distributie en consumptie van multimediacontent.

120 ECTS

Multimedia is een specialisatie in onze 2 jaar durende masteropleiding in Computerwetenschappen van 120 ECTS. Studenten van deze specialisatie moeten slagen voor de zorgvuldig ontworpen kern van 30 ECTS die alle vier de specialisaties gemeen hebben, de 20 ECTS van vijf verplichte vakken binnen deze specialisatie, minstens 10 ECTS van keuzevakken binnen de specialisatie, nog eens 30 ECTS van keuzevakken uit deze of een van de andere specialisaties, en voor een onderzoeksopleiding van 6 ECTS en een masterscriptie van 24 ECTS.

Software Architecturen (kern, 6 ECTS, sem 1)

Dit vak behandelt het ontwerp en de implementatie van grootschalige softwaresystemen die wereldwijd opereren met duizenden concurrente gebruikers. We bespreken architecturale patronen en tactieken om kwaliteiten te realiseren zoals reactiviteit (tijdig reageren op invoer), weerbaarheid (herstellen van onverwachte falingen), en elasticiteit (reageren op variaties in belasting). We illustreren deze patronen aan de hand van frameworks voor de programmeertaal Scala, waarvan de relevante eigenschappen eerst overlopen worden
Berekenbaarheid (kern, 3 ECTS, sem 2)
Deze cursus behandelt de basisbegrippen van de theorie van berekenbaarheid en complexiteitstheorie. Voor de theorie van berekenbaarheid zijn dit: Turing machines, de Church-Turing thesis, beslisbaarheid, het stopprobleem, herleidbaarheid en de recursiestelling. Voor de complexiteitstheorie zijn dit: Tijdscomplexiteit en de klassen P en NP, NP-volledigheid, de stelling van Cook-Levin, en andere NP-complete problemen.
Informatietheorie (kern, 3 ECTS, sem 1)
De cursus geeft een inleiding in de informatietheorie steunend op de aanpak van Shannon enerzijds en Kinchine anderzijds. Begrippen als eigeninformatie, entropie, voorwaardelijke entropie, gemiddelde fout en ambiguiteit, transinformatie, redundantie e.d. worden ingeleid en talrijke voorbeelden worden behandeld en berekend. De kanaalcapaciteit wordt berekend voor een transmissiekanaal en toegepast op praktische voorbeelden (o.a. voor DSL op twisted pair en wireless radio kanalen).
Declaratief Programmeren (kern, 6 ECTS, sem 2)
Declaratief programmeren omvat het specificeren van de invoer-uitvoerrelatie die een gebruiker nodig heeft uit zijn programma, terwijl, voor zover mogelijk, de feitelijke uitvoeringsmethode aan de compiler wordt overgelaten. In deze praktische cursus wordt constraint logic programming diepgaand bestudeerd, zowel vanuit theoretisch als praktisch perspectief. De logische programmeertaal Prolog wordt in detail behandeld, vanuit een historisch perspectief dat je voorbereidt op blootstelling aan logische programma's in de industrie, tot de laatste ontwikkelingen in constraint logic programming en numerieke constraint satisfaction.
Methoden van Wetenschappelijk onderzoek (kern, 3 ECTS, sem 1)
Deze cursus geeft een inleiding van de basis van de wetenschappelijke methodes: hoe wetenschappers voorkomen dat ze het wiel opnieuw uitvinden, hoe voorkomen zichzelf voor de gek te houden en hoe ze voorkomen dat onbetrouwbare en foute resultaten verspreid worden. De cursus wordt geëvalueerd met een aantal praktische uitdagingen voor de studenten.
Scientific Integrity (verbredend, 3 ECTS, sem 1)
In de film Jurassic Park zegt het personage Dr. Ian Malcolm: “your scientists were so preoccupied with whether they could, they didn’t stop to think if they should.” Dat is één van de ethische aspecten van wetenschap waaraan deze cursus aandacht schenkt; je zal over dergelijke problemen een column schrijven. Ander onderwerpen zijn academische fraude en slordige wetenschap. Met andere woorden: je gaat een kijkje nemen achter de schermen van wetenschap en zal inzicht verwerven omtrent de goede redenen om zelf onderzoek te verrichten op ethische wijze.
Open Informatiesystemen (kern, 6 ECTS, sem 1)
In dit vak stellen we computergebaseerde agenten in staat gegevens op een zinvolle (semantische) manier uit te wisselen en te verwerken. We bespreken zowel “semantic elicitation” als “semantic application”. Het eerste betreft het formeel specificeren van gedeelde begrippen van een “Universe of Discourse” in een zogenaamde ontologie. Het tweede houdt zich bezig met het opvragen, integreren en gebruiken van gegevens uit heterogene bronnen met zulke ontologieën. We illustreren de verschillende principes op het Semantische Web door gebruik te maken van diens standaarden (onder andere RDF, OWL, en SPARQL).

Image and Video Technology (foundational, 3 ECTS, 1 sem)

Deze cursus biedt de theoretische achtergrond van digitale beeld- en videocodering en illustreert het gebruik in praktische systemen zoals digitale fotografie, televisie en film. Onderwerpen zijn onder andere coderingstheorie, stilstaande beeldcodering, videocodering en aanpassing aan kanaalkenmerken. Toepassingen zijn onder andere MPEG-systemen, DVD, digitale video-uitzendingen, mediaproductie- en distributieplatforms en digitale cinema.
Computer Vision (foundational, 4 ECTS, 1 sem)
Deze cursus richt zich op het begrijpen en toepassen van fundamentele wiskundige en computationele technieken in de computervisie, en op het implementeren van elementaire computervisietoepassingen.
Capita Selecta Multimedia (deepening, 3 ECTS, 2 sem)
Deze cursus is gebaseerd op interactieve sessies waarbij de studenten discussiëren met de docent en/of een uitgenodigde expert. De thema's worden geselecteerd op basis van de interesses van de deelnemende studenten. Een niet-exclusieve lijst van potentiële thema's omvat: forensische beeldverwerking, high-dynamic range imaging, sociologische aspecten van nieuwe media, foutbestendige codering, gedistribueerde broncodering, het menselijke visuele systeem en perceptuele metriek, digitale video-omroep en HDTV, 3D-video, 3D-graphics en multimedia-beveiliging.
Image Processing (foundational, 5 ECTS, 2 sem)
De fundamentele gronden voor digitale beeldverwerking worden bepaald door lineaire algebra, digitale signaalverwerking en statistiek. De geëxtraheerde informatie varieert afhankelijk van de doelen die worden nagestreefd of het toepassingsveld (de context) dat wordt beschouwd. Deze cursus is gericht op het verwerken van gemeten en discrete beeldgegevens, zonder rekening te houden met a priori contextuele modellen van de scène.
Virtual Reality (foundational, 5 ECTS, 1 sem)
De cursus beschrijft methoden en hulpmiddelen voor 3D view synthese en animatie in 3D game engines. Het geeft een overzicht van de 3D OpenGL rendering pipeline (vertex en fragment shaders, clipping, mipmapping, Z-buffering, Gouraud/Phong shading, physics engine, raytracing, radiosity, etc) en data acquisitie/representatie formaten (meshes, Bézier curves, texturen, octree partitionering, particle systems, etc). Aan het einde van de cursus heeft de student eenvoudige 3D viewers in OpenGL (Open Graphics Library) geïmplementeerd met behulp van C/C++ en GLSL (Graphics Library Shader Language) voor speciale effecten, 3D gemodelleerde content (bijv. Blender 3D, geëxporteerd in OBJ formaat), ultra-realistische 3D rendering (raytracing en radiositeit), evenals multi-camera vastgelegde content met dieptewaarneming (Point Clouds en/of Depth Image Based Rendering) voor Free Navigation Virtual Reality.

Physical Communication (broadening, 6 ECTS, 1 sem)

Deze cursus richt zich op de praktische aspecten van de fysieke laag van het OSI-communicatiemodel. Het doel is om praktische ervaring op te doen met het opzetten van een bekabeld of draadloos communicatiesysteem. Om de cursus toegankelijk te maken voor studenten met verschillende achtergronden, van beginners tot specialisten, begint de cursus met een opsomming van de belangrijke telecommunicatieaspecten die nodig zijn om de fysieke laag van een communicatiesysteem praktisch op te bouwen.
Computational Geometry (broadening, 5 ECTS, 1 sem)
Deze cursus bestudeert enkele fundamentele problemen in de computationele meetkunde en verschillende algoritmische concepten die gebruikt kunnen worden om deze op te lossen. We behandelen onder andere de volgende onderwerpen: Convexe rompen, veelhoekige triangulatie, Delaunay-triangulaties, Voronoi-diagrammen, opstellingen, projectieve dualiteit, geometrische optimalisatie, lineair programmeren, zoeken naar bereik, puntlocatie en andere geometrische datastructuren.
Multimedia Seminar (deepening, 3 ECTS, 1 sem)
Met dit seminarie komt de student in contact met wetenschappelijk onderzoek in multimedia. De student is betrokken bij een van de onderzoeksgroepen waar hij/zij kan samenwerken aan een actueel onderwerp.
Voice Image Coding Media and Systems (broadening, 5 ECTS, 1 sem)
Deze cursus geeft de studenten inzicht in de verschillende soorten kanaalcoderingsschema's die worden gebruikt om transmissiefouten op te sporen en te corrigeren. Onderwerpen zijn onder andere een introductie in telefonie inclusief DSL, een introductie in schakelborden inclusief wachtrijtheorie, kanaalcodering en navigatie met behulp van GPS, Glonass en Galileo.
Biomedical Signals and Images (broadening, 3 ECTS, 1 sem)
De cursus begint met een introductie tot eendimensionale digitale signaalverwerking: lineaire systemen (convolutie), Fourier representatie, sampling, signaaltransformaties (uitbreidbaar naar meer dimensies), filters (FIR), sampling conversie, en reconstructie van het analoge signaal uit zijn samples. Het belangrijkste deel van de cursus gaat over medische beeldvorming: beeldverbetering, beeldvisualisatie (inclusief 3D), segmentatie en labeling van beelden (d.w.z., afbakening en herkenning van anatomische entiteiten in medische beelden) en beeldfusie.

Research Training (verdiepend, 6 ECTS, sem 1+2)

Dit vak is opgevat als een intensieve stage binnen een van de onderzoeksgroepen van het departement computerwetenschappen. Studenten wordt gevraagd om autonoom te werken aan een bepaald deel van een experiment of aan een lopend ontwikkelingsproject. Zij worden van dichtbij opgevolgd en ontvangen regelmatig feedback over hun werk.
Masterthesis Computerwetenschappen (verdiepend, 24 ECTS, sem 1+2)
Studenten ontwikkelen, publiceren, en verdedigen een originele bijdrage tot het domein van  Computerwetenschappen in het algemeen en tot de daarin gekozen specialisatie in het bijzonder. Zij kunnen het onderwerp vrij bepalen in samenspraak met een promotor van het departement. Hiertoe wordt een lijst van aanbevolen onderwerpen gecommuniceerd. 

Meer info over inschrijven

Klik hier

Terug naar programmaoverzicht

Klik hier