CS50 of: Hoe een militair historicus programmeren leerde liefhebben

De enige, directe link die ik tijdens mijn studie had met de wereld van IT, Datawarehousing en programmeren was het moment dat tijdens de filmavond de klassieker WarGames werd gekeken. Een film die weliswaar hacken en programmeren vrij waarheidsgetrouw op het scherm neerzette (zie o.a https://en.wikipedia.org/wiki/War_dialing#Popularity), maar die voor mijn eigen kennis vrij weinig toevoegde. Het simpele feit dat één van mijn studiegenoten wilde afstuderen op de analyse van historische accuraatheid van Tweede Wereldoorloggames ging mijn hoogleraren al de pet te boven. Boeken lezen, verslagen begrijpen en literaire analyse waren de manieren om tot inzichten te komen. De computer was slechts een handig hulpmiddel om de boeken en pamfletten te vinden.

Nu durf ik wel te zeggen dat ik niet per se een leek was op het gebied van IT toen ik afstudeerde, maar op low-level gebied had ik geen enkel benul hoe een computer daadwerkelijk werkte. Dit heb ik de afgelopen jaren proberen te versterken door het bekijken van eindeloze YouTube tutorials, uitgebreid met Coursera, EDX en Udemy courses op het moment dat ik bij Inergy aan de slag ging. Maar er blijft bij mij schrikbarend weinig hangen op het moment dat een leraar het simpelweg voordoet en ik volg. Ik wil weten waarom ik iets doe. Waarom geeft deze lijn een SyntaxError? Waarom kiezen we voor deze datastructuur in plaats van deze? En wat is in godsnaam een pointer? De antwoorden werden mij plots duidelijk toen ik midden vorig jaar op EdX de cursus CS50’s Introduction to Computer Science ontdekte.

Wat is CS50?

CS50 is op de eerste plaats een collegereeks gegeven aan Harvard University. Of, zoals het zelf verwoorden:

“Harvard University’s introduction to the intellectual enterprises of computer science and the art of programming. Demanding, but definitely doable. Social, but educational. A focused topic, but broadly applicable skills. CS50 is the quintessential Harvard (and Yale!) course”

De collegereeks bestaat elk jaar uit ongeveer negen à tien verschillende colleges. De colleges worden gegeven door David J. Malan. Een energieke man (Snelheid op 1,5x zetten op YouTube zetten is niet nodig, hij praat al 1,5 keer sneller dan de rest) met een vermogen om zelfs de meest complexe theorie op het gebied van Computer Science begrijpelijk te maken en vooral uit te leggen waarom iets gebeurt. Via algemene concepten als loops, if- statements en recursieve programma’s gaat Malan door naar soms zeer low-level theorie. Keuzetaal voor de eerste weken is ‘C’, zodat je haast gedwongen wordt om na te denken over memory allocation en pointers. Gelukkig worden in latere colleges ook Python, SQL en HTML/CSS behandeld met als uiteindelijk doel het implementeren van een eigen web-applicatie.

Maar misschien nog wel het meest verfrissende voor mij was het feit dat David daadwerkelijk voor een collegezaal staat. De interactie met de zaal is voelbaar en het maakt voor een betere leeromgeving dan simpelweg kijken naar iemand die zijn eigen beeldscherm gemirrored heeft en binnensmonds mompelt over zaken die voor hem wellicht gesneden koek zijn, maar voor mij nog niet. Daarbij wordt elk college naderhand ondersteund en nader uitgelegd door middel van korte shorts, zodat je ook na het college verdieping kan hebben op de onderwerpen die je nog niet helemaal snapte. Elke week wordt afgesloten met enkele programmeeropdrachten, uit te voeren in een cloud-based IDE. De theorie binnen CS50 zal voor sommigen onder ons al duidelijk zijn, maar voor de geïnteresseerden (of diegene die een refresh willen) heb ik de playlist van dit jaar hieronder staan:

Maar CS50 is nog veel meer. In het afgelopen jaar is de community via kanalen op YouTube en Twitch steeds verder gegroeid en zijn er meerdere cursussen bijgekomen. Regelmatig zijn er livestreams op YouTube en Twitch waarin live geprogrammeerd wordt of waarin concepten zoals Object Georiënteerd Programmeren ,Docker en Containerization en React worden uitgelegd. Ook in deze video’s wordt er aandacht besteed aan de interactie met de leerlingen. Via een live chat is het mogelijk om tijdens de livestreams vragen te stellen aan de docenten/studieassistenten. De streams worden vervolgens ook nog op het YouTube kanaal gepost, mocht je de stream hebben gemist De bibliotheek aan video’s op dit kanaal is groot en groeit nog elke week.

CS50 zal wellicht door sommigen als te makkelijk of als te basic worden beschouwd. Maar voor diegenen die, net zoals ik, soms nog zoekende zijn naar extra begrip over Computer Science is de reeks een absolute aanrader.

Geef een reactie

Gelieve met een van deze methodes in te loggen om je reactie te plaatsen:

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit /  Bijwerken )

Google photo

Je reageert onder je Google account. Log uit /  Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit /  Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit /  Bijwerken )

Verbinden met %s