The power of the unaided mind is highly overrated… The real powers come from devising external aids that enhance cognitive abilities. —Donald Norman
Through this project I wanted to extend the resources that are available to teach concepts of programming to children by providing them with a theoretical understanding of elementary algorithms.
Communicating the theoretical concepts of an algorithm for school children provided an interesting research and design challenge, which was explored through task-based learning methods and visualizations.
September 2015 - April 2016
Dr. Prasad Bokil, Department of Design, IIT Guwahati
I was the sole researcher, and performed literature review, brainstorming, design, prototyping and preliminary usability evaluations.
We created a solution which aims to give the user a conceptual understanding of sorting algorithms. The design allows the user to explore about sorting algorithms through a scenario based task followed by a visualization of the sorting process. Feedback is provided based on the task through the visualizations and allows the user to re-attempt the task.
I initially followed an open-ended literature research in the domain of Algorithm Visualizations (AVs) in order to obtain a holistic idea of the work done till now and identify possible areas of intervention.
This was followed by problem identification and the traditional design methodology to address this problem.
AVs where students were required to Reflect or Respond upon the problem were found to be significantly more effective than AVs where only Viewing was required.
It was found that a lot of instructors believe that AVs would improve CS learning and that the use of AVs for instruction, however is not widespread.
The ability to control the pace of the visualization or focus on the logical steps of an algorithm makes an algorithm visualization more effective.
Lack of effective visualization as most AVs are at the Viewing level
Disproportionate share of AVs on fundamental algorithms
Lack of a complete catalogue for AVs
No AVs target students below CS undergraduate level
The analysis revealed numerous possible directions to proceed. Based on my experience and my general interests, I decided to address the gap of the absence of tools which target students at the school level.
How to enable the learning of concepts of elementary sorting algorithms for Children in Grades VII – X , with little or no programming proficiency, by focusing on the logical and working steps involved in the algorithms?
The User Research phase helped in determining the scope of the problem and the pre-exisiting constraints. I interviewed 5 children in age group of 12-16 which helped me to:
Identify the pre-requisite knowledge of our target audience group based on their academic coursework
Determine the target audience's use of other commonly used tools aimed at learning programming
Understand possible user constraints in learning the subject matter
The concepts were presented by ensuring the instructions centered around the application of real-world tasks or problems, and involved recall of prior knowledge for learning.
A web-based learning platform was proposed as it provided ease of accessibility, and greater flexibility in the interactions
A constructivist approach has been adopted for delivery:
Most AVs discussed in literature were very abstract. Due to our target audience being school children, a visualization should also be able to communicate the need for using an algorithm through the use of context based visualizations.
For the design of the system, we used the instructional design model of Merril's First Principles of Instruction as guidelines. These principles determined the content and how it should be presented for effective instruction.
I decided to choose the task of sorting weights using balance scales to present the users with the sorting challenge as it provides a natural analogy for the chlidren (The demography of the children taken into consideration were Indian students).
The design attempted to provide the users with a simple, clean and intuitive interface which communicates clearly the goals of the system. I developed an initial web-based prototype and performed usability tests of the interface by the appropriate audience. I refined the initial interfaces based on feedback received from the usability tests to create the final prototype.
2 rounds of usability tests were performed on the interface with 3 users in each round. This allowed us to identify the issues related to the instructions on using the interface, interactions for selection and comparison etc.
We are currently testing the system on a group of children from Std VIII to X to understand it's effectiveness. This group will be allowed to interact with the system (first the task and then the explanation using the visualization). They will then attempt the task again and explain their actions and subsequently will be presented to some written problems.
This will be compared to a control group of children who will be explained about the same sorting algorithms on a blackboard and will be presented with the same task and questions to measure their performance.