I had an opportunity to teach a Computer Science class at our local community college for this upcoming fall semester and was allowed to choose a topic/language and develop my own curriculum. Teaching has always been something I’m interested in so I was really looking forward to this experience. After spending a good bit of time this summer developing curriculum, I have to admit that having never done it before it’s been harder than I expected (but still fun!). Unfortunately, after several weeks of planning and with about 1 week left before the start of the semester the class ended up being canceled. That was certainly a big disappointment, but there is a chance that class will run again next semester. I wanted to share my thought process as well as the general outline of the class topics, and would appreciate any feedback from readers.
Here are some general thoughts and information about the class and how I decided to approach things:
- This is a 190 level class and the students are just starting the CS education. They have not done any in-depth programming yet. Also, this class was to be 100% online.
- I initially chose repl.it for my runtime environment. It looks really cool, and I think I will definitely use it in the future at some point, but decided that I wanted to keep things as simple as possible for now. So I then decided that I was going to use the browser and just console.log() everything we do. Finally, a little over a week before class was to start, I decided I was going to use Node.js. It was after watching some of the Microsoft Virtual Academy videos and liking the workflow they used that I decided to use Node.js.
- Lessons were designed to use a video presentation to introduce concepts and definitions and/or online reading materials (relying heavily on content from the Mozilla Developer Network) followed by a coding screencast that I recorded.
- No additional costs for this class! No textbook or additional software.
- There would be graded homework nearly every week, plus mid-term and final exams.
- Extra credit for attending and contributing at one of our local developer group meetups - Queen City Hacks
|1||Class introduction and getting started overview|
|2||Variables / Scope / Operators|
|4||Control Structures and Error Handling|
|6||Strings, Numbers, and Dates|
|8||Arrays Pt. 1|
|9||Arrays Pt. 2|
|10||Copying: Value vs Reference|
I can go into more detail about the content of particular lessons if anyone is interested. But to touch on a few things:
- I introduce functions earlier than a lot of other beginner tutorials I see. I think it would help with subsuquent lessons to have a basic understanding of functions.
- The Advanced Functions lesson is where we get into more advanced topics such as parameter destructuring, default values, arguments, rest parameters, etc.
- There is a lot to cover with arrays! Part 1 is basic array syntax, push(), pop(), slice(), etc. Part 2 we get into iteration methods such as .map(), .forEach(), .filter(), etc.
So, whatcha think? is there anything you would change or do different?