Peer-to-peer onderwijs

In tegenstelling tot het gebruikelijke onderwijssysteem waarin de docent de centrale rol speelt, gaat peer-to-peer onderwijs uit van leren door samenwerking tussen studenten. Studenten zullen zelf kennis moeten vergaren en delen, wat leidt tot constructieve discussies en productieve gedachtewisselingen. Dit proces garandeert dat informatie altijd uit verschillende bronnen komt en zo voortdurend gecheckt en geüpdatet wordt.

Peer-to-peer evaluatie

Na afronding van een project moet ieder team het ter beoordeling voorleggen aan medestudenten. Alle studenten geven dan een cijfer aan het project op basis van een door Codam bepaalde schaal. De evaluaties gebeuren face-to-face en bieden zo geweldige kansen voor boeiende discussies.

Ecole 42

De in Parijs en San Francisco gevestigde Ecole 42, waarop het onderwijsmodel en curriculum van Codam zijn gebaseerd, is een gerenommeerde en succesvolle programmeeropleiding. Ecole 42 opende haar deuren in Parijs in 2013 en heeft meer dan 3000 studenten.

Gamificatie

Ons curriculum is ‘gegamificeerd’ als een computerspel. Elke student heeft een profiel en een ‘experience level’ en ieder afgerond project levert punten op waardoor het experience level stijgt. De beschikbare projecten worden aangeboden als een boom met vertakkingen die meerdere routes biedt naar de verschillende aspecten van computer science en programmeren. Zodra je een volgend level bereikt krijg je toegang tot nieuwe delen van het curriculum. Als je een project niet haalt, kun je opnieuw beginnen.

Tijdschema

Anders dan de meeste scholen, werkt Codam niet met lesroosters of tijdschema’s. In plaats daarvan wordt er van je verwacht dat je specifieke mijlpalen binnen een bepaalde tijd haalt, maar hoe je dat doet is aan jou. Projecten hebben een aanbevolen deadline maar je mag altijd meer of minder tijd gebruiken. Je ontwikkelt jezelf dus op je eigen tempo. De volledige opleiding duurt gemiddeld zo’n 3,5 jaar; sommige studenten zijn al binnen twee jaar klaar en andere hebben vijf jaar nodig. En dat maakt helemaal niet uit. Het gaat uiteindelijk om het resultaat.

Structuur

Het curriculum omvat meer dan honderd projecten en activiteiten waarin vrijwel alle aspecten van computer science en programmeren aan bod komen, zoals Unix programming, 3D programming, webprogrammeren en nog veel meer. Het curriculum is vormgegeven als een boom die is opgebouwd uit 5 onderdelen. De vijf delen worden hieronder nader uitgewerkt.

1. Introductie

De eerste projecten hebben tot doel de opgedane kennis van het Piscine-traject op te frissen: command-line interactions, basiskennis van C-programming en basisalgoritmes. De projecten zijn zorgvuldig vormgegeven en uitdagend.

2. Basis van het programmeren

Het tweede deel van het curriculum biedt de ruimte voor een keuze uit 4 paden: Graphic programming, Algorithmics, C-Unix programming en Web programming. De projecten worden gaandeweg uitdagender en bieden ruimte aan steeds grotere teams. Nadat je een van de vier eindprojecten succesvol hebt afgerond, ben je klaar voor je eerste stageperiode. Ieder pad wordt afgesloten met een eindproject. Dit zijn de vier eindprojecten:
  • 1530607914 raytracernoglobalillum min

    Raytracer

    Bedenk en render een eigen 3D scene in HD, met licht, reflecties en schaduwen.

  • 1530608108 corewar min

    Corewar

    Programmeer een virtual machine die player programs kan uitvoeren. Deze player programs zullen het dan tegen elkaar opnemen. Maar welke is het beste?

  • 1530608474 shell min

    42sh

    write a real life command line interpreter usable in a real life Unix environment, including process management and I/Os.

  • 1530609089 streaming min

    Hypertube

    program a peer-to-peer web application able to stream videos from distributed sources.

3. Eerste stageperiode

Deze verplichte mijlpaal in het curriculum maakt het mogelijk je opgedane kennis in de echte wereld uit te proberen. De stage duurt 4 tot 6 maanden.

4. Mastering programming en digital literacy

Dit is het belangrijkste deel van het curriculum. Er is keuze uit bijna honderd projecten die allemaal verschillende onderwerpen aan de orde stellen, zoals:
  • Advanced 3D programming;
  • Advanced Unix programming;
  • Artificial intelligence;
  • Functional programming;
  • Kernel programming;
  • Mobile programming;
  • Network programming;
  • Object oriented programming;
  • Reverse engineering;
  • Systems and networks administration;
  • Web programming;
  • Web security.
Dit is het langste en meest diepgaande onderdeel van het curriculum. Het succesvol afronden van deze projecten vereist grotere teams en meer tijd. De meest geavanceerde projecten zijn uitdagingen in de ‘echte’ wereld. Dit zijn enkele van de beschikbare projecten:
  • 1530609742 300px gomoku game 3 svg min

    Gomoku

    Gomoku is een bordspel dat het midden houdt tussen de spellen Go en Reversi. Schrijf een zo goed mogelijke artificial intelligence die de oplossing in zo kort mogelijke tijd kan vinden.

  • 1530609820 particlesize min

    Particles System

    Schrijf een particles engine gebruikmakend van OpenGL, OpenCL en je GPU die miljoenen particles kan laten zien met een snelheid van 60 frames per seconde.

  • 1530609930 molecule min

    Swifty Proteins

    Maak een iOS app in Swift die 3D renderings kan laten zien van moleculen uit een wetenschappelijke database.

  • 1530610353 harddrive min

    Filesystem

    Schrijf een real life filesystem voor je eigen Linuxdistributie.

  • 1530610450 hack min

    Override

    Je krijgt elementaire user credentials voor een bepaald operating system. Het is aan jou om via reverse engineering flawed binaries te identificeren en zo root user credentials te bemachtigen.

  • 1530610663 nmap min

    ft_nmap

    Schrijf je eigen versie van het ‘nmap’ programma, maar wel vanuit het niets!

  • 1530610733 tetris min

    Red Tetris

    Schrijf een multiplayer Tetris webgame met Javascript. De game moet tegelijkertijd te spelen zijn vanaf verschillende computers.

5. Eindstage

De eindstage, die een half jaar duurt, is het laatste en belangrijkste onderdeel. Hier is het zaak al je nieuwe vaardigheden zo in te zetten dat ze aan de eisen van de echte wereld voldoen.