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

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
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Software Resurrection: Discovering Programming Pearls by Showing Modernity to Historical Software

Zenodo (CERN European Organization for Nuclear Research)
Spaceflight effects on biology
article

Software Resurrection: Discovering Programming Pearls by Showing Modernity to Historical Software

article en

Abstract

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

Zenodo (CERN European Organization for Nuclear Research)
University of Oxford (GB)
Quality Education
Openalex Percentile: Top 54%
Spaceflight effects on biology
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Software Resurrection: Discovering Programming Pearls by Showing Modernity to Historical Software · Zenodo (CERN European Organization for Nuclear Research) (2024) | TGRS Research Map | TGRS