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.
No takes yet. Share an insight, caveat, or question.
Fry et al. (2024) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: