Reza Ferrydiansyah
Home
About Reza
Curicullum Vitae
Projects/Research
Publications
Album

Project


Home >> Project page >> algoshop

Algoshop

One of the basic skills that a computer science student must have is to learn how to create 'good' algorithm for solving various different problems. The algorithm must not only be error free, but they must also be well-formed, so that they are efficient and easy to maintain. The best way to do this is of course by practicing. A lot.

My application uses a game to teach students how to create algorithm. In the game the students play as store owners, and in order to sell various items must create algorithms that are efficient and correct. The skill learnt by using this application, which includes problem solving as well as correct coding is applicable in a student's future professional lives.


Screenshots of the algoshop program.

This application was implemented and used as a companion for the introduction to algorithm course at the Informatics Department at Institut Teknologi Bandung. The course teaches basic coding skills (structure) as well as learning basic algorithmic methods.

Programming Language

Students in the course use Pascal as the main programming language. A special Pascal interpreter (using lex and yacc) was created for the purpose of creating algoshop. The interpreter counts the various code constructs (operators, variables and function calls) and scores the efficiency of the resulting code accordingly.

As students program through a web interface, it is important that the server be secured from possible attacks. The interpreter was built with security in mind. File output functionality was not implemented in this language. The interpreter also stops the students' codes when they take too long (in order to stop infinite loops as well as a simple way to avoid DoS attacks).

Project Details

  • This project was partly funded by the QUE (Quality Undergraduate Education) program received by the informatics Department. I was the Principal Investigator
  • The interface was mainly written in Indonesian
  • PHP and PostgreSQL was used for the web portion
  • Lex and Yacc was used to create the interpreter
  • Currently I am not maintaining this program, I will perhaps revisit this tool in a few years
  • Timeframe: January 2003 - January 2007

Links

23-11-2009 :: Number of visitors to this site : 363283 :: Give or take 350000

To Top | Contact Me | About The Page | FAQ

(C) Reza Ferrydiansyah 2002
You should not reproduce anything here and say that it is yours... bad boy