by Ko-Ay Timmy Siauw, College of Engineering
Teaching Effectiveness Award Essay, 2009
The goal of Engineering 7 (E7) is to teach students how to program in MATLAB, a high level programming language used by students and researchers around the world. MATLAB cannot be learned by memorizing the definition of each word and punctuation mark from which it is derived. Instead, MATLAB must be internalized before students are able to express their ideas and solutions to problems. The learning process required to internalize MATLAB is not trivial and often causes difficulties for those enrolled. After being taught the basics of MATLAB, students are asked to use those basics to program solutions to a multitude of problems.
However, most students are trained in high school to memorize a great deal of information, organize it in their minds, then simply regurgitate it to their instructors in a different form; they are usually untrained at using the basics they have learned to generate solutions to new problems. When E7 students follow this high-school level method of “learning,” they spend a great deal of time on their homework but have very little to show for it at the end of the week. Having once been an E7 student myself, I recognized a teaching problem that could be remedied, and thus I created a solution that would allow E7 students to learn MATLAB in a fun — yet challenging — environment: the E7 Robot Tournament.
I began by taking something every student understood: games. I made the Robot Tournament into an extra credit assignment worth 100 points, which was a non-trivial amount that would motivate everyone to participate. To enter into the tournament, students would have to simulate the decisions made by a “robot” to maximize their chances of winning against another student’s “robot” according to a set of rules that I defined. An example of a rule is that robots could move within a certain area and pick up “fuel,” but because each movement also costs fuel, if a robot ran out of fuel it could not win. My goal was to motivate students to invent strategies in order to make their robots more likely to win. More importantly, they would have to translate their abstract strategies into concrete programs by learning the language of MATLAB and debugging their functions (students whose robots threw an error were eliminated from the tournament).
I created a master program to handle all of the students’ robot programs, play them against each other in a round robin style tournament, and track the wins and losses of all who entered as well as students whose robots crashed. The instructors of record agreed to allow me to give this assignment to the entire class. Of the approximately 350 students in the class, over 200 students entered a robot, 174 of which were of “reasonable” caliber (which I defined as being able to beat a simple robot I had created). I also arranged an awards ceremony in which students with great robots received certificates documenting their accomplishments and everyone could watch their robots compete with each other on a big projector screen.
To obtain feedback from students, I created a questionnaire for participants. The responses were overwhelmingly positive. Some wrote that they learned more from programming their robot than they did through all the assignments given in class. Others described it as being fun and even addicting. Ultimately, I believe the Robot Tournament succeeded in motivating students to work hard while having fun in order to reach the highest goals of the E7 course.