Saturday, July 17, 2010

GSoC 2010

This post was long overdue.Me and 1025 students were selected for GSoC 2010.
I was selected for the project Enhancement and Integration of Tux4kids-admin with Tuxmath and Tuxtype for Tux4Kids for the organization Tux4kids.
My mentor Michal Switakowski is awesome.
Here is almost all of the proposal. I have removed personal contact info etc. so that the post becomes a bit less lengthier.

Title: Enhancement and Integration of Tux4kids-admin with Tuxmath and Tuxtype.

Abstract: The core issue faced by teachers in schools regarding including Tuxmath and Tuxtype in their curriculum is that they cannot assess the kids as they want.A configuration/administration program Tux4kids-admin was thus developed for teachers.But it does not integrate with Tuxmath and Tuxtype.My project is to add/modify code in Tuxmath and Tuxtype so that the Tux4kids-admin program supports them while simultaneously working on improving the
Tux4kids-admin program by mentor.
Content:


Project Goal

TuxMath is a game to help kids practice math facts while Tuxtype helps kids learn typing.Tux4kids-admin

is an administration tool for both(Tux4kids in general).The goal of this project is to improve the

Tux4kids-admin program and integrate it with Tuxmath and Tuxtype.







Description



Currently Tux4kids-admin has a school_data directory which has two subdirectories namely Computers and Students.

The problem with this is that there is no such classification as on the basis of a grade and thus two students of different

grade are difficult to distinguish and thus it is difficult to assign them missions of their level.





What I will suggest to have school_data directory with three subdirectories.

1.Grades. 2.Missions. 3.Computers.



We can have the school_database.db file in school_data directory.

The setup of each directory is as follows.



1.Grades

First we will define the number of grades for the school using Tuxkids-admin.



Then for each grade Tux4kids-admin will create a corresponding subdirectory in the Grades directory.

Eg Grade1,Grade2 etc.



The Tux4kids-admin program has a set of dialog boxes to perform the following tasks.



Add teachers to their corresponding grades.


Then for each teacher it will create a subdirectory in the corresponding Grades directory.

Eg Mrs. Jones,Mr Smith etc.



Add students assigned to their corresponding teacher.


Then for each student it will create a corresponding subdirectory in the

corresponding teacher directory. Eg Student1,Student2 etc.



The add a teacher dialog box has following entries to be filled.

First Name - First Name of the teacher

Last Name - Last Name of the teacher

Grade - Which grade the teacher belongs





The add a student dialog box has following entries to be filled.

First Name - First Name of the student

Last Name - Last Name of the student

Tuxmath/Tuxtype check boxes - Whether mission can be assigned for that program

Teacher - Teacher responsible for that student



By now the directory heiarchy for Grades is set up.



2.Missions



It will store the all missions created by teacher in the past.Each mission corresponds to one file.

Thus teacher can load a selected mission anytime from the list of missions and not have to create a new mission everytime.



It will have two subdirectories

a)Tuxmath b)Tuxtype



Both will store mission files corresponding to them.



The mission files are created by teacher when giving a mission to a student

and contain various settings related to the mission assigned.



eg for Tuxmath teacher may have a mission file containing setting as



Allowing addition only.
Numbers from 1 to 10 allowed.
Maximum speed=40.0




3.Computers

The Computers directory will have the same features as earlier implemented

i.e. it will have further subdirectories Computer1,Computer2,etc.



Each of Computer1 or Computer2 will have Tuxmath and/or Tuxtype subdirectories.



Now suppose teacher uses Tux4kids-admin to assign a mission1 from mission file

to student1 and assigns him/her Computer2.Further suppose while adding student1 we had allowed him/her to

be assigned missions for Tuxmath only.



So one subdirectory in Computer2 directory will be created by the name of Tuxmath.

The Tux4kids-admin will create the configuration files(explained later) having the following

information in the Computer2/Tuxmath directory for the case we are considering-



The name of student who is assigned this Computer
The mission assigned
The path of student in Grades directory and mission in Missions directory
Other information








Work Scenario





When a teacher uses Tux4kids-admin to assign a ComputerX to a student1 and

gives student1 a mission and loads the Tuxmath/Tuxtype plugin,the *configuration files*(explained below) for that

student1 are created in the ComputerX/Tuxmath or ComputerX/Tuxtype directory.



Now suppose Tuxmath --school-mode is run on ComputerX.

The Tuxmath program will skip the default beahviour of presenting a set of menus.

Instead, it forces the mission assigned for that student1 by the teacher by reading the

configuration files(explained below) present in the ComputerX directory.

From code point of view,it involves recognising the --school-mode argument and

changing code in Tuxmath/Tuxtype such that default menu doesnot show up and presents

the assigned mission by loading the settings from the mission file.

So basically during school-mode the Tuxmath program reads information

from Missions directory and ComputerX directory.



Now when the student exits the game,his/her scores and performance is saved in his/her folder

which can be retrieved later by teacher by using Tux4kids-admin program.

From code point of view it involves reading the various information from the variables containing related

information at runtime and writing them into a result file.

Result files can be text files which may contain following information and more



High scores by the student
Missions accomplished
Questions asked and questions missed
Numbers of correct and incorrect answers and the percent correct
Other values.




Result files are saved in student's home directory.There can be a result file per day for a student

or a file per mission/lesson.



There can be high scores of a class in sorted form stored in a highscores.txt file saved in teacher's folder

and similarly for a grade.Each time a student's score is written in his/her home directory it is checked with

highscores.txtand if it finds place it is added and the last item discarded.

Likewise we can store other items. eg.most difficult question for class,maximum percentage for a mission etc.





*Configuration files* are the files that are produced in the ComputerX/Tuxmath

directory on loading the Tuxmath plugin or are produced in the ComputerX/Tuxtype

directory on loading the Tuxtype plugin or both.

They are used by Tuxmath and Tuxtype to run the missions as configuredby the teacher.

They contain information related to the mission assigned to the student,its location,

name of student and his/her home directory and other configuration options(to be decided).



The configuration files can be CSV files or text files .

If required, their format can be discussed later also during the time of actual coding.

This is because the flat file database management system involves security issues.

For eg a student can change his score by merely updating the text file

(we cannot make it read only because the score needs to be written after playin the game)

in his folder.Even though they are kids but a security concern is always there.



But since tumath and Tuxtype are natively made to read text files and

dump back results to text files, it is better to go with the idea of text/CSV files.





Project Plan





Since my summer holidays start from 1st May 2010 and end on 15th August 2010,

and I have nothing else to do this summer, I feel that I can give ample time

till the end of the project.



Time per week - 42-56 hrs (6-8 hrs per day).



The whole work is a two way process.It means work is to be done on both Tux4kids-admin side and Tuxmath and Tuxtype side.

First we implement the whole idea for the Tuxmath and then implement for Tuxtype.This will help us to write code effectively.

I have divided the coding period in community bonding period and 5 number of phases.



Timeline



Community Bonding period



Further discuss idea with the mentor
Finalise the project specifications(This means that phase timeline below is liable to change).
Get a grip on git,SDL and other tools


Phase I (May 24 - May 31)



1. For Tux4kids-admin



Decide the interfaces to be designed for Tux4kids-admin.
Dialog boxes for the Tux4kids-admin program to set options and give missions to kids.For eg. Create/Assign Mission Dialog box, Show Result Dialog Box etc.
Decide how it will generate configuration files.




2. Decide on structure of configuration files and mission files means how and which values will be stored in them.


3.Decide on the structure of result files of Tuxmath program once the game is over.


4.Discuss and plan out how the changes in Tuxmath and Tuxtype will be carried out so that it reads the configuration files and how to write back the result files.


5.Begin coding.





Phase II (June 1 - June 30)



In this phase work will be done on Tuxmath and Tux4kids-admin only.If it is done code

can be ported with required changes to integrate Tux4kids-admin with Tuxtype.

This will help us to concentrate on one thing at a time.

Implement the first feature

This involves creating mission and configuration files which are read to load the mission.



Tux4kids-admin

Able to create mission files.
Able to create to confiuration files for a particular student.




Tuxmath



Able to read details from the configuration files and mission files.
The configuration file will describe the path of mission file for a student.
Able to start the mission in school-mode by loading the configuraion file by skipping the default menu.




Implement the second feature

Now,the game is ended but before exit the game has written result files.This feature also involves reading result files and display statistics.



Tux4kids-admin

Read result files from a student's home directory and display the student's performance.Other features can be added here like comparing performances and preparing a performance card for last month and deleting earlier results etc.



Tuxmath

Able to write the result of the student in the student home directory on the basis of which performance card can be generated.



Phase III (July 1 - July 15)





Port the code generated in earlier phase to Tuxtype by making appropriate changes (I think it will consume a lot of time but will be a better option than rewriting whole thing) by following strategy as described above in earlier phase.
Submit for the mid-term evaluations.




Phase IV (July 16 - July 30)



Finishing up what is left in implementation.
Improve upon the code written till now to suit best to the target audience(teachers and parents).
Start work on documentation.
Start testing and debugging.




Phase V (August 1 - August 16)



Finish documentation.
Testing and debugging continued.
Final evaluation.

Biography
...

I am writing this blog when I have just passed the mid term evaluations.
A lot of things come into picture once you begin coding.
So keep your structure/plan of proposal strong and other things flexible.
If this post was of any help to you, my purpose is achieved.
On a personal note I wish to see more GSoC'ers from nitdgp in future.
Bye

Saturday, November 14, 2009

Got Google Wave

Just got the google wave preview which i was waiting for so long.
It is simply awesome and has followed the philosophy of google being simple and effective.
and for the record got a domain
vikas-singh.co.cc
and directed it to my blog

Tuesday, October 20, 2009

Pidgin crash problem solved

If you are facing the problem of pidgin
crashing everytime you disconnect from internet ,
the solution is --
just update pidgin
$yum update pidgin

Saturday, September 5, 2009

How to make topcoder arena work on Linux

The steps given below are work on Fedora
but by altering a bit may work for your distro too.


1. Install Sun java.
Download the rpm file for JRE from Sun website ie from the following link



(if link is not visible then copy paste the following --
https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jre-6u16-oth-JPR@CDS-CDS_Developer)

Select Linux as OS at the link.

2. Install the rpm package using
rpm -ivh packagename
command.

3. Download the applet from the topcoder website. Save the applet file open the applet with javaws located at
/usr/java/jdk1.6.0_14/jre/javaws

You may change the properties of applet file to open it by default using javaws.

and finally arena opens.
Use the proxy settings and HTTP Tunnel B
to enter the arena.

Sunday, August 30, 2009

How a corporation hired for all posts in a very less time ?

A corporation advertised all kinds of positions to fill for their new office in a big city, the candidates were selected based on their resume and tested for their aptitude for the positions



The corporation put around one hundred baseball balls in some particular order in a closed room with the room window open Then they send a group of two to three candidates of particular discipline into the room and locked it from outside They left them alone and came back after six hours, to analyzed the situation:



[1] If they were counting and recounting the number of balls - They were hired for the ACCOUNTS DEPARTMENT



[2] If they had messed up the whole place with the balls - They were hired for the ENGINEERING



[3] If they were arranging the balls in some other order - They were hired for the PLANNING



[4] If they were throwing the balls at each other - They were hired for the OPERATIONS



[5] If they were sleeping - They were hired for the SECURITY



[6] If they had squashed the balls into pieces - They were hired for the INFORMATION TECHNOLOGY



[7] If they were staring out of the window - They were hired for the EXPORT



[8] If they were sitting idle - They were hired for the HUMAN RESOURCE DEPT



[9] If they had thrown the balls out of the window - They were hired for the MATERIALS DEPT



[10] If they were clinging onto the balls - They were hired for the TREASURY



[11] If they said they had tried different combinations, yet not a ball had moved - They were hired for the SALES



[12] If they had already left for the day - They were hired for the MARKETING and finally



[13] If they were talking to each other and not a ball had moved - They were hired for the TOP MANAGEMENT

World's Shortest essay

This is a story of a 16 year old boy from New Hampshire who won the World's shortest essay competition.


He was awarded a scholarship at the University of Harvard for his Imagination and humor ....

Here's an example of absolute Brilliance.. ..

Shortest Essay:

An English university creative writing class was asked to write a Concise essay containing the following elements:


1) Religion 2) Royalty 3) Sex 4) Mystery


And……
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

The prize-winner wrote:


"My God," said the Queen, "I'm pregnant. I wonder who the father is."

Saturday, August 29, 2009

Champions trophy 2009

The champions trophy for 2009 is sheduled from 22nd September to 5th october and will be held in South Africa which will be during the Dussehra/Durga Puja.So it will really great time pass during the holidays.

Past Champions trophy winners are South Africa in 1998 in Bangladesh, New Zealand in 2000 in Kenya, India & Srilanka jointly in 2002 in Srilanka, West Indies in 2004 in England and Australia in 2006 in India.

Since no country has won it more than once so hope India does this for a second time.
The shedule is as follows.

Group A = India, Australia, Pakistan & West Indies.
Group B = South Africa, England, New Zealand & Sri Lanka.

Champions Trophy, Sept-Oct 2009, Fixtures, results and match starting time
Date Match Venue Start Time
22 Sept South Africa vs Sri Lanka Centurion (D/N) = 2.30pm SA, 6pm SL/India
23 Sept Pakistan vs West Indies Jo'burg (D/N) = 6.30pm Pak, 6pm India
24 Sept SouthAfrica vs NewZealand Centurion (Day) = 9.30am SA, 7.30pm NZ
25 Sept England vs Sri Lanka Jo'burg (D/N) = 1.30pm UK, 6pm India
26 Sept Australia vs West Indies Jo'burg (Day) = 5am Sydney (Aus)
26 Sept India vs Pakistan Centurion (D/N) = 6pm India, 6.30pm Pak
27 Sept New Zealand vs Sri Lanka Jo'burg (Day) = 1pm SL, 7.30pm NZ
27 Sept England vs South Africa Centurion (D/N) = 2.30pm SA, 1.30pm UK
28 Sept India vs Australia Centurion (D/N) = 1pm India, 10am Sydney
29 Sept England vs New Zealand Jo'burg (D/N) = 1.30pm UK, 12.30am NZ
30 Sept Australia vs Pakistan Centurion (Day) = 1.30pm Pak, 5am Sydney
30 Sept India vs West Indies Jo'burg (D/N) = 2.30pm local, 6pm India
2 Oct Semifinal 1 : A1 v B2 Centurion (D/N) = 2.30am local, 6pm India
3 Oct Semifinal 2 : B1 v A2 Jo'burg (D/N) = 2.30am local, 6pm India
5 Oct Champions Trophy Final Centurion (D/N) = 2.30am local, 6pm India