Als wiskundige kan je heel wat informatica keuzevakken kiezen. Maar wat houden deze in? Zijn ze ook goed te doen voor wiskundigen? Op deze vragen probeer ik via deze post een antwoord te geven.
Bachelor
Machines en berekenbaarheid: Dit vak is eerder theoretisch. De leerstof is erg wiskundig. Het vak wordt gegeven door prof. Laenens en geeft een inleiding tot automaten theorie, formele talen en berekenbaarheid. In de cursus worden o.a. besproken: grammatica's (deze kan je gebruiken om de syntax van programmeertalen in te beschrijven), push-down automaten, turing-machines (dit is de voorloper van de computer uitgevonden door de bekende Alan Turing).
Algoritmen en Complexiteit: Dit vak is eerder theoretisch. De leerstof is erg wiskundig. Dit vak wordt gegeven door prof. Janssens en bouwt verder op het vak machines en berekenbaarheid. Het vak is net als machines en berekenbaarheid erg wiskundig. In dit vak worden de tijd- en plaatscomplexiteit van enkele algoritmes bestudeerd. Verder ga je leren hoe je, gegeven een algoritme, de tijds- en plaatscomplexiteit van dit algoritme kan afleiden. Beide begrippen spelen een prominente rol binnen de informatica. Hieruit kan je o.a. afleiden hoe lang bepaalde algoritmen zullen nodig hebben om uitgevoerd te worden. Het examen van dit vak is openboek. Maar prof. Janssens stelt altijd vragen om te zien of je de leerstof wel echt begrijpt. Je moet dus zien dat je de cursus tot in het kleinste detail hebt uitgespit en zeker alles snapt wat er staat (en niet half en half).
Desondanks het feit dat er het woord "algoritme" in de titel staat, is veel programmeerervaring geen echte must. Als je "Inleiding tot programmeren" tot een goede einde hebt kunnen brengen, weet je eigenlijk voldoende.
Telecommunicatiesystemen: Dit vak wordt gegeven door prof. Blondia en bespreekt de belangrijkste hedendaagse telecommunicatiesystemen. Onderwerpen die aan bod komen zijn: telefonienetwerken, TCP/IP netwerken (Internet) met de nadruk op quality of service, draadloze netwerken, mobiele netwerken (GSM, GPRS), enzomeer.
Voor de praktijk van dit vak zal je een netwerkprotocol moeten implementeren. Hiervoor is ervaring in de programmeertaal C++ vereist. Als je dit vak kiest raad ik wel aan je kennis van C++ even op te frissen voor de aanvang van deze cursus en er ook wat op te oefenen (zie dat je weet hoe je een programma's kan schrijven en compileren met de GNU compiler). Verder raad ik aan even een netwerk tutorial door te nemen zodat je het in de lessen niet in keulen hoort donderen (bv. deze tutorial). Je kan ook mijn mini-cursus over computer- en telefonienetwerken lezen (zie hier).
Opmerking: Dit vak is erg zwaar voor wiskundigen. Je kan dit vak volgen als je bijvoorbeeld maar 1 vak hebt in je hele semester of je op zoek bent naar een uitdaging en tijd hebt.
Master
Gevorderd programmeren: Dit vak wordt gegeven door prof. Broeckhove. Het vak is eigenlijk een opvolger van "Inleiding programmeren". De programmeertaal die tijdens de lessen gehanteerd wordt is C++. In de theorie komen diverse topics uit de wereld van het programmeren aan bod (bv. aggregatie en compositie, liskov-substitutie probleem, verschillende soorten polymorfisme, operator overloading) en worden grondig bestudeerd. Voor de praktijk van dit vak zal je een programmeerproject tot een goed einde moeten brengen (bv. een eenvoudig grafisch spelletje). Ik raad je wel aan om voor aanvang van deze cursus terug wat te oefenen met C++ als het even geleden is (zie dat je weet hoe je een programma kan schrijven en compileren met de GNU compiler).
Opmerking: Dit vak is wel wat werk maar is te doen mits de juiste inzet.