Reading to Write Code: An Experience Report of a Reverse Engineering and Modeling Course

Brooke Ryan, Adriana Meza Soria, Kaj Dreef and André van der Hoek

International Conference on Software Engineering: Software Engineering Education and Training, 2022
Brooke Ryan, Adriana Meza Soria, Kaj Dreef and André van der Hoek. 2022. Reading to Write Code: An Experience Report of a Reverse Engineering and Modeling Course. In 44nd International Conference on Software Engineering: Software Engineering Education and Training (ICSESEET ’22), May 21–29, 2022, Pittsburgh, PA, USA. ACM, New York, NY, USA, 12 pages. https://doi.org/10.1145/3510456.3514164
@inproceedings{ReadingWriteCodeExperienceReportRyan2022,
  title = {Reading to {{Write Code}}: {{An Experience Report}} of a {{Reverse Engineering}} and {{Modeling Course}}},
  author = {Ryan, Brooke and Soria, Adriana Meza and Dreef, Kaj and van der Hoek, André},
  booktitle = {44th International Conference on Software Engineering (ICSE ’22)},
  doi = {https://doi.org/10.1145/3510456.3514164},
  date = {2022},
  pages = {12},
  abstract = {A substantial portion of any software engineer’s job is reading code. Despite the criticality of this skill in a budding software engineer, reading code—and more specifically, techniques on how to read code when integrating oneself into a large existing software project—is often neglected in the typical software engineering education. As part of a new professional Master of Software Engineering at the University of California, Irvine, we designed and delivered a “reading to write code” course from the ground up. Titled Reverse Engineering and Modeling, the course introduces students to techniques they can use to become familiar with a large code base, so they are able to make meaningful contributions. In this paper, we briefly introduce the Master program and its underlying philosophy, articulate the course’s learning outcomes, present the design of the course, and provide a detailed reflection on our experiences in terms of what went well, what did not go well, what we do not know yet, and what our next steps are in preparing for the forthcoming incarnation of the course in Spring 2022. In so doing, we hope to provide a baseline together with lessons learned for others who may be interested in instituting a similar course at their institution.},
}

A substantial portion of any software engineer’s job is reading code. Despite the criticality of this skill in a budding software engineer, reading code—and more specifically, techniques on how to read code when integrating oneself into a large existing software project— is often neglected in the typical software engineering education. As part of a new professional Master of Software Engineering at the University of California, Irvine, we designed and delivered a “reading to write code” course from the ground up. Titled Reverse Engineering and Modeling, the course introduces students to techniques they can use to become familiar with a large code base, so they are able to make meaningful contributions. In this paper, we briefly introduce the Master program and its underlying philosophy, articulate the course’s learning outcomes, present the design of the course, and provide a detailed reflection on our experiences in terms of what went well, what did not go well, what we do not know yet, and what our next steps are in preparing for the forthcoming incarnation of the course in Spring 2022. In so doing, we hope to provide a baseline together with lessons learned for others who may be interested in instituting a similar course at their institution. Continue Reading →

Citation

Brooke Ryan, Adriana Meza Soria, Kaj Dreef and André van der Hoek. 2022. Reading to Write Code: An Experience Report of a Reverse Engineering and Modeling Course. In 44nd International Conference on Software Engineering: Software Engineering Education and Training (ICSESEET ’22), May 21–29, 2022, Pittsburgh, PA, USA. ACM, New York, NY, USA, 12 pages. https://doi.org/10.1145/3510456.3514164

BibTeX

@inproceedings{ReadingWriteCodeExperienceReportRyan2022,
  title = {Reading to {{Write Code}}: {{An Experience Report}} of a {{Reverse Engineering}} and {{Modeling Course}}},
  author = {Ryan, Brooke and Soria, Adriana Meza and Dreef, Kaj and van der Hoek, André},
  booktitle = {44th International Conference on Software Engineering (ICSE ’22)},
  doi = {https://doi.org/10.1145/3510456.3514164},
  date = {2022},
  pages = {12},
  abstract = {A substantial portion of any software engineer’s job is reading code. Despite the criticality of this skill in a budding software engineer, reading code—and more specifically, techniques on how to read code when integrating oneself into a large existing software project—is often neglected in the typical software engineering education. As part of a new professional Master of Software Engineering at the University of California, Irvine, we designed and delivered a “reading to write code” course from the ground up. Titled Reverse Engineering and Modeling, the course introduces students to techniques they can use to become familiar with a large code base, so they are able to make meaningful contributions. In this paper, we briefly introduce the Master program and its underlying philosophy, articulate the course’s learning outcomes, present the design of the course, and provide a detailed reflection on our experiences in terms of what went well, what did not go well, what we do not know yet, and what our next steps are in preparing for the forthcoming incarnation of the course in Spring 2022. In so doing, we hope to provide a baseline together with lessons learned for others who may be interested in instituting a similar course at their institution.},
}