Ask HN: About your CS teaching experience
However, I am currently not quite satisfied with the current "universal" method of lecturing theoretical concepts with the ocasional laboratory assignment. I feel that I lose too much time preparing theoretical lecture slides which the students won't fully understand since they lack the field experience I have.
My problem is mostly with the MSc students as I'm teaching more advanced concepts to them (Distributed systems). For instance, explaining things such as how transactions may succeed or have to roll-back if they fail, is just a detail that they will forget eventually after the exam.
So I'm starting this thread in the hope that I can read your experiences teaching adults on CS or other subjects, and hoping to get some literature, books or articles about things that you think that it may work!
4 comments
[ 3.5 ms ] story [ 23.6 ms ] threadHopefully the above advice helps with the lecture portion. As for labs, my experience says that practical exercises are great and my experience says that lab exercises are too contrived to be even slightly useful. To explain: I took an online distributed systems course to balance out my self learning and work experience. Their code work / labs were terrible. All the scaffolding was in place and it boiled down to "translate these algorithms to scala." I gave me no insight or feeling or deeper understanding of best effort broadcast or anything else. Mostly, I wrestled with trying to grok scala. However, previously implementing toy (read mostly broken) versions of Paxos and Raft (which I had done prior to taking the class) gave me a solid understanding and appreciation for the nature of the problems they attempt to solve. Reading the papers and attempting to code up what was presented worked better for me.
Cheers and good luck.
About your experience with the online course, I can understand the difficulty on trying to make a lab assignment for people without the necessary knowledge to complete the assignment. My current strategy is to provide some base code and then asking for the students to keep changing the code (giving enough hints) so that in the end they have a working solution.
Edit: Found some interesting papers, for instance [0] and [1].
[0] http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.59....
[1] http://www.cs.duke.edu/forbes/papers/fie2002.pdf