Understanding and Debugging Someone Else's Program


Data Structures


In this assignment, you will be given the code. However, it was created by someone who is no longer around to answer any questions about the program. Plus, there are some severe issues with the code – including it won’t even compile. The objectives for this assignment are to (1) gain experience understanding code, (2) learn proper debugging techniques, and (3) work on writing a technical report. In this particular example, we used Conway's "Game of Life".

This is an early in the semester assignment, and students should understand basic constructs, pointers, and how to read code.


Bill Eberle


design document, code, comments, pseudo-code, bug report, code review, reading code, results of code inspection, documentation, reflection, tech report

Assignment Duration

Two Weeks

Communication Skill

reading, writing

Technical Skill

tools, continuous quality assurance, comments, documentation, research, problem solving

Workplace Scenario

Technical Task: When working in the real-world, many times you will be given an existing piece of code that you must understand before you can implement any enhancements or fixes. And many times, the original developer of the code is no longer available – leaving you to figure out what the code is doing.
Professional Setting: Students works for a company that has purchased another.
Professional Role: Students are members of a project team.
Deliverable: Bug/Enhancement report.
Real-world Audience: A project manager.
How the Audience will USE the student's communication: The project manager will use the students' report to develop a plan for completing the project.

Team Size


Additional Information

In addition, a student may even have to reverse-engineer a design document from the code where no documentation existed before. Debugging a program is something that every developer has to do. Whether for a student or a seasoned software engineer, figuring out what is wrong in a piece of code and fixing the issue is a necessary skill.




Bill Eberle, “Understanding and Debugging Someone Else's Program,” Incorporating Communication Outcomes into the Computer Science Curriculum, accessed June 18, 2018, http://cs-comm.lib.muohio.edu/items/show/66.


Creative Commons License


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