“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.
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:
- Literature study into existing similar methods.
- Actual user testing with an existing method (for the Requirements course).
- Design and implementation of a simple language.
- Implementing some basic interactive examples on the Apple iBooks platform.
- User testing to evaluate my approach.
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.
- April 2012: literature study and initial user testing largely completed; well underway with language design and implementation.
- May 2012: literature study and user testing chapters finished and reviewed; language implementation done and documented; started with examples.
- June 2012: chapter on language implementation finished and reviewed; examples done and user testing either done or scheduled for next month.
- July 2012: chapter on example implementation done and reviewed; chapter on user testing largely done; perhaps time for extra tasks.
- August 2012: final writeup of dissertation finished and handed in on time (deadline is August 31st).
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.