Learning Computing

Professor: Leah Buechley (buechley@cs.unm.edu)
Course: CS 491/CS 591 (OILS 493/OILS 593)
Time: Tuesdays and Thursdays 12:30-1:45pm
Location, Tuesdays: Mechanical Engineering 208
Location, Thursdays: Farris 2065 (Farris computer lab)
Office Hours: Tuesdays and Thursdays 11am-12pm in Farris 2340A

This course will explore how and why people learn about computation--in particular, how and why people learn how to program. We will focus especially on how novices, children and adults, learn computing. 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!

Learning Objectives
After completing this course, students should have a basic understanding of the research field of computer science education. Students should be familiar with different approaches to theorizing and studying learning in computing and have familiarity with a range of platforms designed to introduce novices to computing.

Class participation: 25%
Discussion session and presentation: 20%
Hands-on assignments: 25%
Final project: 30%

For more information about Assignments and Grading see the Policies page.