Graduate Project

Applying Visualization for Teaching Scheduling Algorithms in Computer Science

Using animation in teaching has become more popular in the twenty-first century in universities and education organizations. It makes understanding the challenging concepts much easier than using the traditional methods to explain them. One of the most significant concepts in computer science is algorithm and it is considered a challenging topic for many CS students. It is considered the core of computer science courses and any field in computer science requires excellent understanding of the basic algorithms. Much research has proven that supporting the traditional way of teaching algorithm curriculum with visualization using both animation and web game motivates students to increase their knowledge about algorithms and learn more during any algorithm course and after it. In this project, we have developed interactive educational web games using JavaScript to graphically illustrate couples of CPU scheduling algorithms for a single CPU. Players have the ability to drag and drop the processes in the processor timeline. Then, the game will graphically show the status for each process if it is in execution status represented by green rectangles or waiting status represented by yellow rectangles. Once the player finishes dragging and dropping all the ready processes in the processor timeline, he will ask to enter the value of waiting time for each process and calculate the average waiting time. Also, the educational games will display hints if the player made any mistake or the player can click on the show solution button to see the animation explain the algorithms step by step automatically. The proposed educational web games encourage students’ interaction and help them to learn the theory of CPU scheduling algorithms in a fun framework.