6 ECTS credits
150 u studietijd

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

Semester
1e en 2e 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
12 contacturen Hoorcollege
39 contacturen Werkcolleges, practica en oefeningen
48 contacturen Zelfstudie en externe werkvormen
Inhoud

1e semester

  • Inleiding: Programmeren en computerwetenschappen
    • In-silico Experimenten
    • Computationele processen
    • Processen en talen
    • Programmeertalen
  • De Eerste Stappen in Python
    • Gebruik Dodona platform
    • De read-eval-print-loop als Python tolk
    • Fouten: Syntaxfouten en Runtimefouten
    • Expressies, waarden en data types
    • Operatoren, statements, variabelen en assignments
  • Condities: If testen en booleans
    • Data types: Booleans
    • Operatoren over booleans, relationele operatoren
    • De if-test en predikaten, nesten van if-testen.
    • Gevalstudies: vierkantsvergelijkingen oplossen, vectorrekenen, edelgassen bepalen
    • Debuggen met print
  • Strings
    • Gebruik Pycharm met Dodona
    • Data types: Strings
    • Manipulaties van strings
  • Loops (iteraties)
    • 'For' loops
    • 'While' loops (ongebonden iteratie)
  • Lijsten en tuples
    • Data types: Lijsten, tuples
    • Bewerkingen op tuples en lijsten
    • Lijstmutatie
    • Geneste lijsten
    • Lijst comprehensions
  • Functies
    • Functies definiëren en oproepen
    • Anatomie van functies: lokale variabelen, optionele parameters, blocks
    • Ingebouwde functies oproepen
    • Modules maken en modules importeren
    • Grafieken tekenen met Matplotlib
  • Collectieve Datatypes
    • Verzamelingen
    • Data types: Dictionaries
    • Files: lezen en schrijven van files
    • Verwerken van Files als reeksen van records
  • Gebruik ingebouwde objecten
    • Klassen, objecten, attributen en methodes
    • Ingebouwde objecten: complexe getallen, strings, lijsten

2e semester

  • 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
    • Lijsten recursief verwerken
    • Grote O notatie voor computationele processen
  • Numerieke Benaderingen 
    • Declaratieve kennis versus operationele kennis
    • Berekenen van bepaalde integralen: de rechthoeksregel
    • Berekenen van bepaalde integralen: de trapeziumregel
    • Wortels berekenen met de brute-kracht methode
    • Wortels berekenen met de methode van Newton
    • Nulpunten van functies berekenen
  • 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))
  • Object-gericht Programmeren
    • Klassen en Encapsulatie
    • Overerving en overschrijving
    • Klassen aanmaken
    • Gevalstudies
  • Recursieve datastructuren 
    • Familieboom
    • Fractalen
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. Oefenen is de sleutel tot het goed beëindigen van deze cursus, dus de WPOs zijn zeer belangrijk. Uitgebreid online hulpmateriaal zal ook beschikbaar zijn.

In verband met het gebruik van generatieve AI om code te creëren, raden we jullie sterk aan dat jullie dit alleen als hulpmiddel gebruiken (bijvoorbeeld als je echt niet verder kan met een stuk code). De examens zijn volledig offline, dus daar kan je er geen gebruik van maken.

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 25% van het eindcijfer

Examen Praktijk bepaalt 60% van het eindcijfer

WPO Praktijkopdracht bepaalt 15% van het eindcijfer

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

  • Theorievragen met een wegingsfactor 1 en aldus 25% 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 15% van het totale eindcijfer.

Aanvullende info mbt evaluatie

Het eindcijfer bestaat uit drie componenten:

1. Een programmeeropdracht na het eerste semester 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: Standaard traject
Bachelor in de wiskunde en Data Science: Standaard traject