Onderwijsprogramma

De bacheloropleiding duurt drie jaar en bestaat uit een mix van onderwijsvormen, zoals hoorcolleges, instructies, projecten en zelfstudie. De colleges vinden plaats tussen 8.45 uur en 17.30 uur. Een college duurt twee keer drie kwartier met een kwartier pauze tussendoor. Tijdens de projecten leer je in groepsverband kennis toe te passen én ontdek je het praktische nut van de verschillende vakken en de verbanden daartussen. Je oefent ook vaardigheden, zoals presenteren en rapporteren.

Studieschema

Het studieprogramma van Computer Science and Engineering bestaat uit zes leerlijnen: 

  • Wiskunde en Modelleren (Mathematics and Modeling)
  • Fundamentele Informatica (Fundamental Computer Science)
  • Software Development Fundamentals
  • Computersystemen (Computer Systems)
  • Informatiesystemen (Information Systems)
  • Intelligente Systemen (Intelligence Systems)

Je leert hoe computers, netwerken en embedded systems werken. Je buigt je over algoritmiek: wat is rekenen, wat zijn de mogelijkheden en onmogelijkheden van computers en hoe beschrijf je machines op een wiskundige manier? Uiteraard leer je op welke beginselen programmeertalen zijn gebaseerd, verdiep je je in datastructuren, softwarekwaliteit en leer je complexe systemen—en de interactie van gebruikers met deze systemen —te modelleren. Je lost op een systematische manier problemen op. Kunstmatige intelligentie, computer graphics, datamining en beeldverwerking staan ook op het programma.

Het eerste jaar bestaat uit verplichte vakken met theorie en practica (projecten). In het eerste jaar heb je ongeveer 40 procent fundamentele informatica-vakken, 30 procent wiskundevakken en 30 procent informaticavaardigheden. Het tweede jaar bestaat voor driekwart uit verplichte vakken en een kwart zijn keuzevakken. Het derde jaar bestaat voornamelijk uit keuzeruimte en een bacheloreindproject.

Het eerste jaar

In het eerste jaar volg je een verplicht vakkenpakket. Je krijgt een mix van hoorcolleges, werkgroepen en practica. Tijdens de projecten pas je de opgedane kennis toe op problemen uit de werkelijkheid. Je ontwerpt bijvoorbeeld een applicatie voor het management van een voetbalclub of je ontwerpt een intelligente bot in een computergame. Daarnaast heb je een mentorgroepje van tien tot vijftien personen. In het eerste semester kom je met de mentorgroep wekelijks een uur bij elkaar onder begeleiding van een docentmentor en een studentmentor die je helpen met studievaardigheden en andere studiegerelateerde zaken.

Vakken

Redeneren en Logica

“Alle informaticastudenten leren Redeneren en Logica. Jij bent een informaticastudent. Conclusie: jij leert Redeneren en Logica.”

Als informaticus moet je in staat zijn om complexe problemen op te lossen. Hierbij is het belangrijk om de juiste conclusies te trekken. Op grond van stellingen en gedeeltelijke waarnemingen kun je meer kennis afleiden en bewijzen dat een conclusie wiskundig en logisch correct is. Bij Redeneren en Logica leer je hoe je dit moet doen.

Computerorganisatie

Hoe rekent een computer en hoe onthoudt een computer gegevens? Dit leer je tijdens het vak Computerorganisatie. Je kijkt naar de architectuur, structuur en componenten van een computer. Denk hierbij aan geheugen en processoren.

Objectgeoriënteerd Programmeren

Bij dit vak leer je de basis van het programmeren. Gelijk in de eerste week programmeer je je eerste programma in de programmeertaal Java. Je leert onder andere over datatypes, methodes en testen. Ook schrijf je diverse kleine softwareprogramma’s. Voorkennis van programmeren is niet vereist.

Calculus

Calculus is een wiskundevak dat gaat over functies, reeksen en rijen, differentiëren, integreren en complexe getallen. Deze kennis is nuttig voor bijvoorbeeld optimalisatie, het analyseren van de looptijd van een algoritme en het analyseren van signalen. De stof van wiskunde B wordt in de eerste week herhaald en al snel breid je deze kennis uit.

Web- en Database Technologie

Wat gebeurt er als je een website opent? Hoe zorg je ervoor dat jouw online informatie veilig wordt opgeslagen? Bij dit vak krijg je een introductie in het web en ga je programmeren in HTML, CSS en Javascript. Ook krijg je een introductie in databases waarbij je leert over de architectuur van databases en hoe je kunt communiceren met databases.

Objectgeoriënteerd Programmeren Project

Tijdens dit project ga je je opgedane kennis van het vak Objectgeoriënteerd Programmeren toepassen in de praktijk. Samen met vijf studenten ga je een programma schrijven. De opdracht is elk jaar anders, zo hebben studenten Excel nagemaakt en een applicatie à la Tinder voor het vinden van een ‘study buddy’. Binnen dit vak leer je vaardigheden die essentieel zijn voor het ontwikkelen van software, zoals plannen en documenteren, maar ook presenteren.

Lineaire Algebra

Vaak krijg je te maken met digitale informatie die bestaat uit getallen die gestructureerd kunnen worden gerepresenteerd. Denk hierbij bijvoorbeeld aan Computer Graphics, waarin punten als coördinaten in een 3D-ruimte kunnen worden uitgedrukt. Bij het wiskundevak Lineaire Algebra leer je hoe je dit soort informatie in matrices en vectoren kunt uitdrukken, en hoe je daar als gevolg optimaal mee kunt werken en rekenen.

Logic Based Artificial Intelligence

Kunstmatige intelligentie staat centraal in het vak Logic Based Artificial Intelligence. Hoe kun je een computer kennis laten representeren en wat zijn goede redeneertechnieken? Bij dit vak, dat aansluit op Redeneren en Logica, leer je om logisch redeneren in te zetten om een computer intelligent te maken. Je past de technieken gelijk toe in een project. Hierbij moet een “bot” gekleurde blokjes zo efficiënt mogelijk zoeken en ophalen.

Algoritmen en Datastructuren

Dit vak sluit aan op Objectgeoriënteerd Programmeren. Nu je de basis van het programmeren onder de knie hebt, leer je over datastructuren waarin je informatie gestructureerd kunt opslaan, bijvoorbeeld lijsten en bomen. Daarnaast houd je je bezig met algoritmen: de instructies die nodig zijn om een taak uit te voeren, bijvoorbeeld informatie sorteren of zoeken. Hierbij leer je ook hoe verschillende oplossingen voor- en nadelen hebben in termen van ruimtegebruik en tijd. Het toepassen van de juiste datastructuren en algoritmen is belangrijk om problemen op een zo efficiënt mogelijke manier op te kunnen lossen.

Computer Graphics

Bij dit vak leer je over de uitdagingen en problemen bij het maken van Computer Graphics. Je leert belangrijke technieken, zoals geometrisch modelleren en het omzetten van modellen naar beeld (renderen). Ook pas je Computer Graphics technieken toe tijdens een project in een groep van zes studenten. Je werkt aan een ray tracer. Dit is een techniek waarbij licht in een afbeelding zodanig wordt gebruikt dat je afbeelding realistischer wordt. Hierbij komt je opgedane kennis van Lineaire Algebra zeer van pas.

Project Multi Agent Systemen

Tijdens dit project ga je je kennis van Logic Based Artificial Intelligence toepassen. Je ontwikkelt met een groep van zes studenten een team van bots voor het spel Starcraft. Hierbij leer je de bots zelf nadenken en beslissingen nemen. Het project wordt afgesloten met een competitie, waarbij de teams tegen elkaar spelen.

Softwarekwaliteit en Testen

Hoe weet je zeker dat jouw software altijd doet wat je verwacht? Wat doe je als je nieuwe functionaliteiten wilt toevoegen of iets wilt aanpassen? Je moet ervoor zorgen dat je software goed te onderhouden is en bij aanpassingen nog steeds goed werkt. Daarvoor is het belangrijk dat je weet hoe je goede kwaliteit software schrijft en hoe je dit test. Bij dit vak worden de testtechnieken van het vak Object Georiënteerd Porgrammeren met nieuwe informatie en vaardigheden uitgebreid.

Het tweede jaar

Het tweede jaar bestaat uit verplichte vakken en keuzeruimte. In het eerste semester kies je uit drie variantblokken: Multimedia Computing, Computersystemen of Intelligent Data Analysis. Zo leer je meer over het gebruik van multimedia-data in bijvoorbeeld social media of leer je hoe je grote gegevensbestanden kunt analyseren. In het tweede semester doe je een contextproject. Hierbij leer je om problemen in de dagelijkse praktijk van het bedrijfsleven op te lossen. Denk hierbij bijvoorbeeld aan het ontwikkelen van search and rescue robotics, computer games, systemen voor het veilig uitwisselen van medische informatie en systemen om cultureel erfgoed beschikbaar te maken.

Vakken

Kansrekening en Statistiek

Bij het wiskundevak Kansrekening en Statistiek leer je hoe je kansen berekent en hoe je met verdelingen in je data omgaat. Je leert bijvoorbeeld hoe je de variantie (spreiding) van je data berekent en waarom dit belangrijk is. Statistiek helpt je bij het trekken van conclusies in onderzoeken. Je kunt dan meten of iets toeval is of dat er echt sprake is van een verband.

Software Engineering Methods

Bij Software Engineering Methods leer je hoe je kwaliteitssoftware ontwikkelt in teamverband. Je leert hoe je wensen van een externe klant in programma-eisen omzet, hoe je via ‘agile’ werken effectief een groter product kunt ontwikkelen, hoe je designpatronen kunt gebruiken om software onderhoudbaar en makkelijk aanpasbaar te houden en hoe je de kwaliteit van gemaakte software kunt meten en monitoren.

Algoritmiek

Algoritmiek gaat verder op het vak Algoritmen en Datastructuren. Je leert onder andere meer over grafen (verzamelingen van punten), dynamische algoritmen en netwerkoptimalisatie. Alle technieken worden beoordeeld op hun efficiëntie, want een paar regels code kunnen het verschil maken tussen een runtime van een week of een paar seconden.

Informatie en Datamodellering

Je kennis over databases wordt na de introductie in Web- en Databasetechnologie in dit vak verder uitgebreid. Je leert meer over het modelleren, managen en ophalen van gegevens uit een Database Management System. Ook leer je hoe je universal resource indentifiers, zoals een URL, gebruikt om data op te slaan en op te vragen.

Concepten van Programmeertalen

De meeste concepten achter programmeertalen zijn vergelijkbaar. Bij dit vak leer je basisconcepten waaruit veel programmeertalen zijn opgebouwd. Het begrijpen van deze concepten helpt bij het begrijpen van en werken met veel verschillende programmeertalen. Dit is belangrijk voor als je later met andere talen moet werken dan de talen die je tijdens de studie leert.

Computernetwerken

Bij netwerken denk je misschien gelijk aan het internet. Internet is inderdaad een van de voorbeelden van een netwerk. Maar wat gebeurt er eigenlijk wanneer je een mail stuurt naar een studiegenoot via een netwerk? Wat gebeurt en als je een versleutelde verbinding hebt en wat zijn de gevaren van zo’n verbinding? Bij het vak Computernetwerken leer je over de verschillende lagen in communicatie over een netwerk, die er samen voor zorgen dat data over een netwerk verstuurd wordt. Daarbij wordt er per laag gekeken naar de toepasbaarheid, betrouwbaarheid en performance.

Automaten, Talen en Berekenbaarheid

Bij het vak Automaten, Talen en Berekenbaarheid wordt er gekeken naar hoe (programmeer-)talen door computers worden herkend en welke types problemen met een computer worden opgelost. Daarbij wordt ook gekeken naar hoe je kunt bewijzen hoeveel tijd en geheugen een oplossing kost.

Contextproject

Bij het contextproject pas je je kennis van Software Engineering Methods toe in de praktijk. Je maakt met vijf studenten een goede software-oplossing voor een maatschappelijk relevante toepassing in één van de volgende categorieën: Tools for Software Engineering, Virtual Humans for Serious Gaming, Health Informatics, Computer Games, Programming Life of Multimedia Services. Je leert in dit project niet alleen beter programmeren, maar ook om te gaan met een (vaak externe) opdrachtgever en gebruikers. De ervaring die je opdoet, is belangrijk als voorbereiding op het Bacheloreindproject.

Variantblok

Tijdens je tweede jaar mag je kiezen uit een van de drie variantblokken. Deze variantblokken geven je de kans om meer kennis op te doen in een richting van de informatica die je zelf interessant vindt. De variantblokken hebben geen relevantie op keuzes na je opleiding, je hoeft bijvoorbeeld niet het Intelligent Data Analysis variantblok te doen voor big data vakken in een eventuele master.

Variantblok – Multimedia Computing

Variantblok Multimedia Computing bestaat uit de vakken Signaalverwerking, Beeldverwerking en Multimedia-analyse. Bij dit variantblok leer je over hoe je multimedia kunt representeren, verwerken en analyseren. Denk hierbij aan het herkennen van liedjes aan de hand van een klein fragment, het herkennen en aflezen van kentekenplaten uit beeld en het herkennen van spraak.

Variantblok – Computersystemen

Variantblok Computersystemen bestaat uit de vakken Digitale Systemen, Embedded Software en Operating Systems. Dit variantblok geeft je de mogelijkheid om meer kennis op te doen in de richting van hardware, maar ook over optimalisatie van software voor hardwaresystemen. Tijdens een project maak je een robot die met een camera van een smartphone door een doolhof rijdt.

Variantblok – Intelligent Data Analysis

Variantblok Intelligent Data Analysis bestaat uit de vakken Computer Intelligence, Big Data Processing en Datamining. Je leert hoe een computer efficiënt omgaat met hele grote hoeveelheden data, hoe je data slim verzamelt en hoe je nuttige patronen uit deze data haalt.

Het derde jaar

Je start de eerste helft van het derde en laatste jaar van je bacheloropleiding met een minor. Je kunt kiezen uit bestaande minoren, zoals Finance of Electrical Sustainable Energy Systems. Maar je kunt ook zelf een vakkenpakket samenstellen, stage lopen of een tijdje in het buitenland studeren. Met het bachelorafstudeerproject sluit je je opleiding af. Dit project doe je samen met twee of drie medestudenten bij een bedrijf of bij een onderzoeksinstelling. Denk hierbij aan het maken van een planningsapplicatie voor ziekenhuizen, aan een app waarmee kinderen rekenen leuker gaan vinden of aan een augmented reality game. Dit project duurt drie maanden en sluit je af met een presentatie en een verslag.

Vakken

Minor

Gedurende je minor heb je de kans om je te verdiepen in een andere richting dan informatica. Dit kan hardware of wiskunde zijn, maar kan bijvoorbeeld ook civiele techniek, rechten of een ander vakgebied zijn. Je minor mag je zelf kiezen en hoeft niet relevant te zijn aan je informaticaopleiding.

Complexiteitstheorie

Dit vak houdt zich bezig met hoe moeilijk algoritmisch oplosbare problemen zijn. In sommige gevallen blijkt dat een probleem zo moeilijk is dat je er geen efficiënte oplossing voor kunt schrijven. Bij dit vak leer je te analyseren en bewijzen hoe complex een probleem is en wat je kunt doen als een probleem heel moeilijk op te lossen is.

Informatietechnologie en Waarden

Wat zijn jouw verantwoordelijkheden als Technische Informaticus? Hoe ga je om met privacy en security? Wanneer is de programmeur verantwoordelijk voor de software en wanneer is de gebruiker verantwoordelijk? Deze en andere ethische vraagstukken komen aan bod bij het vak Informatietechnologie en Waarden.

Bachelorseminarium

Het schrijven van een goed gestructureerd wetenschappelijk artikel is belangrijk. Het begint al bij het formuleren van je onderzoeksvraag. Hoe zorg je ervoor dat deze goed geformuleerd en geïnterpreteerd wordt. Wat zijn goede artikelen om naar te refereren en welke niet? Dit leer je tijdens het bachelorseminarium, waarbij met drie studenten gaat werken aan je eigen artikel.

Bacheloreindproject

Het allerlaatste project van de bachelor. Tijdens dit project komt alles wat je geleerd hebt tijdens je bachelor samen. Je gaat samen met twee tot vier studenten een kwartaal lang fulltime aan de slag met een project voor een echte klant. Je kunt denken aan een tool die spam antwoordt op spam, het maken van een informatieve game of een drone die met beeldherkenning een kas verkent.

Minor

In het eerste semester van het derde bachelorjaar krijg je de vrijheid om een half jaar lang je horizon te verbreden en je te verdiepen in een onderwerp dat je aanspreekt. Op de manier waarop jij dat wilt. Studenten van Technische Informatica kiezen bijvoorbeeld voor de minor Robotica of Finance. Maar je kunt ook voor een samenhangend vakkenpakket, een stage of een studie in het buitenland kiezen en op die wijze je wereld vergroten. Een goed gekozen minor helpt je om de carrièrerichting te vinden die bij je past óf te ontdekken welke master je na de bachelor wilt volgen.

Meer informatie over Minors


Ga verder naar Toelatingseisen



Bindend Studieadvies

De TU Delft hanteert een bindend studie advies (BSA). Dit betekent dat je in het eerste studiejaar tenminste 3/4 deel van je studiepunten moet halen om je opleiding te mogen voortzetten; dit is 45 EC van de 60 punten die je kunt halen. Als je een ‘negatief bindend studieadvies’ krijgt, kun je je de volgende 4 jaar niet meer voor deze opleiding inschrijven.