Afstudeerrichting computerwetenschappen

De opleiding in een notendop

Hoe kan je aan deze opleiding starten?

    • De opleiding computerwetenschappen bestaat uit een  afstudeerrichting in de bachelor ingenieurswetenschappen, en een daarop aansluitende master.
    • De afstudeerrichting in de bachelor staat open voor alle studenten van de bachelor ingenieurswetenschappen.
    • De masteropleiding ingenieurswetenschappen: computerwetenschappen staat open voor iedereen die de afstudeerrichting computerwetenschappen gevolgd heeft. Bovendien kan je ook na de bacheloropleiding informatica en de masteropleiding industrieel ingenieur instromen in deze masteropleiding. Hier zijn echter wel enkele voorwaarden aan verbonden, waar je hier meer details kan over vinden.

Situering

De samenleving is afhankelijk van goed werkende informatiesystemen, ook in domeinen waar je dat niet meteen zou verwachten, zoals transport, ziekenzorg en onderwijs. Daarenboven wordt een flink deel van de toegevoegde waarde van moderne producten gerealiseerd door de inzet van informatietechnologie: zelfrijdende wagens, intelligente huishoudtoestellen, slimme gebouwen, ... Op dit ogenblik staan we aan de vooravond van twee grote doorbraken: (i) het internet of things waarbij alledaagse voorwerpen verbonden worden met het internet en (ii) machinaal leren waarbij computers autonoom kunnen leren. Toegepast op wonen leidt dit tot slimme gebouwen en slimme steden. Toegepast op de productie van goederen staat dit bekend als industrie 4.0. Als we in Vlaanderen mee het voortouw willen nemen in deze wereldwijde evolutie, dan zijn er veel en goed opgeleide computeringenieurs nodig.

Jobprofielen

Met je diploma computerwetenschappen kan je in heel veel bedrijven en profielen terecht. Sommige afgestudeerden gaan aan de slag bij een lokale KMO, anderen gaan liever naar het buitenland (er werken bijvoorbeeld een aantal van onze afgestudeerden bij Facebook, Google DeepMind, ...), nog anderen richten hun eigen bedrijf op. We hebben een aparte pagina met meer informatie over de beroepsmogelijkheden, en onze informatiebrochure bevat meer informatie over de bedrijven die opgericht zijn door onze afgestudeerden.

Leerlijnen

  • De systeemleerlijn leert hoe computersystemen op een laag niveau ontworpen en ontwikkeld worden. Deze begint met Computerarchitectuur, waar je leert hoe simpele processoren intern werken, en hoe deze aangestuurd worden. Digitale elektronica kijkt in meer detail hoe hardware ontwikkeld wordt. Parallel Computer Systems leert je dan hoe moderne geavanceerde processoren en parallelle accelerators werken, en Besturingssystemen leert je hoe je besturingssysteem in elkaar zit (en waar je zelf ook enkele kernel drivers zal maken om hardware aan te sturen).
  • De modelleringsleerlijn leert je analytisch na te denken over systemen, in het bijzonder over softwaresystemen, en hoe je deze op een wiskundige manier kan modelleren. Deze begint in het tweede bachelorjaar met Algoritmen en datastructuren, leer je onder andere hoe je wiskundig kan bewijzen dat bepaalde algoritmes efficiënter zijn dan andere. In het derde bachelorjaar leer je in Formele systeemmodellering voor software, hoe je wiskundig kan aantonen dat bepaalde algoritmes en de software die deze implementeert correct zijn, en leer je in Automatenleer verschillende manieren om computers te modelleren. In het masterjaar wordt deze leerlijn verdergezet met Queueing Analysis and Simulation, waar je leert hoe je dynamische processen en gebeurtenissen kan modelleren en simuleren.
  • In de software-leerlijn leer je hoe je geavanceerde programmeertechnieken en leer je hoe complexe computerapplicaties ontworpen worden. In het tweede bachelorjaar bouwt het vak Programmeren verder op Informatica uit het eerste jaar en leer je hoe bepaalde geavanceerde programmeerconcepten concreet werken, en wordt dit toegepast op de programmeertalen C en C++ die je hierbij zal leren. In het derde bachelorjaar leer je dan in Softwareontwikkeling je programmeervaardigheden gebruiken om complexe applicaties te ontwerpen en te realiseren. Ten slotte gaat Parallel and Distributed Software System in het eerste masterjaar nog verder door applicaties te bestuderen die op meerdere computers of meerdere processoren tegelijk worden uitgevoerd.
  • In de netwerkleerlijn leer je hoe computers met elkaar communiceren. In Communicatienetwerken leer je over de verschillende netwerkprotocollen die gebruikt worden door computers om te communiceren met elkaar, en leer je hoe het internet werkt. In de vakken Communicatietheorie  en Informatietheorie ga je dan verder in op hoe de data van die netwerkprotocollen nu precies verstuurd kan worden: hoe detecteer je dat je communicatiepartner een 1 of een 0 verstuurd heeft, en hoe zorg je er voor dat je fouten kan detecteren en herstellen? In Mobile and Broadband Access Networks worden deze concepten dan toegepast op mobiele netwerken (wireless, GSM, ...) en op breedbandnetwerken (zoals fiber).
  • De technopreneurial leerlijn combineert technologie en ondernemerschap. Deze leerlijn in het derde jaar met de mogelijkheid om in het kader van het Vakoverschrijdend Project een zelf voorgesteld project te realiseren. Het centrale technopreneurial vak is het Design Project uit het eerste masterjaar. Je kan dan bovendien deze leerlijn aanvullen met extra keuzevakken (Durf Ondernemen, Durf Starten, en Inleiding tot het ondernemerschap). Finaal kan een ondernemende student ook de masterproef kiezen in functie van een ondernemingsidee.
  • De optionele verdiepende majors in artificiële intelligentie en embedded systems laten je bovendien toe om je in de master volledig te specialiseren in de uitdagende domeinen van AI/Machine Learning en de interface tussen software en hardware.
  • Een meer gedetailleerde beschrijving van de opbouw van de opleiding kan je hieronder vinden.

Opbouw van de opleiding

  • Bachelor
    In het tweede bachelorjaar wordt de basisvorming van het eerste jaar verdergezet. Op die manier kom je in contact met mechanica, sterkteleer, elektronica, systeemtheorie en signaalverwerking. Deze vakken zijn nuttig voor de computerwetenschappen omdat ze je in staat stellen om te begrijpen hoe bv. een robot werkt en hoe hij kan aangestuurd worden, op welke manier audiosignalen verwerkt worden, wat de wetmatigheden zijn waarmee je rekening moet houden bij het ontwerpen van energiezuinige processoren. Bovendien zijn er vier vakken die specifiek dieper ingaan op aspecten van computerwetenschappen: Elektrische schakelingen en netwerken, de basiscursus die je voorbereidt op het ontwerp van digitale hardware, Programmeren waarin je kennis maakt met twee belangrijke programmeertalen: C en C++, Algoritmen en datastructuren waarin je kennis maakt met geavanceerde datastructuren en waarin je leert redeneren over algoritmen, en ten slotte Computerarchitectuur, waarin je kennismaakt met de basisprincipes van de hedendaagse computersystemen zoals programmeren in machinetaal, het aansturen van randapparaten en de interne werking van processoren.

    In het derde bachelorjaar wordt verdergebouwd op de basiskennis die aangeleerd wordt in het tweede bachelorjaar. In het vak Digitale elektronica leer zelf bijvoorbeeld een klein digitaal ontwerp maken, waarna je in staat bent om zelf een eenvoudig uitbreidingskaartje voor je pc te ontwerpen.  Verder is er Communicatietheorie waarin je de basisprincipes van de digitale communicatie bestudeert. In het domein van de systeemsoftware is er het vak Besturingssystemen waarin je leert op welke manier Windows en Linux intern werken. In het kader hiervan zal je ook leren hoe je zelf kleine wijzigingen in de Linuxkern kunt aanbrengen. In het vak Communicatienetwerken leer je op welke manier computers precies met elkaar over het internet communiceren. In het vak Databanken leer je grote hoeveelheden gegevens te structureren, op te slaan en toegankelijk te maken In Automatenleer worden dan weer toestandsautomaten en turingmachines bestudeerd als theoretische basismodellen van alle moderne computers. In het vak Multimediatechnieken leer je onder andere meer over het internet en het web, en hoe afbeeldingen en video's geëncodeerd worden. In het vak Softwareontwikkeling kom je meer te weten over geavanceerde concepten in programmeertalen (excepties, grafische userinterfaces, parallellisme) en leer je ook meer over de levenscyclus van een softwareproject (van eerste contact met de klant tot de oplevering en naderhand het onderhoud).

    Meer uitgebreide informatie kan je uiteraard vinden in de studiegids, en in onze infobrochure.

  • Master
    Het verplichte deel van het masterprogramma bouwt verder op de fundamenten van het bachelorprogramma.  In Parallelle computersystemen , wordt nu ingegaan op meer geavanceerde parallelle processor-architecturen en op de resultaten van recent onderzoek. Parallelle en gedistribueerde softwaresystemen gaat dieper in op software die op parallelle en genetwerkte computersystemen kan uitgevoerd worden. Ontwerp van multimediatoepassingen gaat dieper in op geavanceerde coderingen, en op de implementatie van multimediale toepassingen. In Mobiele en breedbandtoegangsnetwerken wordt dieper ingegaan op de eigenschappen en toepassingen van recente netwerktechnologieën. Wachtlijnanalyse en simulatie is een wiskundig verdiepend vak dat het gedrag van discrete systemen bestudeert. Informatietheorie brengt fundamentele kennis en inzichten aan over broncodering, kanaalcodering, en foutdetecterende en foutcorrigerende codes. Machinaal leren gaat over de toepassing van verschillende klassen van automatische leeralgoritmes in de ingenieurstoepassingen. Informatiebeveiliging gaat over de wiskundige basis, de toepassingen en de juridische aspecten van beveiligingstechnieken voor computersystemen.

    De masteropleiding bevat bovendien een pakket van 36 studiepunten aan keuzeruimte die je zelf kan invullen met vakken uit het aanbod van de Universiteit Gent. De enige voorwaarde is dat je voor minstens 18 studiepunten verdiepende computerwetenschappenvakken kiest en daarnaast nog voor 6 studiepunten aan  maatschappelijke vakken uit de facultaire lijst met keuzevakken. Deze lijst bevat een ruim aanbod van vakken waaronder een zomerstage.
  • Major artificiële intelligentie / embedded systems
    In het kader van de keuzevakken kan je desgewenst ook kiezen voor het volgen van zogenaamde major. Je kan ook kiezen voor een major, wat een coherent pakket van vakken is dat toelaat om je te verdiepen in een specifiek domein. We bieden de majors artificiële intelligentie (AI) en embedded systems (ES) aan. In dit geval kies je voor minstens 21 studiepunten aan verdiepende vakken over één specialisatie (AI of ES) en wordt deze keuze ook erkend op je diplomasupplement. Met de vakken uit de major AI kan je je verdiepen in allerhande aspecten van artificiële intelligentie en machine learning, en met de vakken uit de major ES kan je je verdiepen in de grens tussen hardware en software.

    Je kan ook gaan voor een minor: dat is een coherent pakket van 18 studiepunten van verbredende vakken in het domein van de Bedrijfskunde of Biosystemen. Bij het opnemen van een minor vervalt de eis om 6 studiepunten maatschappelijke keuzevakken te kiezen.

    De keuze voor een minor of major is uiteraard geen verplichting, wel een mogelijkheid om een coherent pakket in een bepaalde specialisatie te kiezen. Je kan dus uiteraard ook je eigen keuzevakkenpakket samenstellen los van een major of minor, volledig naar je eigen interesse in de computerwetenschappen. Dit kan dan uiteraard ook de voor jou meest interessante vakken uit de majors bevatten. In totaal kan je vrij kiezen uit bijna 40 verdiepende keuzevakken.

    Je hoeft niet meteen te kiezen of je zelf je pakket aan keuzevakken volledig vrij wil samenstellen, of je voor een minor of major wil gaan. De keuze in het eerste jaar is dus nagenoeg volledig vrij. De regels worden pas in het tweede jaar grondig gecontroleerd, rekening houdend met de keuze in het eerste jaar. Het betekent ook dat je de rubriek waarin je een keuzevak kiest in het tweede jaar nog kan veranderen (zo kan een gekozen minorvak van het eerste jaar dienst doen als vrij te kiezen vak als je in het tweede jaar zou beslissen de minor niet af te werken).

    Meer uitgebreide informatie (inclusief de lijst met bijna 40 verdiepende keuzevakken) kan je vinden in de studiegids, en in onze infobrochure.

Enkele highlights

Onderzoeksomkadering van de opleiding

De opleiding Computerwetenschappen wordt gedragen door honderden onderzoekers, verspreid over drie vakgroepen: Information Technology (INTEC), Electronics and Information Systems (ELIS), en Telecommunication and Information Processing (TELIN). In deze vakgroepen wordt, onder andere, top-onderzoek gedaan naar AI for robotics and IoT, Machine Learning and Data Mining, Semantic Intelligence, Multimedia Processing, Cloud and Big Data Infrastructures, Hardware and Embedded Systems, Novel Design Methodologies for Processors and Computing Systems, Software Protection and Computer Security, Database Document and Content Management, Digital Communications, Stochastic Modeling and Analysis of Communication Systems, Artificial Intelligence and Sparse Modelling, en Image Processing and Interpretation.

Meer info

Wat is het verschil met de opleiding Elektrotechniek (EE)?

De richtingen Computerwetenschappen en Elektrotechniek leunen dicht bij elkaar aan. Ze steunen op dezelfde basis, het tweede bachelorjaar is voor beide opleidingen zelfs grotendeels gelijk. In de latere jaren divergeren beide richtingen dan uiteraard qua focus. Het korte antwoord is dan dat de abstractielagen waarop beide richtingen verder verdiepen verschillen. Bij Computerwetenschappen is de laagste abstractielaag de interne werking van een processor, waarop dan verdergebouwd wordt (waarop dan alles verderbouwt, van besturingssystemen en algoritmes, naar machine learning en artificiële intelligentie, de interne werking van multimediatoepassingen, en het ontwerp van grote complexe software-toepassingen). Bij elektrotechniek is de processor daarentegen meer het hoogste abstractieniveau, waaruit dan omlaag gewerkt wordt (gaande van het aanspreken van hardware, naar ontwerp en fabricatie van chips, elektromagnetisme, het ontwerp van antennes, ...). Ben je meer geïnteresseerd in de werking van processoren of alles wat daarboven ligt qua abstractie, is Computerwetenschappen misschien meer voor jou, ben je meer geïnteresseerd in de werking van processoren of alles wat daaronder ligt qua abstractie, dan is Elektrotechniek misschien meer voor jou.

Het lange antwoord is uiteraard genuanceerder. Aan de extreme uiteinden van het spectrum is er uiteraard een duidelijk onderscheid tussen beide opleidingen (met computerwetenschappen voor een interesse in algoritmes, het ontwerp van software, besturingssystemen, machine learning en artificiële intelligentie, etc., en met elektrotechniek voor het ontwerpen van hardware op verschillende abstractieniveaus, praktische aspecten van elektromagnetisme, etc.). Daar is echter een grote grijze zone tussen. Computerwetenschappers krijgen immers ook enkele basis-elektrotechniekvakken in hun opleiding (Elektrische schakelingen en netwerken, en Digitale elektronica), en elektrotechniekers krijgen ook enkele basis-computerwetenschappenvakken (Programmeren en Communicatienetwerken). Een aantal vakken die gedeeld worden door beide opleidingen kan je eigenlijk moeilijk aan de een of andere richting toekennen (Computerarchitectuur, Communicatietheorie, ...). Het Ingenieursproject 2 van de computerwetenschappen heeft als expliciete inhoud dat studenten een projectje maken met een eenvoudige microprocessor om een hardwareplatform aan te sturen. Het expliciete doel van de systeemleerlijn (waar de hiervoor opgelijste vakken in voorkomen) is immers om alle studenten computerwetenschappen te leren hoe computersystemen op een laag niveau ontworpen en ontwikkeld worden, en de basis van het schrijven en ontwikkelen van systeemsoftware te leren. Daar komt bovendien bij dat je in de master computerwetenschappen zeer veel keuzevrijheid hebt om je bijvoorbeeld meer te verdiepen in de richting van hardware. Je kan er bijvoorbeeld kiezen voor de major embedded systems in de master computerwetenschappen. Deze major is expliciet toegespitst om de grens tussen hardware en software verder uit te diepen, met vakken als Design Methodology for FPGAs (waar je onder andere leert over hoe je complexe hardware/software-systemen ontwerpt) Hardware-design Project (waar je in groep zelf een volledig hardwareplatform moet ontwerpen en maken), Robotica, Analoge elektronica, ... Of je kan uiteraard je eigen keuzevakkenpakket samenstellen waar je vakken uit de embedded systems combineert met andere verdiepende computerwetenschapsvakken of elektrotechniekvakken die je interessant vindt. Bovendien kan je ook in de projectlijn naar keuze ook in aanraking komen met meer hardware/elektrotechnische aspecten. In het vakoverschrijdende project zijn bijvoorbeeld altijd enkele projectvoorstellen die door zowel elektrotechniekstudenten als computerwetenschappers gekozen kunnen worden. Bij wijze van concreet voorbeeld kunnen we verwijzen naar een van de vakoverschreidende projecten van dit jaar in het kader van het UGent Racing Team waarbij een interdisciplinair team van derdejaarsstudenten computerwetenschappen en elektrotechniek samenwerkten aan aspecten van een zelfrijdende wagen.

Infobrochure
In onze infobrochure vind je veel meer informatie, zoals bijvoorbeeld getuigenissen van alumni, de verloning, de werklast van de opleiding, ...