Asee peer logo

Workshop: Let’s Talk to Our Rubber Ducks: A Unique Approach to Tackling Computational Thinking, Analyzing Code, and Debugging using a Scavenger Hunt

Download Paper |

Conference

2022 First-Year Engineering Experience

Location

East Lansing, Michigan

Publication Date

July 31, 2022

Start Date

July 31, 2022

End Date

August 2, 2022

Conference Session

Technical Session S2B

Tagged Topic

Workshops

Page Count

2

DOI

10.18260/1-2--42265

Permanent URL

https://peer.asee.org/42265

Download Count

193

Request a correction

Paper Authors

biography

Stephany Coffman-Wolph Ohio Northern University

visit author page

Dr. Stephany Coffman-Wolph is an Assistant Professor at Ohio Northern University in the Department of Electrical, Computer Engineering, and Computer Science (ECCS). Research interests include: Artificial Intelligence, Fuzzy Logic, Game Theory, Teaching Computer Science, STEM Outreach, Increasing diversity in STEM (women and first generation), and Software Engineering.

visit author page

biography

John K. Estell Ohio Northern University

visit author page

An active member of ASEE for over 25 years, Dr. John K. Estell was elected in 2016 as a Fellow of ASEE in recognition of the breadth, richness, and quality of his contributions to the betterment of engineering education. Estell currently serves on the ASEE Board of Directors as the Vice President of Professional Interest Councils and as the Chair of Professional Interest Council III. He has held multiple ASEE leadership positions within the First-Year Programs (FPD) and Computers in Education (CoED) divisions, and with the Ad Hoc Committee on Interdivisional Cooperation, Interdivisional Town Hall Planning Committee, ASEE Active, and the Committee on Diversity, Equity, and Inclusion. Estell has received multiple ASEE Annual Conference Best Paper awards from the Computers in Education, First-Year Programs, and Design in Engineering Education Divisions. He has also been recognized by ASEE as the recipient of the 2005 Merl K. Miller Award and by the Kern Entrepreneurial Engineering Network (KEEN) with the 2018 ASEE Best Card Award. Estell received the First-Year Programs Division’s Distinguished Service Award in 2019.

Estell currently serves as an ABET Commissioner and as a subcommittee chair on ABET’s Accreditation Council Training Committee. He was previously a Member-At-Large on the Computing Accreditation Commission Executive Committee and a Program Evaluator for both computer engineering and computer science. Estell is well-known for his significant contributions on streamlining student outcomes assessment processes and has been an invited presenter at the ABET Symposium on multiple occasions. He was named an ABET Fellow in 2021. Estell is also a founding member and current Vice President of The Pledge of the Computing Professional, an organization dedicated to the promotion of ethics in the computing professions.

Estell is Professor of Computer Engineering and Computer Science at Ohio Northern University, where he currently teaches first-year programming and user interface design courses, and serves on the college’s Capstone Design Committee. Much of his research involves design education pedagogy, including formative assessment of client-student interactions, modeling sources of engineering design constraints, and applying the entrepreneurial mindset to first-year programming projects through student engagement in educational software development. Estell earned his BS in Computer Science and Engineering degree from The University of Toledo and both his MS and PhD degrees in computer science from the University of Illinois at Urbana-Champaign.

visit author page

Download Paper |

Abstract

A rubber duck can act as a sounding board for programmers to work through difficult concepts or complicated logic sequences. Speaking or explaining code logic out loud is known to be highly beneficial when “stuck” by an error. Andrew Errington created the concept of “rubber duck debugging”. A good programmer needs to develop several essential skills including debugging, computational thinking, and code analysis. How do we instill these concepts into first-year programming students? Introductory programming students are often reluctant to try debugging their code independently. Introductory programming instructors watch their students write lines and lines of code without compiling the code or testing the code.

During this workshop attendees will learn how to add fun to their courses by using a code-based scavenger hunt. Each scavenger hunt clue is a small (less than one page) C++ program provided to the students via a hard copy. The students, work in teams of 2-4, are forced to “think like the computer” and analyze the code (further developing their computational thinking skills). By stepping away from the compiler and unable to just run the program, students must work on understanding the specifics of the material. The output statements within the code provide the location of the next clue, with the final clue leading to the students selecting the rubber duck that “quacks” to them. The scavenger hunt gets the students out from behind their computers, introduces the students to an industry practice, and opens the door to future assignments on debugging techniques. The scavenger hunt covers a wide variety of topics, 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. Typically, the scavenger hunt beings in the classroom. The instructor ensures all teams have started the scavenger hunt and then “disappears” to the final location. The scavenger hunt could take students on a journey of their college/university to become more familiar with important locations (e.g., where office hours are held, department office, computer lab, etc.).

Learning Objectives for Workshop: By the end of this workshop, attendees should be able to: 1. Explain what rubber duck debugging is and how it is used 2. Understand the importance of computational thinking in programming 3. Explain how the scavenger hunt allows for graceful failure 4. Create their own scavenger hunt for a course they teach

This workshop will cover background on key concepts discussed (rubber duck debugging, computational thinking, and code analysis), the importance of learning debugging techniques, the specifics of the Computer Science 1 (CS1) scavenger hunt, hints and tips for adapting this for other programming languages, adapting this to courses outside of the computing field, and hints and tips for creating an online version or a version for a course with large enrollment. The workshop session facilitators believe in active learning techniques. Therefore, attendees will have the opportunity to try out a code-based scavenger hunt during the workshop.

Workshop Presentation Schedule: 1. Introduction, Purpose, and Agenda 2. Talk to your Rubber Duck! Rubber Duck Debugging Explained 3. Let’s Go on a Scavenger Hunt! 4. Adaption to other courses or larger class sizes 5. Online Resources, Q & A, Wrap-up

Coffman-Wolph, S., & Estell, J. K. (2022, July), Workshop: Let’s Talk to Our Rubber Ducks: A Unique Approach to Tackling Computational Thinking, Analyzing Code, and Debugging using a Scavenger Hunt Paper presented at 2022 First-Year Engineering Experience, East Lansing, Michigan. 10.18260/1-2--42265

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