Teaching Ideas

Some ideas for using technology in the classroom from a homeschooler, a teacher, and a software engineer.

Name:
Location: New Hampshire, United States

February 12, 2005

Learning by Writing Software

Using Basic Computer Programming as a Tool to Teach Other Subjects


Assumptions
  • Rudimentary programming is accessible to kids.
Some new computer-programming languages are easy to use. Young people learn software quickly.
  • Programming is fun.
There's a real and immediate satisfaction in making a computer do something it couldn't before.
  • Computer programming both requires and facilitates learning about other subjects.
In order to make a computer do something-anything-a person must first know how to do it herself.

My Idea: Learning by Writing Software

Lessons call for students to create computer programs that demonstrate knowledge unrelated to computer science. That is, I want to teach kids a concept by teaching them to write software that proves out that concept. That is, I want to teach kids basic programming in order to teach them grammar or biology or music.


Example

Suppose I were teaching poetic meter. I might have the students write a computer program to identify whether a line was in iambic pentameter.

What would a computer need to do that?

  • A way for a person to enter a line of text.
  • A stored list of words with their syllable counts and accent patterns.
  • An ability to look up words in the stored list.
  • A set of rules for testing iambic pentameter.
The result would be a very rigid scansion engine with a severely limited vocabulary. Clearly it wouldn't be useful for scholarship.

But what would the students learn while setting it up?


Objectives

  • To set up the list of words and accents students would work through exercises "hearing" meter.
  • They might disagree on the accents on some words and have to look them up: a lesson in "long" and "short" markings and in dictionary usage.
  • While creating the list of words, they would discover that polysyllabic words generally have fixed accent patterns, but the "long" or "short" accents on monosyllabic words depend on context.
  • Students would learn the distinction between meter and meaning: the computer wouldn't need to know definitions or pronunciations, just accent marks.
  • Debugging the program would require them to test a line's meter by hand and compare their own results to their programs'-repeatedly. This would exercise their skills at manual scansion.
  • While testing and using the program, they might discover that some words (dactyls, for instance) can never be iambic.
Of course they would learn skills unrelated to poetic meter too. The exercise would reinforce:

  • Logical concepts: the "If . . . then" clauses, for instance, that are involved in all computer operations.
  • Artistic expression in designing both the algorithm and the visual interface.
  • Problem solving.
  • Planning and implementing a design.
  • Iterative editing ("debugging" to programmers).
  • Keyboarding skills.

Possible Enhancements

  • Once they built a working program, students could adjust it to detect anapestic dimeter.
  • They could test it on lines of "real" poetry, both familiarizing themselves with the poetry and learning the limitations of such a rigid interpretation of meter.
  • If the programs were designed to be "web-enabled," students could post the software to the school's web site where anyone could interact with it.

Methodology

Since my goal is not to teach computer programming per se, I wouldn't approach programming as a computer science class might. Practicing bitwise arithmetic and knowing heap memory from stack memory are not required.

I want to treat programming like a chalkboard or like Google. A teacher can use them without explaining why the chalk adheres to the slate or how Google searches billions of web pages in fractions of seconds.


Additional Examples

  • History students could create a "computer career-test" for Elizabethan England. They could study up on some Elizabethan "jobs," from courtier to peasant farmer to blacksmith, and generate a multiple choice, interactive quiz along the lines of the Strong Interest Inventory to recommend a career. ("Do you like to work with your hands? Would you laugh at the king's jokes even if they weren't funny?")
  • Students of grammar could program an online "Mad-Libs" type of software that would teach parts of speech while creating nonsense stories out of their input.
  • Music students could write a program to transpose notes, entered as letters, from one key to another.
  • Biology students could create software to predict the inheritance of dominant and recessive genetic traits via sexual reproduction.
  • Chemistry students could write a program that would return a molecule's atomic weight by adding up the weights of its constituent elements.
  • Students in an English class could follow a sample from one of my introductory programming books to generate amusing, random haiku. Variations could produce "poems" with alliteration or basic rhyme.

0 Comments:

Post a Comment

<< Home