How to run a teaching practical

Anyone who teaches programming, anywhere in the world: This site could make practicals much easier and more fun both for students and for teachers.

The code has to be in JavaScript. But if you are willing to accept that, there are some special features.

What you get

What you get as a teacher will be the following features:

Pool of practicals
An online, ever-growing pool of teaching practicals ready for you to use. Eventually it is envisaged that there will be a vast pool of practicals on different topics on this site.

3D graphics
Even a simple programming problem can easily be situated inside an attractive 3D graphical World, making the practical engaging for your students.

No admin
The site, not you, deals with student logins, forgotten passwords, etc.

Online submission
Online submission by the students. No email. No paper.

Student code hidden
Student code is hidden from other students, but visible to you.

Automatic marking
Online scoreboard with automatic marking. The teacher runs students' code and the score is automatically filled in.

No risk to your computer
When running student submissions, there is no risk to your computer. There is no install. There is no cleanup afterwards.

Best feature: Edit student code and run again
This is perhaps the best feature. When marking, you can easily clone a student program, edit it, make some changes, and run it again to see what happens. All with no install and no risk to your computer. You can even bug fix student code. Few teachers ever edit a student program and run it again, because it is usually not practical. This system aims to change that, and make it easy and even fun to do.

Use same practical as last year
You can use the same practical as other people. You can use the same practical as last year. The plain text solutions are not visible. Students can see the names of which solutions did well, but this is of no use to them, since they cannot see the plain text code.

How to run a teaching practical

  1. Basics:
    • You need a World that uses Minds. You, as the teacher, are the World owner.
    • The World defines some problem. The students write Minds to solve the problem.

  2. Get a Teaching World:
    • To be precise, you need a Teaching World version of a World that uses Minds.
    • Do one of the following:
      1. Browse all Teaching Worlds and clone one of them.
      2. Browse all World with Minds (that are not Teaching Worlds) and clone one of them as a Teaching World.
      3. Create a new Teaching World and write it all yourself.
    • Whenever you need a new practical, for a new class, just clone again and you will get a new World with a blank scoreboard.

  3. Tell your students to register (or bulk register them):
    • You can either let the students register themselves individually, or you can register the entire class using Bulk register.

  4. Student code is obfuscated:
    • All student Minds are obfuscated. This is done automatically.
    • As the World owner, you can see the plain text of all student Minds. This is done automatically.
    • The student can "View Source" and copy the obfuscated code of another student, but there is no point. The teacher will see only obfuscated code, not plain text code, and so will reject the submission.

  5. Only the teacher can make a score on the scoreboard:
    • As the World owner, only you can do runs that generate a score on the scoreboard.
    • You need to watch for attempted fake scores. Fake scores are an inevitable hazard of any client-side system.
    • You can watch what appears on screen and match it to the claimed score. You can study the Mind source code.
    • Hacking the score is difficult - but not impossible - because there is no feedback. No score appears on the scoreboard. That only happens when the teacher runs it. So they have to code without knowing if it will work when needed.
    • If you are suspicious of any Mind score, you can "reset" the score and confront the student.
    • You might tell the students that any hacking of the score means they fail. Or you might allow them hack the score and reward them for doing so. It is up to you.

  6. You can easily edit student code:
    • When marking, you can clone the Mind. The cloned Mind will be obfuscated, but you own it and can see the plain text.
    • You can edit the clone, make changes and run. You can even fix bugs in the code and run it again. This lets you give the student a better and more thorough marking.