Continuing to Think Recursively Using a Maze


Data Structures


In this assignment, you will have to use everything you have learned to choose an appropriate algorithm and data structure for traversing a maze to find an object and get out - using a recursive solution! The objectives of this assignment are to (1) continue gaining experience with recursion, (2) improve the implementation of proper coding styles and documentation, and (3) effectively present a design in written and speaking (bonus) form.

This assignment is typically given later in the semester, as students should understand classes and objects, I/O, and recursion.


Bill Eberle


design document, code, comments, pseudo-code, test results, documentation, individual presentations, oral presentations, reflection, tech report, video

Assignment Duration

Two Weeks

Communication Skill

reading, writing, speaking

Technical Skill

implementation, tools, design, recursion, linear data structures, program design, selection of algorithm and data structures, comments, documentation, problem solving

Workplace Scenario

Technical Task: The ability to speak in front of your peers, management, or more importantly a customer, will greatly influence your success in the real-world. If you cannot convey your ideas to your peers, you will have difficulty convincing others of your solutions.
Professional Setting: Students work for a software company.
Professional Role: Students are members of a project team.
Deliverable: Design document and associated presentation.
Real-world Audience: Management and peers.
How the Audience will USE the students' communication: The project manager and leaders will use the student's design and discussion to do the following: (1) Determine whether the team is capable of completing the project. (2) Develop a plan for completing the project.
Notes to Student: If you cannot present your ideas to management, you will lose their confidence in your abilities. If you cannot effectively present your product and ideas to a customer, you will probably lose their business.

Recursion is a design concept that is critical to becoming a solid software engineer. In the real-world, the ability to recognize design patterns, and potential repetition, is necessary when performance of a system is critical. Doing this just takes practice!

Team Size




Bill Eberle, “Continuing to Think Recursively Using a Maze,” Incorporating Communication Outcomes into the Computer Science Curriculum, accessed September 21, 2017, http://cs-comm.lib.muohio.edu/items/show/74.


Creative Commons License


Allowed tags: <p>, <a>, <em>, <strong>, <ul>, <ol>, <li>