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: 

  • Mathematics
  • Systems
  • Models
  • Software
  • Data
  • Media & AI

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). Je krijgt vakken op het gebied van programmeren, redeneren en logica, computernetwerken, data management en wiskunde. Het tweede jaar bestaat voor driekwart uit verplichte vakken en een kwart zijn keuzevakken. Het derde jaar bestaat voornamelijk uit keuzeruimte en een Research Project.

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 die laaggeletterden helpt leren lezen en schrijven. 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

Object Oriented Programming

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.

Reasoning and Logic

“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 Reasoning and Logic leer je hoe je dit moet doen.

Computer Organisation

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

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.

Algorithms and Datastructures

Dit vak sluit aan op Object Oriented Programming en Reasoning and Logic. 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.

Web- and Database Technology

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.

Linear 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 Linear 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.

Object Oriented Programming Project

Tijdens dit project ga je je opgedane kennis van het vak Object Oriented Programming toepassen in de praktijk. Samen met vijf studenten ga je een programma schrijven. De opdracht is elk jaar anders, zo hebben studenten  een app gemaakt voor mensen met laaggeletterdheid en een programma om blinde mensen te helpen programmeren. Binnen dit vak leer je vaardigheden die essentieel zijn voor het ontwikkelen van software, zoals plannen en documenteren, maar ook presenteren.

Information and Data Management

Je kennis over databases wordt na de introductie in Web- and Database Technology 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.

Probability Theory and Statistics

Bij het wiskundevak Probability and Statistics 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 Quality and Testing

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 Oriented Porgramming met nieuwe informatie en vaardigheden uitgebreid.

Computer Networks

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 Computer Networks 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.

Het tweede jaar

Het tweede jaar bestaat uit verplichte vakken en keuzeruimte. In het eerste semester kies je uit drie variantblokken: Multimedia, Systems of Data. 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 Software Project. Met een aantal medestudenten werk je aan een groot softwareproject, waarin je bij een bedrijf software bouwt om een maatschappelijk relevant probleem op te lossen. Voorbeelden van zulke projecten zijn het programmeren van een drone die zelfstandig een kas kan verkennen of het maken van een plannings­papplicatie  voor een ziekenhuis.

 

 

Vakken

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 Linear Algebra zeer van pas.

Machine Learning
Algorithm Design

Algorithm Design gaat verder op het vak Algorithms and Datastructures. 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.

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.

Automata, Languages and Computability

Bij het vak Automata, Languages and Computability 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.

Concepts of Programming Languages

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.

Software Project

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

Variantblok Multimedia bestaat uit de vakken Signal Processing, Image Processing en Multimedia Analysis. 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 – Systems

Variantblok Systems bestaat uit de vakken Digital Systems, 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 – Data

Variantblok Data bestaat uit de vakken Big Data Processing, Data Mining en Computional Intelligence. 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 Research Project sluit je je opleiding af. Dit project doe je zelfstandig aan de TU Delft of bij een bedrijf. Je doet dan onderzoek naar een bepaald onderwerp binnen de informatica. Het bouwen van software om een nieuw algoritme te testen kan hier een onderdeel van zijn.

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.

Research Project

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 Computer Science and Engineering kiezen bijvoorbeeld vaak 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 Studieadvies (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.