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
Joeri DE KOSTER (titularis)
Onderdelen en contacturen
26 contacturen Hoorcollege
39 contacturen Werkvormen en Praktische Oef.
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
 
• Recursieve datastructuren (Bomen)
Nesting als bouwsteen voor recursieve structuren
Voorstelling van rekenkundige expressies als boom
Recursie over bomen: uitrekenen, afleiden en simplificeren van rekenkundige expressies
Lindenmayersystemen als notatie voor recursieve datastructuren
Fractalen: Sierpinskidriehoeken
Fractalen: planten groeien
 
• 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))
 
• Limieten aan berekenbaarheid
Cantor’s diagonalisatie-argument
Het Halting Probleem
Stelling van Rice
Studiemateriaal
Cursustekst (Vereist) : Inleiding tot de computerwetenschappen voor wetenschappers en ingenieurs, De Meuter - Jonckers - Pinte, VUB, 2220170000190, 2014
Handboek (Aanbevolen) : Practical Programming, An Introduction to Computer Science Using Python, Jennifer Campbell, Paul Gries, Jason Montojo, Greg Wilson, The Pragmatic Bookshelf, 9781937785451, 2013
Digitaal cursusmateriaal (Vereist) : Oefeningen en taken, K. Pinte, Webstek: http://soft.vub.ac.be/soft/teaching/courses/cs
Bijkomende info

Er is een cursus beschikbaar: “Inleiding tot de computerwetenschappen” door W. De Meuter, V. Jonckers, K. Pinte.

Leerresultaten

Algemene competenties

• 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.
 
• toepassing van 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.
 
• 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 een discussie of uiteenzetting de verschillende elementen en concepten die in de cursus aan bod komen mondeling 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 Andere bepaalt 100% van het eindcijfer

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

  • examen andere met een wegingsfactor 1 en aldus 100% van het totale eindcijfer.

Aanvullende info mbt evaluatie

Het eindcijfer E voor Inleiding tot de Computerwetenschappen wordt als volgt bepaald:

- Alle studenten dienen een schriftelijk examen af te leggen, een project te maken en dat project mondeling te verdedigen (afwezigheid op 1 van deze onderdelen betekent meteen een afwezigheid voor het hele vak).

- Dit resulteert in een cijfer S voor het schriftelijk examen en een cijfer P voor het project. 

 

Indien beide cijfers S en P groter of gelijk zijn aan 7 wordt E berekend als 40% P + 60% S

Indien 1 van de cijfers S en P kleiner is dan 7 wordt E het laagste cijfer.

 

Studenten die op basis van E een optioneel mondeling examen wensen af te leggen dienen dit te doen op dezelfde dag als de projectverdediging. In dat geval wordt E herberekend als 30% P + 50% S + 20% mondeling.

 

Academische context

Deze aanbieding maakt deel uit van de volgende studieplannen:
Bachelor in de wiskunde: Standaard traject
Bachelor in de fysica en de sterrenkunde: Standaard traject
Bachelor in de biologie: Standaard traject
Bachelor in de chemie: Standaard traject
Bachelor in de geografie: 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