Modern programmeeronderwijs $ a.exe Tik een rij getallen en sluit af met een 0: > 4 8 2 12 5 9 0 Het grootste getal is: 12 Differentieren in voorkennis Wat is “modern”? n Waar het afnemende veld om vraagt? n Wat de studenten ervan verwachten? n Wat we zelf belangrijk vinden? Ruby C++ C# Java Haskell PHP Pascal Taal, tools, en technieken... n Compiler? n Geintegreerde ontwikkelomgeving? n User-interface builder? n Framework wizard? n Debugger? Wat hoort er bij? n Programmeertaal (alle constructies?) n Algoritmen? n Libraries? n Theoretische achtergronden? Moet het ook “leuk”zijn? Groepsproject n Aan het begin van de studie: motivatie, orienterend n Aan het eind van de studie: integratie, evaluerend n Tijdens de studie: groepswerk-vaardigheden of individuele programmeervaardigheden? Feedback (Nakijken van ingeleverd werk) n Plagiaatcontrole? n Alleen werking? Of ook kwaliteit van de code? (en wat is dat dan?) n Automatisch of door docent? n Theorietentamen of praktisch werk? Dilemma’s: n Wat is modern? Taalkeuze... Leuk? n Taal + tools + technieken... Welke? n Taal / Algoritmen / Libraries / Theorie n Groepswerk? Wanneer? n Feedback: wat en hoe? Discussie – Presentatie - Evaluatie Utrechtse Practicumopgaven n 0 n 1 n 2 n 3 Theretische achtergronden ...in een praktische context n Foutmeldingen u variabele niet gedeclareerd u puntkomma vergeten u ... n Waarschuwingen deze waarschuwing is theoretisch onmogelijk! u unreachable code u statement has no effect u while-statement doesn’t terminate Het Halting-problem is onoplosbaar Nietes! Deze methode lost het op: Ha! En dit dan? wat komt er dan uit: bool stopt (string filenaam) { .... } void gemeen (string filenaam) { while ( stopt(filenaam) ) x++; } stopt( "Gemeen.cs" ) ? Het Halting-problem stopt( "Gemeen.cs" ) is onoplosbaar Twee mogelijkheden: n “Gemeen” stopt wel void gemeen (string filenaam) { while ( stopt(filenaam) ) x++; } ...dus stopt levert true op ...dus gemeen bijft hangen! n “Gemeen” stopt niet ...dus stopt levert false op ...dus gemeen stopt direct! dus stopt kan helemaal niet bestaan tegenspraak! Eerste jaar Gametechnologie n tweede kwartaal: Gametechnologie introductie-project u maak een retro-game met nieuwe technologie Retro-games Lemmings - network multiplayer GTA - Woerden 3D Megaman - webcam gesture control Zeeslag - voice control En de "gewone” informatica? n Informatica introductieproject