Codebolt is an extended work of the project made by our team 'The Divergents' (comprising of 2 members) in the ACM Game Hackers hackathon hosted by IIIT Sri City on Oct 2016. We had won the special mention prize.
Our idea was to develop a website to teach the users the basics of computer science, from basic computers to basic programming and data structures. In the hackathon, we developed a few games that taught users the basics of Data structures with the help of music and common daily life examples. We later extended our work and developed more games to teach users basic computer system as well as basic programming.
One of the games for teaching users about the basics computer system is "Hide and Seek" where the users are supposed to click and catch all and only the computer parts where all the things are jumbled and keep on changing their position. Clicking on a non computer part results in error amd the exercise needs to be repeated while clicking on a computer part makes it disappear. The other exercise in the same section helps the user understand about male port, female port and usb port.
The section "Introduction to Coding" gives the users their first experience on coding. The first game asks them to write a few lines of instructions (from given instructions) to help Jerry reach to get the butter.
The second game introduces one of the popular concept of programming: 'Swapping variables'. Users are expected to write a few instructions (from stated instructions) to help Candy Cane reach topmost left by swapping position with nearby candies.
The section "Introduction to Data Structures" gives the users a basic understanding on how some popular data structures work. For example difference between array and linked list is taught by comparing them with the example of tabla notes (music included to make it more interactive). When Tabla notes are stored in an array, accessing any index plays Tabla note on that index. But accessing an index in a linked-list plays every Tabla note from first index to the required index.
The difference between stack and queue is taught by comparing them with the example of a daily life example. Users are supposed to drag and drop the students to the gate of the school in such a way that Alex can come out first. A student when dragged upon the gate goes and occupies the first available seat from the last. In case of Stack, students can go and come out of the bus only from the front door. This means that Alex should be dragged and dropped at last. However in the case of Queue, students get inside from the front gate and come out from the back gate. Therefore to come out Alex should be dragged and dropped first.
The project is developed using Web2py web development framework 2.14.6. PhaserJS and jQuery too has been used. The Project Folder is present in the repository and all the basic files can be checked here for reference. If one wishes to extend or take reference from the work, install app.w2p from here as application name: 'app' (since there are a few dependencies on the name which can be checked).