“A Novel Introduction to Programming”


In the future, education is going to be completely different. All textbooks are digital, teachers can keep track of the progress of students online, and students watch online lectures. Highly interactive teaching material makes everything more tangible and understandable. More time is left for cool projects, such as building robots and doing experiments.

I am certainly not the only one with this idea. In fact, while I was writing a project proposal for implementing interactive digital textbooks, with examples of what interactive elements in textbooks may look like (with lectures, applets, and formulas), an amazing platform for exactly that was released by Apple. Their iBooks textbooks platform for the iPad allows authors to create books with embedded video, quizzes, animations, and even HTML/CSS/Javascript applets for creating any kind of interaction. Therefore, I am proposing to not reinvent the wheel, but build on top of this. And what better opportunity is there than to contribute to the new Computer Science curriculum in secondary education!


The focus of this project will be on implementing and evaluating a basic digital textbook for programming. With this textbook students can learn the basics of programming using a simple programming language. The idea is not to build a toy language, such as dragging and dropping blocks, or a Logo-turtle type of language. Nor is it the intention to write an in-depth book on an existing language.

Instead, I would propose to invent a language that resembles popular programming languages, but is more restrictive in order to give useful error messages when compiling. With this language, I would make a number of different examples that apply to real world applications, such as navigating a robot through a maze, drawing shapes on a canvas, and interacting with the user.

The goal is to be able to use these examples complementary to other activities in a secondary education Computer Science course. This means that when finished, or while still studying from the book, students should be able to get started with building websites or apps, programming robots, or building simple games.


To be more precise, the project would involve some language design, implementation of some examples on the Apple iBooks platform on the iPad, and evaluation of the textbook by user testing. This testing is an important part of the project, as this fits perfectly with the material taught in the Requirements course. As a matter of fact, for that course I will evaluate an existing method for teaching programming, in order to jumpstart the MSc project.


The specific tasks I have in mind are:

If time permits this can be extended by doing more testing (for example in a classroom or with small groups), writing actual text for the textbook, writing more examples, extending the examples to other platforms, or building more advanced features into the language.


As a rough guideline, I propose a timeline of milestones within this project. These are chosen such that there is minimal interference with courses and exams. The timeline describes what events should take place each month.

I hope it will be possible to do this as an MSc project, as I think I can really make a great contribution to the education of the next generations.

Please visit http://janpaulposma.nl/msc-proposal-programming for an interactive version of this proposal.

You can also print or download this page as PDF.