Minneapolis, MN
August 23, 2022
June 26, 2022
June 29, 2022
9
10.18260/1-2--41252
https://peer.asee.org/41252
513
Dr. Stephany Coffman-Wolph received her PhD from Western Michigan University and is currently an Assistant Professor in the ECCS Department (in Computer Science) at Ohio Northern University. Previously, she worked at The University of Texas at Austin and West Virginia University Institute of Technology (WVU Tech). While at WVU Tech she was a founding member and faculty advisor of AWESOME (Association of Women Engineers, Scientists, Or Mathematicians Empowerment) at WVU Tech. She is actively involved in community outreach with a goal of increasing the number of women in STEM and creating effective methods for introducing young children to CS concepts and topics. Dr. Coffman-Wolph’s research interests include: Artificial Intelligence, Fuzzy Logic, Software Engineering, STEM Education, and Diversity and Inclusion within STEM. While growing up in Michigan, she was a dancer (ballet, tap, and jazz) until she graduated high school and a competitive figure skating through her senior year of college. Her hobbies include: reading mystery and fantasy books, knitting, shopping (especially to add to her shoe collection), yoga, and disc golf.
What is the function of a rubber duck toy? The rubber duck can act as a sounding board for programmers to work through tricky concepts or complicated logic [1]. Speaking code logic out loud is hugely beneficial - especially when stuck. The “rubber duck debugging” concept was created by Andrew Errington [2] to assist programmers with debugging. Debugging, computational thinking, and code analysis are essential concepts essential to developing into a good programmer.
The research question addressed in this paper is how do we instill this concept into our students? Especially CS1 students who are often resistant to trying new things or debugging on their own. Most introductory programming instructors watch students write a full program without even compiling to check the code or arrive at the instructor’s office needing help because “it is almost working except this one compile error,” which once fixed unearths many logical errors. These students often struggle to develop debugging skills or articulate the logical steps needed to create the program.
Enter the rubber duck prize! To add fun to the introduction of this concept, the students are sent on a scavenger hunt around the building where the class is held. Locations included on the path: the computer lab, the department office, the tutoring location, and the dean’s office – thus familiarizing first-year students with important locations within the building.
Each scavenger hunt clue is a small C++ program – usually less than one page and is provided to the students via a hard copy. The students act as the computer to analyze the code further developing their computational thinking skills. By “going old school” with paper questions so they cannot just compiler and run the program, the students work on a more profound thought process and focus on understanding the specific logiv of the material. The cout statements within the code provide the location of the next clue, with the final clue leading the students to the professor's office. A wide variety of topics are covered, including (1) mathematical expressions, (2) mod operator, (3) integer math, (4) switch statements, (5) if statements, (6) increment/decrement, (7) for loops, (8) while loops, and (9) do-while loops. As a completion prize, the students “select the duck that quacks to them.” This assignment is stacked with other lecture materials and lab assignments to create a deeper knowledge of debugging techniques.
This paper will cover background on key concepts discussed (rubber ducking debugging, computational thinking, and code analysis), the importance of learning debugging techniques, the specifics of the CS1 scavenger hunt, hints and tips for adapting this for other languages and courses, and hints and tips for creating an online version.
References: [1] R. D. Debugging, “Rubber duck debugging,” – Rubber Duck Debugging – Debugging software with a rubber ducky. [Online]. Available: https://rubberduckdebugging.com/. [Accessed: 08-Nov-2021]. [2] Re: Not an AWK question. [Online]. Available: http://lists.ethernal.org/oldarchives/cantlug-0211/msg00174.html. [Accessed: 08-Nov-2021].
Coffman-Wolph, S. (2022, August), Work-in-Progress: Using a Scavenger Hunt to Tackle Challenges of CS1: Computational Thinking, Analyzing Code, and Debugging Paper presented at 2022 ASEE Annual Conference & Exposition, Minneapolis, MN. 10.18260/1-2--41252
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2022 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015