Imperatief programmeren

Download Report

Transcript Imperatief programmeren

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