Asee peer logo

Reverse Software Engineering as a Project-Based Learning Tool

Download Paper |

Conference

2021 ASEE Virtual Annual Conference Content Access

Location

Virtual Conference

Publication Date

July 26, 2021

Start Date

July 26, 2021

End Date

July 19, 2022

Conference Session

Software Engineering Division Technical Session 2

Tagged Division

Software Engineering Division

Page Count

17

DOI

10.18260/1-2--37681

Permanent URL

https://peer.asee.org/37681

Download Count

405

Request a correction

Paper Authors

biography

Cynthia C. Fry Baylor University

visit author page

CYNTHIA C. FRY is currently a Senior Lecturer of Computer Science at Baylor University. She worked at NASA’s Marshall Space Flight Center as a Senior Project Engineer, a Crew Training Manager, and the Science Operations Director for STS-46. She was an Engineering Duty Officer in the U.S. Navy (IRR), and worked with the Naval Maritime Intelligence Center as a Scientific/Technical Intelligence Analyst. She was the owner and chief systems engineer for Systems Engineering Services (SES), a computer systems design, development, and consultation firm. She joined the faculty of the School of Engineering and Computer Science at Baylor University in 1997, where she teaches a variety of engineering and computer science classes, she is the Faculty Advisor for the Women in Computer Science (WiCS), the Director of the Computer Science Fellows program, and is a KEEN Fellow. She has authored and co-authored over fifty peer-reviewed papers.

visit author page

biography

Zachary Michael Steudel

visit author page

Zachary Steudel is a 2021 graduate of Baylor University's computer science department. In his time at Baylor, he worked as a Teaching Assistant under Ms. Cynthia C. Fry. As part of the Teaching Assistant role, Zachary designed and created the group project for the Computer Systems course. Zachary Steudel worked as a Software Developer Intern at Amazon in the Summer of 2019, a Software Engineer Intern at Microsoft in the Summer of 2020, and begins his full-time career with Amazon in the summer of 2021 as a software engineer.

visit author page

biography

Joshua Craig Hunter Baylor University

visit author page

Joshua Hunter is a Sophomore Computer Science student at Baylor University working as Computer Science and Calculus tutor. Joshua worked alongside Zachary Steudel to design and create the group project for the Computer Systems course in the Fall of 2020. Joshua is a member of the Theta Tau professional Engineering and Computer Science organization and will be working as a Software Engineering intern at L3 Harris this summer.

visit author page

Download Paper |

Abstract

Reverse Software Engineering as a Project-Based Learning Tool

Although the concept of reverse engineering is used in many fields, in the context of software engineering and security, it has come to include fields such as binary code patching, malware analysis, debugging, legacy compatibility, and network protocols analysis, to name a few. Despite its broad use in software engineering, however, there is little work in computer science education that considers how reverse engineering can be taught as a part of a computer science course. This may be a result of the compressed timetable of a four-year college education in computer science, where the need for the courses in the core curriculum, as well as the upper-level computer science electives, constantly find themselves in tension with regard to the short timetable necessary to produce a qualified computer scientist. Additionally, the constant changes in the discipline demand an ever-changing and updating curriculum. So, it is understandably difficult to find where and how the topic of reverse software engineering can fit within the curriculum; however, it has also become clear that it is a necessary inclusion.

This paper will document a long-term study of the effectiveness of using a reverse engineering project in an introductory computer systems course. We will report on the development of a series of class exercises that are inserted incrementally into a course. This will lead students to a deeper understanding of computer systems, the continuing need for low-level understanding of software, and the development of critical thinking and problem-solving skills in the discernment and analysis of an unknown binary file.

Fry, C. C., & Steudel, Z. M., & Hunter, J. C. (2021, July), Reverse Software Engineering as a Project-Based Learning Tool Paper presented at 2021 ASEE Virtual Annual Conference Content Access, Virtual Conference. 10.18260/1-2--37681

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: © 2021 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