Friday, March 6, 2009

Draft Brookline Adult Education Course Outline

Hi All,

I will be teaching a class called Introduction to Object Oriented Programming with Ruby at Brookline Adult and Community Education this summer. The course should appear on their Web site soon (http://www.brooklineadulted.org/).

Here is my draft outline. I am looking for feedback. Please let me know if you have any ideas on how to improve the outline.

Introduction to Computer Programming with Ruby
Course Outline

Week 1: What is Object-Oriented Programming?
- What is an object?
- What are the 3 programming paradigms?
- How is object-oriented programming different from the other two paradigms?
- The history of Ruby
- Installing Ruby
- Interactive Ruby (IRB)
- Ruby Gems
- require, include and load

Week 2: Classes, Modules and Methods
- Classes, the blueprints of objects
- Classes as objects
- Making an object out of a class
- Modules, functionality to add to classes and objects
- Dynamic vs. static typing
- Strings and numbers
- Methods, the verbs of the object-oriented world
- Object-dot notation
- Passing parameters into methods
- The return value of a method
- Method chaining

Week 3: Collections, the self Object and Flow Control
- The Array class
- The Hash class
- self
- Iterators
- do loops
- for loops

Week 4: Inheritance, Encapsulation and Polymorphism
- What is inheritance?
- How is it useful?
- Can it be overused?
- What is encapsulation?
- Why is it a good thing?
- What is polymorphism?
- Polymorphism in Ruby

Week 5: Logging and Input/Output
- Logger
- Log4r
- Reading in various kinds of input
- Writing out text output, HTML output

Week 6: Exceptions
- Handling unexpected conditions in an object-oriented program
- Raising exception
- Dealing with exceptions

Week 7: Testing
- Test Driven Development (TDD)
- Behavior Driven Development (BDD)
- Test::Unit
- RSpec
- Shoulda
- Cucumber

Week 8: Next Steps
- Next steps