The best starter-coding language? How about English?
A screenshot of what the code looks like for a student writing/building an interactive story.
Douglas Kiang was tired of having the same types of students in his computer-science class year after year: socially awkward boys.
"I used to only get one or two girls who'd take the course," said Kiang, who teaches computer science at Punahou School on Oahu.
So Kiang took a page from his wife’s teaching manual--she’s a 6th-grade teacher--and gave something called interactive fiction a try.
Think of the famous "Choose Your Own Adventure" book series, where the reader decides what the protagonist does next, jumping to a new page with each decision.
In online interactive fiction, readers must tell the computer program what they want to do next. There are common commands that work in most programs, like “put,” “feel,” “take” and “open,” as well as custom commands for different stories.
What does interactive fiction have to do with coding? Everything, says Kiang, who has a Master's Degree in Technology, Innovation, and Education from Harvard.
"One of the core concepts we try to teach is abstraction -- the idea that you take a large idea and break it down into smaller pieces," Kiang said.
To create a story in interactive fiction, you have to figure out how to give the reader a bunch of understandable decisions to make that will allow her to navigate through the story and understand it.
The same thought process applies to coding. Say you are building an app to play blackjack: you would need to figure out how to create the card, how to allow the user to hit or stand, how to deal the cards, and a bunch of other tasks.
Kiang has had success with the approach. Students who have started with interactive fiction more easily pick up actual coding languages, he says.
For technophobes, interactive fiction also has the benefit of being surprisingly low-tech. It’s nothing but text. You can see (and play) one of Kiang's student's stories below (hint: try walking south, east or west to start with).