Teaching Computer Programming


Leader: Erik Linde (Senior Instructor, Penpapercoding.com)

A practical introduction to some of the approaches helpful when teaching programming using the Pen and Paper coding approach. In that approach, the students don’t use computers for the first few weeks of learning. Rather, they write the code using pen and paper, and when time comes to execute their code, they go through the code manually, line by line, and keep track of the variable values themselves on the same piece of paper. Keeping everything on paper until they know the fundamentals of programming serves to improve their skills in writing and understanding code fairly rapidly.

We will start with the programming topic of “variables and assignment”, and what they mean / are used for. We will then learn how we can easily keep track of the values of variables during code execution. By using pen and paper, we will draw a “visual” memory schematic with arrows pointing from the variables to specific locations in memory. When we execute our code, we will use this visualization to help us keep track of each variable’s value. We will also discuss bits and bytes, as this knowledge helps the general understanding of variables. We may also have time for slightly more advanced topics such as the modulus operator or simple logic.

We will also delve into “softer” computer science topics such as how various programming languages differ from each other and why there are so many of them (a common question often asked by students), as well as the differences between interpreters and compilers.

This workshop will, as usual, include a dynamic alternation between direct instruction, exercises in “student mode,” and “teacher mode” discussions of content and related pedagogical issues.