“A Novel Introduction to Programming”

Background

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!

Proposal

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.

Tasks

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.

Implementing some basic interactive examples on the Apple iBooks platform.

User testing to evaluate my approach.

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.

Timeline

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.