Hackathons‎ > ‎

Learning Activity Projects

Learning Activity Projects for the First Hackathon

Here are three projects around building learning activities.  I would like us to make progress on at least one of them in our first hackathon.
  1. Teach Use of Programming in Humanities (high school)
  2. Introducing Kids to Loops (elementary school)
  3. Teaching Recursion (middle/high school)
If you are excited and ready to start building activites now, take a look at the HTML pages on activity.pencilcode.net - when an activity is done, it should be written up as a set of worksheets that are concise, readable, and easily printable for classroom use.

The goal is to build a set of Pencil Code projects over time that can be used in a standard curriculum.  For inspiration, read the new-generation computer science high school course curricula here.

Use of Programming In Humanities

We believe it is important for kids to see that programming is useful as a tool in non-stem fields.  There are two major applications that are accessible to kids who are studying history or English or art:
  1. Making presentations or works of art that use the computer as a medium.
  2. Analyzing and visualizing data (numbers, text, or time) using the computer as a tool.
This is a goal targeted at high-school age kids who are ready for "real world applications" - the more real the better.  And yet things must be easy enough to be rewarding.

  • Programming Presentations - a step-by-step project showing how to use a javascript library such as https://github.com/jmpressjs or impress.js.
  • Programming Word Clouds - a project showing how to use a javascript library such as https://github.com/timdream/wordcloud2.js
  • Projects or worksheets that show how to use other data visualization tools as a programmer.
  • Analyzing Real Data - a project that shows how to consume some real online data such as http://earthquake.usgs.gov/earthquakes/feed/v0.1/ or some other interesting online data.


A very common problem when teaching kids to program is that they do not naturally ask to use control flow.  For example, the program here is typical, even for a "superstar" beginner:

We need lots of activities that make simple loops as inviting and interesting as possible, to nudge kids to using loops.

  • Loop programs that are visually elaborate but that are a small number of lines of code.
  • One-page worksheets that give step-by-step instructions at the 4th grade level on how loops work and how to build projects with loops.
  • Try to find examples that don't just look like spirographs.
  • For example, can we make beautiful repeated tiles?  Symmetric woven rug designs?

Learning about functions, local variables, and recursion is the "big hurdle" for many students.  We need high-quality activities that look at recursion from a beginner's point of view in several different ways.  Some students will be able to understand recursion operationally (step-by-step); others will think about it functionally (as a decomposition).  Some students will have an easier time with math examples (like factorials or fibonacci numbers), and others will prefer graphical examples (spirals and fractals).

  • Recursion examples that are easy to write and yet rewarding.
  • One-page worksheets that build up the examples using nonrecursive thinking first, and then building to a recursive example.