When Howard Abrams, a software engineer in Beaverton, Ore., wanted to teach his daughter, now 10, and son, now 8, how to program computers, he thought of the fun he had playing with Logo, the first programming language he learned.

He quickly discovered that “Logo is pretty old school. Now there are a lot of different options.”

So he chose to teach his children Scratch, a language developed for teaching at M.I.T.’s Media Lab, both for its simplicity and the way it encourages collaboration. He uses it with fourth and fifth graders at his children’s school, at a computer club where they build games and tell stories. The fun, he said, is contagious. “There are days when I think of quitting this job and teaching full time,” he said.

New and more sophisticated tools are changing the way that the next generation learns to program computers. Children can now create elaborate scenes and games without the cryptic commands that were once the only way to tell computers what to do. The most talented children can also use some of the sophisticated tools normally used by professional programmers, because the tools are now often easy enough for someone to pick up with only a few months of study.

Mitchel Resnick, a professor of learning research at M.I.T.’s Media Lab who helps run the Scratch project, said that Scratch is effective with children because it fosters collaboration. “It should not just be about an individual sitting at a computer,” Mr. Resnick said. He estimated that there are about 2,000 new Scratch projects created every day, and many are based on the work of other students. “A third of the projects, more than 600,000, are what we call remixes. The kids are building on someone else’s work.”