From the very beginning of my time teaching at Nashville Software School - back in January 2015 - I've had the hare-brained idea to personalize the course as much as possible to accomodate for students who learn different concepts at different speeds. It didn't work out for many reasons. The primary one being that the timeline is so compressed, that the leeway students have to spend time learning a particularly difficult concept is just a few days before we need to cover something new.
Lately, however, we've come up with a mechanism to help students out, and personalize the learning a bit more. It started off with something I called Fundamental Fridays. Fridays at NSS tend to be lab days where students can spend nearly the entire day working on exercises or projects that they haven't had enough time to complete.
I decided to take that morning and give the students three choices.
- Work on exercises they want to work on.
- Take on a challenge project that they can work on as small teams (2-3 people).
- Stay in the classroom and go over small exercises that cover certain fundamental concepts that we've covered since the beginning of the course.
They were received so warmly, that they eventually evolved into workshop that we would offer to students at any time that we noticed that there were some students missing some core knowledge that they needed to keep up with the standard pace. We would have Fundamental Wednesdays, and one was even dubbed the WTF Tuesday. Because these would be offered any day of the week, we started doing them about 45 minutes before class officially started.
My plan is to formalize these workshops into the course at strategically placed times.
- After we've covered the basics of logic, functions, and modularity.
- Right before we just into automation and libraries like Browserify.
- During Browserify as we cover asynchronous programming and Promises.
- After we cover async.
- Once more after async (async programming confuses nearly every student).
- After introducing component based library (be it Vue, React, Angular, etc.)
- During component-based development
- After component-based development
What these allow is for students who grasp the concept quickly, they get to work on something challenging to take their knowledge even deeper.
For students who get the basics, but need a bit more practice, they continue working on exercises.
For students who are scratching their heads because they don't understand anything, they get to cover the material multiple times, at different paces, with different viewpoints, to set them up for success. This, along with Lightning Exercises, are a way to allow students a more personalized learning structure.