This course explores how and why people learn about computation–in particular, how and why novices learn how to program. We will investigate what computing is, why it’s important, and how computing education should be organized to ensure that everyone can develop computational literacy.
The course is designed to give you a foundational understanding of computing education and an introduction to an array of current research issues. Among other topics, we will examine: the history of computer science education; different approaches to conceptualizing and assessing learning; implications of new initiatives like CS for All; issues around diversity and equity in computing; social and political rationales for computing education; and, relationships between computing and other disciplines. We will also experiment with a range of programming environments, educational toys, and engineering platforms that are intended to introduce novices to computing, including: LOGO, Scratch, Microbit, p5.js and Arduino. Approximately half of the class meetings will be devoted to discussing weekly readings. The other half will be spent actively exploring a range of technologies and tools.
Because of the breadth of the field, the treatment of each subtopic is necessarily somewhat shallow. The choice of subtopics also reflects my own interests and perspectives. In particular, I am principally a designer and engineer. I’m fascinated by tools and their impact so this course is design oriented. A different professor could teach a very different version of the same class!
Course website: https://www.cs.unm.edu/~learningcomputing/index.html