August 14, 2012: Applying Pedagogical Principles in This Course

I've talked a bit about instructional design and educational principles in this blog in the past; here's a concrete example of how we try to apply those ideas. As well as teaching the basics of the Bash shell and Python, we also (try to) teach people that every programming system must have:

These ideas are connected: groups of things and ways to repeat commands tie together naturally, as do creating functions and combining them. Those connections:

In fact, connections matter as much as facts. What distinguishes experts from novices is not just how many facts the former know, but the density of connections between those facts. The more densely connected someone's knowledge is, the eaiser (and faster) it is for them to bring the next set of facts they need to solve a problem into working memory.

Another example of how we try to tie ideas together (which we haven't used in courses yet, but should) is the essay on counting things. It works through successively more complex scenarios, and uses the shell and SQL as well as Python, to give learners context for complexity. Our biggest goal in the next major revision of the course material is to do more of this: switching to the IPython Notebook will be cool, but putting a sound pedagogical basis under the course will make a much bigger difference.

< OlderNewer >

This post originally appeared in the Software Carpentry blog.