Op 17-4-2012 1:31, Stephen Bloch schreef:
On Apr 16, 2012, at 5:18 PM, Neil Van Dyke wrote:
... if one is still looking for additional beginner programming exercises, I
think that one not-totally-bad option is to start picking standard algorithms
and data structures one can learn about by search the Web and in books (e.g,
sorting, shuffling, searching, stringmanipulating) and trying to implement some
of those. Remember to make good unit test cases, and to verify your
implementation both against your own understanding of what it should do, and
against the output of other credible implementations you find.
When finding algorithms on the Web and in books, be aware that most code and pseudocode examples you'll see will have pieces like "set
variable x to the value of x + 1", and that Racket will indeed let you implement it just like that -- "(set! x (+ x 1))" --
but at some point you should also learn to implement these algorithms functionally, without using mutators like "set!". So don't
spend too much time learning "set!" to death by transliterating every bit of code you find in every one Knuth's books -- instead,
learn "set!", and then move on to learning how to *not* use "set!".
If you haven't gotten to lists or vectors yet, sorting and searching aren't
particularly good choices :-)
Roelof is working on structures in HtDP2e, and presumably hasn't gotten to lists yet.
But there are lots of interesting problems to solve on fixed-sized data, including lots
of interactive GUI programs. Eight or ten years ago, one of my CS1 students got bored
with the class assignments and wrote a complete chess program using structs and the
"world" teachpack. (That student is working at Google now....)
Stephen Bloch
sbl...@adelphi.edu
____________________
Racket Users list:
http://lists.racket-lang.org/users
Everyone thanks for the ideas.
Enough material to practice with now.
Roelof
____________________
Racket Users list:
http://lists.racket-lang.org/users