This is an archived course. Information may be out of date, some links are broken and email addresses have been removed.

01 Ruby course, Announcement

Here's the "official" announcement of the Ruby course! Thanks for
everyone's patience, and I hope we can have some fun with this!
Please join the courses mailing list and subscribe to the ruby topic
to participate. Lesson 0 will be sent out today, so if you subscribe
today and miss it, please check the archives.


This course is designed for both people completely new to programming
and for experienced programmers who want to learn another language
(FWIW, Ruby was approximately my 8th language, and about the 5th that
I've actually used "for real").


This will be a discussion group format course. I'll schedule certain
chapters of the book to be discussed at specified times, and make a
set of questions and programming problems to start off the discussion,
but I won't provide the content (that comes from the book). I'll make
a commitment to help make sure everyone's questions are answered, but
all participants should feel free to answer questions and start
discussions: the course will be even more fun if we all bring our
experience and expertise.


We'll only be covering Ruby the language in this course. You'll know
the language well enough to explore advanced topics such as Rails,
other web stuff, GUI programming, etc. I'll be going on a 3 week
vacation at the end of December, so that will be a perfect time for
someone else to step up and do a mini-course on a more specific topic
(if that's something that you're interested leading, please keep it in


The book we're using is 'Programming Ruby', by Dave Thomas et al. The
2nd edition is preferred, and may be purchased at your online/offline
bookstore of choice, or from the authors at If you do not
wish to purchase the book, the 1st edition is online (for free) at The 1st edition is sufficient for
this course, if you supplement it with the most recent online

Lesson Plan

Lessons are deliberately large and spaced far apart to allow for
flexibility around everyone's holiday plans. The dates are when the
discussion questions and programming problems will be posted; don't
feel required to have the reading finished by then. Also, don't feel
required to only discuss topics covered in the latest readings.

Nov 7: Lesson 0
Downloading and Installing
General References

Nov 14: Lesson 1:
1. Getting Started (Foreword/Preface/Roadmap in 1ed)
3. Classes, Objects, and Variables

Nov 28: Lesson 2:
4. Containers, Blocks, and Iterators
5. Standard Types
6. More About Methods

Dec 12: Lesson 3:
7. Expressions
8. Modules
9. Exceptions, Catch, and Throw

Dec 19: Lesson 4:
10. Basic Input and Output
11. Threads and Processes
12. Unit Testing
13. When Trouble Strikes

Laurel Fan