Software Resurrection: Discovering Programming Pearls by Showing Modernity to Historical Software
Abstract Reading computer program code and documentation written by others is, we are told, one of the best ways to learn the art of writing readable, intelligible and maintainable code and documentation. This talk introduces the concept of software resurrection [1] as a tool for learning from program code and documentation that are remote in time (e.g. 20 years old) and space (e.g. unfamiliar algorithms and tools). The software resurrection exercise requires a motivated learner to compile and test a historical software release version of a well maintained and widely adopted open source software on a modern hardware and software platform. The learner develops fixes for the issues encountered during compilation and testing of the software on a modern platform that could not have been foreseen at the time of its release. The exercise concludes by writing a critique which provides an opportunity to critically reflect on the experience of maintaining the historical software. An illustrative example of this exercise pursued on a version of the SQLite database engine [2] released 20 years ago shows that software engineering principles (or, programming pearls) emerge during the reflective learning cycle of the software resurrection exercise. The concept of software resurrection is similar to the "Learning by doing" methodology which is based on the experiential learning theory [3]. Engaging with program code and documentation that are remote in time or space helps learners actively explore the experience of software maintenance. These experiences reveal the factors that contribute to readability, intelligibility and maintainability of program code and documentation. References Software Resurrection: Discovering Programming Pearls by Showing Modernity to Historical Software, 2023 IEEE/ACM 45th International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET), Melbourne, Australia, 2023, pp. 101-106, doi: 10.1109/ICSE-SEET58685.2023.00016. (pdf, slides, video) Sqlite: past, present, and future. Proceedings of the VLDB Endowment 15, no. 12 (2022), doi. Experiential learning. In Wikipedia. https://en.wikipedia.org/wiki/Experiential_learning
Institutions
- University of Oxford (GB)
Publication Details
- Journal
- Zenodo (CERN European Organization for Nuclear Research)
- Published
- 2024-10-16
- DOI
- https://doi.org/10.5281/zenodo.13942687
- Primary Topic
- Spaceflight effects on biology
- Type
- article
- Field-Weighted Citation Impact
- 0.00