Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: About your CS teaching experience
3 points by jventura on Dec 30, 2016 | hide | past | favorite | 4 comments
A little bit of context: I have former teaching experience by teaching CS basics to teenagers (K-12). But after some time working in the industry, I'm currently teaching BSc and MSc CS topics to adult students in a local technical university.

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!



I've not taught CS, however I used to teach math to adolescents. Some basics: scaffold concepts, spiral back to previous concepts, and allow exploration and self discovery. All quizzes and exams should have earlier content in them. I believe I heard that six repetitions over time were needed for most students. For distributed systems, don't just present the two generals problem. State the scenario, and give them 8 minutes to think through a solution in small groups. Maybe go as far as to have them illustrate the problem on poster paper with markers. Have a one or two summarize what they discussed to the class. Ask probing questions. Then give the reveal (a brief lecture on why it unsolvable) and show the results of the giants upon whose shoulders they should stand. Employ other active learning strategies. Google "active learning strategies." Yeah, lots of facts will be forgotten after the exam. However, the more they understand principles, the more they can recall and recreate long term.

Hopefully 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.


Thanks for your comment, I am already searching for relevant information on active learning strategies.

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


I've done some guest lecturing in more beginner-focused environments, but those papers seem to match with my experiences there. I'd reiterate a key point from them for emphasis - students shouldn't "change the code" until it works without understanding WHY the changes they make have an effect.


Those two papers, particularly the first one, are crazy relevant; great finds. Don't worry about getting too deep in the woods. It can be overwhelming to try to incorporate all the lessons in those papers and other active learning strategies. The advice I was given was to pick one or two strategies and start incorporating them. Then expand your tool belt. Keep things you feel work, discard those that don't fit the culture of your class. I'd encourage using surveys periodically with your classes too to see what strategies they find rewarding and engaging. Cheers!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: