In an initiative to teach kids how to create programs and creatively attack computer problems, Kevin McCarthy, a Godfrey, Illinois-based network consultant and part-time teacher, found that the students' natural curiosity made them very quick to grasp concepts when he gave them a choice in picking projects.
"The goal of this is to awaken the inherent hacker spirit that is in all children," McCarthy said. McCarthy has taught the course for over two and a half years.
McCarthy used Logo, a basic programming language for drawing graphics, to teach kids how to solve problems and build simple games. The language does not have much similarity to any of the modern programming language, so does not prepare the students to transition to more advanced work, he acknowledged. However, the classes do teach the foundations of programming method, and that can help immeasurably in later computer courses, McCarthy said.
After a one-hour class, the youngest students--five- and six-year-old boys and girls--could use the Logo language to create the most basic program, coding a process to draw a square. After four one-hour classes, the kids could create a program to direct a "turtle," represented by a triangle on the screen, through a simple maze using 15 lines of code to implement the right-hand rule to navigate the maze.
Ethics are taught throughout the course, as the topics naturally arise, McCarthy said.
"They always want a copy of any program they come across," McCarthy said. "'Why can't we have a copy of this software or that game?' So there are a lot of learning moments there."
Students also cover plagiarism and ethically sharing their work with others. For older students, McCarthy teaches why firewalls are necessary and the ethical uses of scanning the network.
Teaching kids about such concepts should help them deal better with the ethical frontiers that are currently being defined, said Richard Thieme, an author, philosopher and speaker at both the Black Hat and DEF CON shows.
"At a very young age, people are incapable of acting morally," he said. Young kids need black and white rules, while older kids can deal with gray areas, he added. "You need external structure to create restraint."
In the past, computer ethics was a foreign concept in high-school computer classes, said Kevin Mitnick, who served nearly four years in prison after being convicted of computer crimes and now is a speaker and independent security consultant.
Mitnick should know. As a young student in his first computer-science class, he created a program to steal the teacher's password and after telling the teacher how it worked received an 'A'.
"To him, what I did was the work of a bright student," Mitnick said. "Ethics was not part of the equation. If ethics was part of the curriculum, who knows, things might have been different."
While ethical issues are a recurring theme, students quickly pick up, and build upon, programming concepts, said educator McCarthy.
By 7 years old, the average student understands variables. After 8 years, students learn conditional branching and recursion. By 11 years old, the students were able to consistently create useful variable names, and around 12 years of age, the young programmers peppered their code with useful comments, McCarthy said.
One student, a six-year-old first grader, was a bit of a whiz at encryption problems, so he helped teach her more complex ciphers, he said. Now seven years old, she is already breaking complex codes, he said.
The differences and similarities between boys and girls in how they approached technology were interesting as well, McCarthy said.
At the young ages, both boys and girls had similar interest levels in the projects, he said. When the classes tackled simple game programming for the more advanced students, differences emerged in the type of projects that the students wanted to pursue. Boys tended to be more focused on action games, such as shoot 'em up arcade games, while girls tended to focus on more story-based games, McCarthy said.
While he considers the program a major success, McCarthy holds slim hope that such a curriculum would ever be taught in a public school.
"School systems really do not have the resources to do this," he said. "In the public schools, there is such a demand to teach to the test, that they just wouldn't be inclined to spend time on anything outside of that."
Author Thieme added that the lion's share of teachers don't understand technology as a platform for creativity, but merely as an information appliance.
"When Apple first gave computers to the schools, teachers locked them away, in what they called computer labs," Thieme said. "They were terrified because they didn't know what to do with them."
If technology is going to be better used to teach children about problem solving and programming, that means that teachers have to start learning as well. source