Coding Tutor

From OLPC
Revision as of 11:01, 28 March 2008 by Rahul bagaria (talk | contribs)
Jump to navigation Jump to search
OlpcProject.png Rahul Bagaria

Idea

Game developers often include a full-fledged tutorial in their strategy/adventure games where a background voice or some text statements guide the player inside the game scenario itself and help him/her learn the nuances of the game in-situ. The idea is to create something similar for students & children wishing to learn programming in a way they feel as if they are playing some game.

Need

When students & children start to learn programming, they are exposed to a burgeoning plethora of IDEs and SDKs and other learning tools which teach them nothing on how to code. Often the documentation is hard to crack for the beginner and he needs to pour over books. Moreover when he does some mistakes, he gets convoluted error messages which he is unable to comprehend. Coding Tutor will act as a software teacher for such students on the XO platform and will make the chore of learning programming a fun task.

Summary

Coding Tutor is inspired by the Hackety Hack software which is a browser cum compiler for learning hacking in Ruby. It will be a self sustained tutorial environment having funky colored screens and a spoken + written tutorial which will teach and guide the user to code in an inalienable way. It will be using the GCC/G++ compiler and will initially be a C/C++ Tutor.

There are various levels of learning which can be there in this tutor. The user starts learning from the basics and tries whatever is taught at the same time in the coding area. When he goes on to the advanced levels the complexity of the Tutor increases as well which provides the user different areas & modalities to work in. The interface and the tutorial techniques are so simple to use that even a child in his early teens can easily learn basic nuances of coding and enjoy the lively experience.

Use Case Scenario

Sample scenario in which the user works:-

  • The user logs in the software which determines his level from the last use and suggests the next sections to learn on.
  • User selects the section and the Tutor starts the interaction by a speech tutorial and suggests what the user should try and practice.
  • User codes in the coding area, Tutor intelligently reads the user’s code and suggests tricks, tips and improvements to provide positive motivation.
  • If there are mistakes in the code, the Tutor understands the error messages, highlights the erratic code and explains the error to the user in a simple and easy way which the user enjoys.
  • The speech interface makes the task even more fun as the user gets comments from the tutor as if he was learning directly from a teacher.
  • User can quit the program as and when he wishes as the tutor stores the state of his work and resumes on his next login.

Proposed Features

  1. Speech Interactivity<\u>: The tutor interacts with the user by reading a tutorial text using the TTS Speech Synthesis. It also comments and explains the errors in the code and suggests improvements if the user commits common programming errors.
  2. Error Highlighter<\u>: The tutor will highlights the exact errors in the code and explain the corrections if possible to the user.
  3. Hints: During the practice sessions, if the user faces some problems, he can ask for hints from the tutor.
  4. Multi-Language<\u>: The tutorial will incorporate facility of different languages based on the TTS used and translations available.
  5. Network Sharing<\u>: The user can share his codes with friends using Mesh Networking and have a learning environment.
  6. Quiz Sessions<\u>: The tutor can hold quiz sessions for the user after he passes certain sections of the tutorial and suggest expected thought processes to him/her to encourage him for further learning.
  7. Lively Sounds<\u>: Music & Sounds can play important part in making the User Experience more lively. Sounds can play on correct responses and errors etc.

Extensibility

This project can be extended in future to include advanced learning tutorials and other features:-

  1. Networking Tutorials<\u>: Tutorials regarding networking can be included in future for advanced learners where the software will include corresponding facilities for IPC and Socket Programming. The exercises in these tutorials can be made very interactive as the user will learn the practical aspects of Networking. The XO Mesh Networking will also be helpful in this scenario.
  2. Speech Recognition & Multimodality<\u>: Speech commands and requests by user can be included in future to have complete interactivity with the tutor

Resources

Hackety Hack

Speech Synthesis

Screen Reader