Criterion+A+Planning

DEFINING THE PROBLEM
A virtual lab for the experiment Separation of photosynthetic pigments by chromatography is an experiment introduced in the biology textbook of IB. Since the biology teacher is not designing a real lab for her students, my friend Charlotte (client), as a biology student, needs a virtual lab to help her understand better the idea of the variety of pigments existing in photosynthesis. This virtual lab is designed especially for her demand and it demonstrates a quick look of the steps and result of this experiment over time. In this case, my computer science teacher is my advisor.

RATIONALE FOR SOLUTION
Lab experiments are very helpful for students to get familiar with and memorize the knowledges they have learnt. However, in many cases, real labs are either hard to be designed or implemented at schools, as there are always problems such as high complexity of experiments or lack of accurate instruments emerging. A virtual lab is way better than a real lab because it lets students see results of experiments more quickly and easily. For this experiment specifically, chromatography is difficult to be implemented at school labs because this experiment requires too much time to both grind the leaves and wait for the result to appear and a virtual lab can solve this problem. Having researched different programming languages, I decided to create my solution in Java because of the following reasons:
 * I’m familiar with Java.
 * Java runs on a considerable number of different platforms so it can be used by users with a variety of devices.
 * Java is an object-oriented language so it allows programers to implement inheritance, encapsulation and polymorphism to reduce code duplications.
 * Java has many libraries which can be used to improve the effect of this program.

SUCCESS CRITERIA
Having talked to my client, I decided that to be a successful solution, my program will be able to:
 * Create a graphical interface which shows different steps of this experiment and the result of it over time, with different colors of pigments emerging gradually
 * Allow the user to change the duration of this experiment and see different results in accordance to time differences. For example, the result after 3 mins should be different with 5 mins, with more pigments showing up and deeper colors.
 * Show a quantifiable result by calculating the Rf value for each pigment, where Rf is the distance run by the pigment divided by the distance run by the solvent
 * Allow the user to restart the experiment to make the program more user-friendly
 * Give the user some introductions to the biological knowledges about different types of pigments and photosynthesis etc.