[IAEP] educational brew

Albert Cahalan acahalan at gmail.com
Tue May 5 15:02:07 EDT 2009


Kathy Pusztavari writes:

> "You could set up '4th grade math for Massachusetts' as a list of
> things to master. It's quite similar to setting up a Makefile
> with a target that exists purely to have a list of prerequisites."
>
> Albert - that is exactly what I was referring to.  A set of curriculum
> to get you started but a good teacher could then go in and adapt the
> files or make file for their standards (or find a local nerd to help).
> I referred to Turtle Typing.  Being a linux numbskull, I accidentally
> ran the MAKEFILE and found out that it seeds your lessons.  Honestly,
> I had heard of MAKEFILE but I didn't know what it did.

Sorry about that. The explanation wasn't any good for non-programmers.
I suppose I can try to explain "make". Here you go:

Suppose you had a file, commonly called "Makefile", containing this:

###########################

4th-grade-math: 4th-grade-fractions long-division

long-division: simple-division big-multiplication
        teach long-division.lesson
        teach long-division-extra-work.lesson
        teach long-division-extra-work-2.lesson

simple-division: simple-multiplication
        teach simple-division.lesson

4th-grade-fractions: simplify-fractions measure-fractions

measure-fractions: ruler
        teach measure-fractions.lesson
        teach measure-fractions-extra-work.lesson

ruler:
        teach ruler.lesson

simplify-fractions: lcd gcd simple-division what-fraction-is
        teach simplify-fractions.lession

[ ... lots of stuff missing ... ]

count-to-3:
        teach count-to-3.lesson

###########################

Each item on the left, before a colon, is something you could create.
(in this case, you're creating an education) Each item to the right,
after a colon, is a prerequisite for the item to its left. The indented
lines are commands that are needed to create things.

To learn 4th-grade-math, you don't actually need to create anything.
You just need to satisfy the prerequisites. So if we ask the "make"
program to create 4th-grade-math, it adds 4th-grade-fractions and
long-division to the list of things you want to learn and starts in
on them. Once those prerequisites are done, 4th-grade-math is done.

The long-division knowledge also has prerequisites, simple-division
and big-multiplication. Prerequisites must be done prior to starting
a lesson, so we add those to the list of things to learn and keep
going. Unlike 4th-grade-math, long-division has lessons to teach.
We have to come back to those after the prerequisites are satisfied.

4th-grade-fractions is more like 4th-grade-math. It doesn't have a
lesson by itself; it is just a list of other things to learn.

Eventually you get to a starting point with no prerequisites. That is
count-to-3 in my example. There may be more than one starting point,
in which case they may be done in any order. Reasonable starting points
always have lessons. Those are taught, completing the starting points.
This satisfies prerequisites for other things, which thus become
available as starting points. Ultimately 4th-grade-math becomes a
starting point, which is trivial because it has no lessons. Since that
was the original request, you're done.

If we were actually going to run that file using "make", we'd need a
command called "teach". Maybe the "teach" command sends a text message
to a human teacher, or maybe it runs a Sugar activity. The "teach"
command just needs to ensure that the material is taught.

There are plenty of details that keep this from working exactly as
written. Students may forget things. I used spaces instead of tabs
to indent the lines. I left out a big chunk. I hope this cleared up
what I meant though.

That "MAKEFILE" you mention might not be a real Makefile. It might
be a script that runs the "make" command with a particular Makefile
specified.


More information about the IAEP mailing list