Cultivating a Culture of Entrepreneurial Mindset and Undergraduate Research

Abbas Attarwala

CURE-E Course: Programming and Algorithms II (CSCI 211) 

Project Title: A Game-Based Approach to Teaching Search Algorithms

The primary objective of this CURE-E project in my CSCI 211 course is to engage students in the practical application of search algorithms, specifically Depth-First Search (DFS) and Breadth-First Search (BFS), by incorporating them into a modified PAC-Man game.

Students will not only learn the theoretical underpinnings of these algorithms but will also apply them in a real-world gaming context, thereby learning creative problem-solving and potential optimization techniques. For instance:

  1. Algorithmic Innovation: By applying DFS and BFS algorithms to a PAC-Man game, students will explore new ways of implementing these algorithms that could lead to more efficient or interesting gameplay. This has broader applications in game development and even in other fields where pathfinding algorithms are used, such as robotics and logistics.
  2. Optimization Techniques: Students will be encouraged to optimize their algorithms for various performance metrics, contributing to the ongoing discourse in the field about algorithmic efficiency and optimization. For instance, given a certain configuration of the game with the ghosts in the game located at certain coordinates, what algorithm will yield the PAC-Man eating the most number of dots?
  3. Pitching and Presentation: At the end of the project, I will ask some students to 'pitch' their optimized PAC-Man game to the class. I do not think I can allow everyone to do this, however, I am confident that if I use my lab time optimally, most students will have the opportunity to do this.
Here is what I am thinking on how this will all work out. Students will be provided with the base code for the PAC-Man game and will be responsible for implementing the DFS and BFS algorithms to control PAC-Man's movements. The base code will be written in C++ and will be packaged into a docker container with all the responsible library. This will hopefully make it easy for students to run it on their computer without much issues. They will then test their implementations under various conditions, collect data on performance metrics, and iterate on their designs.
Portrait of Abbas Attarwala