6 ECTS credits
150 u studietijd

Aanbieding 1 met studiegidsnummer 1015400ANR voor alle studenten in het 1e semester met een inleidend bachelor niveau.

Semester
1e semester
Inschrijving onder examencontract
Niet mogelijk
Beoordelingsvoet
Beoordeling (0 tot 20)
2e zittijd mogelijk
Ja
Onderwijstaal
Nederlands
Faculteit
Faculteit Wetenschappen en Bio-ingenieurswetensch.
Verantwoordelijke vakgroep
Computerwetenschappen
Onderwijsteam
Wim Vranken (titularis)
Onderdelen en contacturen
26 contacturen Hoorcollege
39 contacturen Werkcolleges, practica en oefeningen
Inhoud
INHOUD:
 
• Wat is computerwetenschappen?
In-silico Experimenten
Computationele processen
Processen en talen
Programmeertalen en Turingvolledigheid
 
• De Eerste Stappen in Python
De read-eval-print-loop als Python tolk
Founten: Syntaxfouten en Runtimefouten
Expressies, waarden en types
Soorten getallen, strings, operatoren, ingebouwde functies oproepen
Statements, variabelen en assignment
Modules maken en modules importeren
Tupels en bewerkingen op tupels
Grafieken tekenen met Matplotlib
 
• Functies
Functies definiëren en oproepen
Anatomie van functies: lokale variabelen, optionele parameters, blocks
Booleans, operatoren over booleans, relationele operatoren
De if-test en predikaten, nesten van if-testen.
Gevalstudies: vierkantsvergelijkingen oplossen, vectorrekenen, edelgassen bepalen
Debuggen met print
 
• Recursieve Functies
Recursieve functies
Recursie over getallen: lineaire processen, logaritmische processen
Boomrecursie over getallen: exponentiële processen
Profilen en Tracen van recursieve functies: de time module
Gevalstudie: binaire getallen en conversies met decimale getallen
Grote O notatie voor computationele processen
 
• Lijsten en Iteratie met for
Lijsten en operaties op lijsten, lijstmutatie
Geneste lijsten
Lijsten versus tupels
Lijst comprehensions
Lijsten recursief verwerken
Lijsten iteratief verwerken: het for statement
Gevalstudies: Simulatie van eiwitexpressie en tekenen van de logistieke map
 
• Numerieke Benaderingen en Iteratie met while
Declaratieve kennis versus operationele kennis
Berekenen van bepaalde integralen: de rechthoeksregel
Berekenen van bepaalde integralen: de trapeziumregel
Wortels berekenen met de brute-kracht methode
Ongebonden iteratie: het while statement
Wortels berekenen met de methode van Newton
Nulpunten van functies berekenen
 
• Object-gericht Programmeren - Deel 1: Objecten
Objecten, attributen en methodes
Ingebouwde objecten: complexe getallen, strings, lijsten
Klassen
Gevalstudie 1: NumPy voor wetenschappelijk rekenen
Gevalstudie 2: VPython voor 3D scenes
Gevalstudie 3: Conway’s Game of Life
 
• Collectieve Datatypes
Verzamelingen
Dictionaries
Files: lezen en schrijven van files
Verwerken van Files als reeksen van records
 
• Object-gericht Programmeren - Deel 2: Klassen
Klassen en Encapsulatie
Overerving en overschrijving
Gevalstudie: Een projectielspel (Model-View-Controler)
 
• Inleiding tot Algoritmiek: Zoeken en Sorteren
Het zoekprobleem
Linear Zoeken
Binair Zoeken
Het sorteerprobleem
Insertion Sort
Selection Sort
Quicksort: naieve versie en in-place versie
Performantie van sorteren
Theoretische ondergrens van O(n.log(n))
Studiemateriaal
Handboek (Aanbevolen) : Practical Programming, An Introduction to Computer Science Using Python 3.6, Jennifer Campbell, Paul Gries, Jason Montojo, 3de, The Pragmatic Bookshelf, 9781680502688, 2017
Digitaal cursusmateriaal (Vereist) : Oefeningen en taken, K. Pinte, Webstek: http://soft.vub.ac.be/soft/teaching/courses/cs
Bijkomende info

De HOCs gaan hybride door, voor de WPOs is fysieke aanwezigheid in de computerlokalen vereist.

Leerresultaten

Kennis en inzicht

+ De student kan computerwetenschappen situeren als de studie van computationele processen en kan het onderscheid duiden met computer engineering en computervaardigheden.
+ De student kan de basiselementen, de combinatietechnieken en de abstractietechnieken uitleggen die in de programmeertaal Python beschikbaar zijn om computerprogramma's te bouwen.
+ De student kan de opbouw van de algoritmen en datastructuren die in de cursus werden behandeld schetsen en de toepassing en schaalbaarheid ervan toelichten.
+ De student weet dat er bibliotheken bestaan voor wetenschappelijk rekenen en visualisatie.
+ De student heeft een basisinzicht in hoe databestanden vanuit een programma gelezen en geschreven kunnen worden.
 

Toepassen kennis en inzicht

+ De student kan voor een concrete relatief eenvoudige opdracht een Python programma schrijven dat voldoet aan een aantal kwaliteitseisen en het programma uitvoeren en testen.

+ De student kan de behandelde Python taalconstructies herkennen in gelijkaardige constructies in verwante programmeertalen, in het bijzonder kan hij/zij door de particuliere syntax van Python heen kijken bij de studie van een algoritme.

+ De student kan bestaande bibliotheken voor visualisatie en wetenschappelijk rekenen gebruiken.

+ De student kan vanuit een Python programma databestanden lezen en schrijven.

+ De student kan een grotere programmeeropdracht onderverdelen in logische sub-elementen 

 

Oordeelvorming

+ De student kan voor een gegeven opdracht oordelen over de bruikbaarheid van een gegeven programmeertechniek, datastructuur of algoritme en de voor- en nadelen van bepaalde keuzes inschatten.

+ De student kan voor een gegeven probleem oordelen of hij/zij dit zelfstandig zal dienen uit te werken dan wel er bestaande bibliotheken kunnen aangewend worden.

+ De student beseft dat er beperkingen zijn aan wat met een computer mogelijk is en kan oordelen of voor een bepaald probleem een software oplossing mogelijk is.

Communicatie

+ De student beheerst het nodige vocabularium om in eenuiteenzetting de verschillende elementen en concepten die in de cursus aan bod komen te kunnen toelichten.

+ De student kan voor een zelf geschreven toepassing de broncode voorzien van commentaar die de programmaopbouw documenteert.

Leervaardigheden

+ De student kan bij het bestuderen van een nieuwe programmeertaal een verband leggen tussen de concrete elementen van die taal en de elementen en concepten die in deze cursus aan bod komen en op die manier het leerproces voor een andere programmeertaal inkorten.

+ De student heeft de vaardigheid om bestaande bibliotheken te evalueren en het gebruik ervan aan te leren op basis van beschikbare documentatie.

Beoordelingsinformatie

De beoordeling bestaat uit volgende opdrachtcategorieën:
Examen Schriftelijk bepaalt 30% van het eindcijfer

Examen Praktijk bepaalt 60% van het eindcijfer

WPO Praktijkopdracht bepaalt 10% van het eindcijfer

Binnen de categorie Examen Schriftelijk dient men volgende opdrachten af te werken:

  • Theorievragen met een wegingsfactor 1 en aldus 30% van het totale eindcijfer.

Binnen de categorie Examen Praktijk dient men volgende opdrachten af te werken:

  • Programmeeroefeningen met een wegingsfactor 1 en aldus 60% van het totale eindcijfer.

Binnen de categorie WPO Praktijkopdracht dient men volgende opdrachten af te werken:

  • WPO oefeningen met een wegingsfactor 1 en aldus 10% van het totale eindcijfer.

Aanvullende info mbt evaluatie

Het eindcijfer bestaat uit drie componenten:

1. Een programmeeropdracht tijdens het WPO uitgevoerd die weergeeft wat op het examen verwacht wordt.

2. Theorievragen die tijdens het eind-examen worden opgelost (online, in computerlokalen VUB, met geen externe internet-toegang toegelaten).

3. Programmeeropdrachten die tijdens het eind-examen worden opgelost in de programmeeromgeving van het WPO (online, in computerlokalen VUB, met geen externe internet-toegang toegelaten)

 
Toegestane onvoldoende
Kijk in het aanvullend OER van je faculteit na of een toegestane onvoldoende mogelijk is voor dit opleidingsonderdeel.

Academische context

Deze aanbieding maakt deel uit van de volgende studieplannen:
Bachelor in de wijsbegeerte en de moraalwetenschappen: Standaard traject
Bachelor in de fysica en de sterrenkunde: Standaard traject
Bachelor in de chemie: Standaard traject
Bachelor in de bio-ingenieurswetenschappen: profiel cel- en genbiotechnologie
Bachelor in de bio-ingenieurswetenschappen: profiel chemie en bioprocestechnologie
Bachelor in de bio-ingenieurswetenschappen: Startplan
Bachelor in de wiskunde en Data Science: Standaard traject