TheOdinProject / ruby_course

The Ruby course on The OdinProject
50 stars 168 forks source link

Syllabus #7

Closed KevinMulhern closed 6 years ago

KevinMulhern commented 7 years ago

Leo made a great point about drafting out a broad syllabus for this course in another issue https://github.com/TheOdinProject/ruby_course/issues/2

I think it's a great idea and will hopefully generate a lot of new ideas as well as get us all on the same page as to what we want this course to be and contain.

I'm not sure what format we should go with here so write out your ideas in whatever way you think is best.

I think it would also be good to mention that I think we should take an MVP philosophy with working on and rolling out the new course. We should aim to make the smallest changes that add value and then roll it out to get feedback and to allow users to get value from what we are working on as quickly as possible. We can then iterate from that to polish and 'complete' things.

KevinMulhern commented 7 years ago

Heres my take:

Overall Learning outcomes for a student completing this course.

Essentially I would like the course to focus only on the pragmatic programming skills a student will need to be a software developer as well as best practices for writing clean and maintainable code. Not many programs I've seen cover the later point in much detail so I think this will give us an edge as well as producing much more skilled students.

The main things I think we should change

With all that being said, heres a rough draft of what I think the syllabus should be:


Section: Programming Fundamentals

Section: Basics of OOP


Section: TDD


Section: Files and Serialisation


Section: Advanced OOP


Advanced Ruby


Wrapping up

CouchofTomato commented 7 years ago

Hi @KevinMulhern. Agree with most of what you say and the draft of the plan looks great.

At this stage I only have two things to add.

1) Although splitting up lessons to make them shorter helps. We need to be careful not to get too carried away. If you look at the FCC roadmap it looks really daunting, even if most of those lessons might only take minutes to learn. It might put people off if the course looks ridiculously long so I'd like to find a good middle ground. I definitely do agree that we need to split out some of the current content though.

2) One big thing in Ruby is that you should aim for composition over inheritance. In what section do you see that being addressed?

KevinMulhern commented 7 years ago

Great points @CouchofTomato, I completely agree with not getting too carried away with the amount of lessons we have. I think having a lot of smaller lessons at the start of the course will make the course more accessible to beginners as it will be holding their hand a lot more with its introduction of new topics coming one lesson at a time. We can tail off this as the course progresses and make longer more 'complete' lessons.

πŸ™ˆ I completely forgot about composition, do you think it fits better in the Basic OOP section or the Advanced OOP section?

leosoaivan commented 7 years ago

Great job on that syllabus, @KevinMulhern!

It would appear to me that composition would be a great fit in Advanced OOP. It could go after the first bit on Refactoring, sort of like Refactoring pt. 2, I think.

CouchofTomato commented 7 years ago

@KevinMulhern

I agree with @leosoaivan and would aim to put composition in the advanced section.

KevinMulhern commented 7 years ago

πŸ‘ sounds good

We planned to add debugging lesson to the fundamentals when we planned that section earlier in the year. I think it would be good to include that as well.

CouchofTomato commented 7 years ago

Oh yeah, debugging is a must. Well remembered.

mindovermiles262 commented 7 years ago

https://github.com/TheOdinProject/ruby_course/blob/master/Syllabus.md

mindovermiles262 commented 7 years ago

Is it worth it to include some RegEx stuff too? I don't use it ALL that often, but it's nice to know how it works

KevinMulhern commented 7 years ago

We should definitely include that @mindovermiles262 πŸ‘ πŸ‘ πŸ‘ Which section should we put it in?

mindovermiles262 commented 7 years ago

Might fit best in the Advance section. Maybe we can make some sort of web scraper as a final project where RegEx would be helpful

KevinMulhern commented 7 years ago

Nice! I really like the idea of building a web scrapper πŸ˜„ its practical and can be non trivial.