From: "Brian Schröder" Date: 2004-10-05T23:55:34+09:00 Subject: Re: A ruby course Thanks a lot for the exhaustive list! I'm sorry that I seem to have put up slides where the formating was broken. I'm just uploading the new version. (Now including unit testing). Regards, Brian Gavin Sinclair wrote: > On Tuesday, October 5, 2004, 3:17:47 AM, Brian wrote: > > >>Hello List, > > >>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. > > >>The slides are located at >>http://ruby.brian-schroeder.de/course/ > > > > 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 > > -- Brian Schr�der http://ruby.brian-schroeder.de/