What Got You Hooked With Programming Computers?

From the book Getting Started with Processing:

Programming courses typically focus on structure and theory first. Anything visual—an interface, an animation—is considered a dessert to be enjoyed only after finishing your vegetables, usually several weeks of studying algorithms and methods. Over the years, we have watched many friends try to take such courses and drop out after the first lecture or after a long, frustrating night before the first assignment deadline. What initial curiosity they had about making the computer work for them was lost because they couldn’t see a path from what they had to learn first to what they wanted to create.

I like this approach. I am going to experiment with this in the next class. I  have seen other similar approaches.

  • Start with some skeleton code that works and displays something. Let the learners fill in a few refinements to change the visual behavior. Incrementally increase the complexity and introduce more language features in context. This is how the Stanford Java course starts. 
  • Start with building a simple game with the minimal language constructs. Keep modifying the game and with each change introduce a few new constructs.
  • Start with a creator of some kind.  Let them learners create stories and sequences and animations. Use code visually in blocks. This is how MIT Scratch works.

Every one of these approaches have one thing in common. They keep the entry barrier low and hope that students get interested to learn more.

How did you learn programming? What got you hooked?

One of the reasons I started Resources for Computer Teachers (a Facebook group) is to share such ideas. It was inspired by CSTA.  If you teach computer programming in your school or college or company, consider joining and sharing your thoughts.

Intelligent Tutoring Systems

This post was triggered by an email I received for papers for a conference. One of the suggested topics was Intelligent Tutoring Systems. Here is what Wikipedia says about ITS:

An intelligent tutoring system (ITS) is any computer system that provides direct customized instruction or feedback to students, i.e. without the intervention of human beings, whilst performing a task. [1] Thus, ITS implements the theory of learning by doing.

It occurred to me that a simple system can be modeled (and tried) with AIML (artificial intelligence markup language) to provide introductory courses in several subjects. There is an AIML engine available written in Python called PyAIML. We already tried a simple student project (a help system for SugarCRM) using this engine.

The UI can be implemented using Processing or some other similar powerful visualization tool. The visual models can also be built using a Visualization Modeling Language (on top of SVG). A better method, would be to blend an instant messenger like chat interface, with a response window that supports simple graphics (to display diagrams). To do a project like this, we need the following:

1. A customizable chat (based on Jabber or some other similar client)
2. A surface that can display not only text but simple graphics
3. A KB built on something like AIML
4. Content customized towards teaching an introductory subject
5. A simple visualization interface like Processing

This is certainly an exciting area to explore for some student projects. A few good tools to create content in AIML format would be a great first step.

Posted via email from Dorai’s LinkLog