Bloc / workshop-curriculum

Exercise content for the Workshop platform.
MIT License
2 stars 9 forks source link

Create Intermediate Ruby Course #4

Open mikesjewett opened 8 years ago

mikesjewett commented 8 years ago

Ported from bloc/curriculum#4128

  1. Classes
  2. Handling Class Errors
    • Understand that a class is a blueprint for an object type
    • Understand that a class defines the behavior and properties for an object type
    • Define a class
  3. Class Instance Methods
    • Explain the scope of an instance method
    • Explain the scope of an instance variable
    • Define an instance method
    • Declare an instance variable
    • Use an instance variable in an instance method
  4. Getter and Setter Methods
    • Explain what a setter method is
    • Explain what a getter method is
    • Define getter and setter methods for a class
  5. Attr Accessor
    • Explain what attr_accessor is
    • Define getter and setter methods using attr_accessor
  6. Initialize
    • Explain the concept of class initialization
    • Initialize an instance of a class with values
  7. Class Methods
    • Explain the scope of a class method
    • Describe the difference between a class and instance method
    • Define a class method that returns a property that will be shared across all instances of the class
  8. Encapsulation
    • Explain the concept of encapsulation
    • Apply encapsulation to update a class attribute
  9. Calculator Program
    • Implement a class with methods that perform basic math operations
    • Demonstrate class initialization
  10. Advanced Classes
  11. Self
    • Explain the concept of self
    • Apply the concept of self to an Interest Calculator program
  12. Parent Classes
    • Explain the concept of parent classes
    • Define a class that inherits from a parent class
  13. Super
    • Explain the concept of super
    • Use super to call a method from a parent class
  14. Inheritance
    • Apply inheritance to compare the areas of different shapes
  15. Modules
  16. Namespacing
    • Explain the concept of modules
    • Explain the concept of namespacing
    • Implement a namespaced class
  17. Mixins
    • Explain the concept of a mixin
    • Demonstrate how to include a module in a class
  18. Raising Exceptions
  19. Begin / Rescue / End
    • Describe the purpose of the Exception class
    • Apply exceptions to catch error conditions in a program
  20. Blocks
  21. Re-implement each
    • Explain the concept of yield
    • Apply yield to reimplement the each method for an array
  22. Re-implement count
    • Demonstrate how to pass a bloc argument
  23. Re-implement collect
    • Demonstrate how to pass an argument to yield
  24. Procs
  25. (Placeholder exercise name)
    • Describe how a proc differs from a block
    • Implement a proc
  26. Lambdas
  27. (Placeholder exercise name)
    • Describe how a lambda differs from a proc
    • Implement a lambda
mikesjewett commented 8 years ago

@stanidesis here's my first cut at a course outline.

FYI @bbugh @levicole - what do you guys think?

getaaron commented 8 years ago

It might be worth covering composition around the same time that we cover inheritance

levicole commented 8 years ago

What if we didn't put this in phase one, and it was at the beginning of the ruby section? This is a lot of information that they will forget by the time they actually start writing ruby.

bbugh commented 8 years ago

+1 to Levi +1 to Aaron

To the outline:

mikesjewett commented 8 years ago

@stanidesis is taking over the outline from here, but this is great feedback. On the broader point of placing this course before the Backend Web Dev Foundation – I think that's a good idea too 👍

stanidesis commented 8 years ago

Excellent feedback, y'all. I'll incorporate everything and keep you updated with exercise drafts. I also will need to research some of these since I didn't learn them during the creation of PRCPs so I'll reach out for more help with that as well as using RSpec.