again I ask for your help. I'm going to give a 16 hours course on ruby
this week, and I've created some slides to aid me with this.
I have to admit that some examples might not be as bright as I wish, and
also there are missing some exercises.
I created the slides in english, such that they can be used by a bigger
part of the community if need should be.
The slides will not cover all that I hope to say in the course, when the
slides have finished I will start with a free experimentation phase
based on my ants sample implementation
http://ruby.brian-schroeder.de/ants/
It would be great if some of you could look at the slides and correct
the language and if somebody comes up with a great example or exercise I
would also be glad for comments.
p4. Output doesn't fit on page (what I'll call "output overflow").
p7. Output overflow, plu inappropriate full justification of code.
BTW: why can I see "this=is=the=result;nil" all over the place? Yuck.
p8. s/follow/follows/ s/shure/sure/
p10. s/the class/the class./
p12. s/vi/vim/
p13. Prefer a typewriter (monospace) font. *Much* prefer. This goes
for most, if not all, code and output. But *especially* on this
page
p14. s/into ri/into irb/
I'll just pause to say that this is a very very very good set of
slides, and attractively presented. Well done.
p16. s/can be used/can be used.../ s/but beware/...but beware/
p19. "map do ... end" reads badly to me, as a matter of style, because
map is not *doing* anything; it's generating a value. So I
prefer to read "map { ... }". I realise you're probably trying
to keep it simple.
p20. You've got room; format line 9 onto three lines for clarity.
p21. Oh, I see. You may not have room. Consider it anyway.
p22. Boring example. Think of something that generates an interesting
result.
p23. s/instanciated/instantiated/ s/n times/n times./
s/longest_string ,/longest_string,/
s/shortest_string/shortest_string,/
p24. s/"/""/
p28. Good exercise. With the Fibonacci generator class, give example
usage and output so students know what they're aiming for. This
will require its own slide.
p29. s/A real application/A Real Application/ (suggestion only)
p31. s/gui/GUI/
p32. Lines 2 and 3 have inconsistent punctuation. Add a period, or
remove one.
(Nice example app, by the way.)
p33. Is it possible to show us a "screenshot" of the application
before launching into improvements?
p34. As per p32.
p36. s/Re raise/Re-raise/
p36. What about plain old "rescue"? (i.e. what does it rescue by
default?)
p37. Slight output overflow. s/running./running/ ?
p38. s/running./running/ ?
p39. Format line 8 on several lines for readability.
p42. s/clients socket/client's socket/
s/clients-thread/the client's thread/
p43. Title case?
p44. "Accessor functions" repeated. "Modules" and "Modules
Exercises": no other outline has this information.
p45. s/propertys/properties/
The "Calculated Property" and "Shortcut" boxes would look better
if their positions were reversed.
p47. s/array like/array-like/g
s/, can be used/ can be used/g
Slight overflow bottom right.
p48. s/christian/Christian/ (I think; I use "given name" anyway.)
The fields and descrptions don't match!!
s/String::split/String#split/
Perhaps you want Person#name -> Name object, with
Name#first and Name#last.
Then Person#age and Person#gender to complete the exercise.
p49. s/no special/not a special/
s/function,/function/
This slide is confusing. You're not demonstrating the ability to
"change classes, functions, modules at runtime".
p50. 0! == 1
p51. Good exercise. How about another?
p52. It would be good to teach extending objects, because it's core to
Ruby, and important when understanding "class methods". But you
can emphasise that it's advanced material, so students needn't be
worried if they don't get it straight away. (It's not *that*
hard to accept, anyway...
p53. A comment on line 21 would help: "Includes the AntGame namespace
to this context", or something.
p54. I can't follow this code at a (late night) glance, so I hope
you're explaining it well in person
p55. Missing exercises.
p56. Title case?
p57. Again, second-level headings in the section overview are
inconsistent with the early style.
So close, but so tired. I'll review the rest tomorrow. This is a
*brilliant* learning/teaching resource. I'm teaching a couple of
friends Ruby at the moment, and I'll be giving this to them for
self-study.
Cheers,
Gavin