Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3266037.3266098acmconferencesArticle/Chapter ViewAbstractPublication PagesuistConference Proceedingsconference-collections
poster

Post-literate Programming: Linking Discussion and Code in Software Development Teams

Published: 11 October 2018 Publication History

Abstract

The literate programming paradigm presents a program interleaved with natural language text explaining the code's rationale and logic. While this is great for program readers, the labor of creating literate programs deters most program authors from providing this text at authoring time. Instead, as we determine through interviews, developers provide their design rationales after the fact, in discussions with collaborators. We propose to capture these discussions and incorporate them into the code. We have prototyped a tool to link online discussion of code directly to the code it discusses. Incorporating these discussions incrementally creates post-literate programs that convey information to future developers.

References

[1]
Sushil Bajracharya, Trung Ngo, Erik Linstead, Yimeng Dou, Paul Rigor, Pierre Baldi, and Cristina Lopes. 2006. Sourcerer: a search engine for open source code supporting structure-based search. In Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications. ACM, 681--682.
[2]
Denise Che. 2014. Automatic documentation generation from source code. Ph.D. Dissertation. Massachusetts Institute of Technology, Cambridge, MA.
[3]
Yan Chen, Sang Won Lee, Yin Xie, YiWei Yang, Walter S. Lasecki, and Steve Oney. 2017. Codeon: On-demand software development assistance. In Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems. ACM, 6220--6231.
[4]
L. Dabbish, C. Stuart, J. Tsay, and J Herbsleb. 2012. Social coding in GitHub: transparency and collaboration in an open software repository. In Proceedings of the ACM 2012 conference on computer supported cooperative work. ACM, 1277--1286.
[5]
Uri Dekel and James D. Herbsleb. 2009. Improving API documentation usability with knowledge pushing. In Proceedings of the 31st International Conference on Software Engineering. IEEE Computer Society, 320--330.
[6]
Brian Eddy. 2014. Structured source retrieval for improving software search during program comprehension tasks. In Proceedings of the companion publication of the 2014 ACM SIGPLAN conference on Systems, Programming, and Applications: Software for Humanity. ACM, 13--15.
[7]
Emily Hill, Lori Pollock, and K. Vijay-Shanker. 2009. Automatically capturing source code context of nl-queries for software maintenance and reuse. In Proceedings of the 31st International Conference on Software Engineering. IEEE Computer Society, 232--242.
[8]
Peter Loffler Jarczyk, Alex PJ and Frank M. Shipmann. 1992. Design rationale for software engineering: a survey. In Proceedings of the Twenty-Fifth Hawaii International Conference. IEEE, 577--586.
[9]
Donald Ervin Knuth. 1984. Literate programming. Comput. J. 17, 2 (1984), 97--111.
[10]
Andrew J. Ko, Robert DeLine, and Gina Venolia. 2007. Information Needs in Collocated Software Development Teams. In Proceedings of the 29th international conference on Software Engineering. IEEE Computer Society, 344--353.
[11]
Mario Linares-VÃ Vasquez, Luis Fernando CortÃl's-Coy, Jairo Aponte, and Denys Poshyvanyk. 2015. Changescribe: A tool for automatically generating commit messages. In Proceedings of the 37th International Conference on Software Engineering. IEEE Press, 709--712.
[12]
Paul W. McBurney and Collin McMillan. 2014. Automatic documentation generation via source code summarization of method context. In Proceedings of the 22nd International Conference on Program Comprehension. ACM, 279--290.
[13]
Liming Nie, He Jiang, Zhilei Ren, Zeyi Sun, and Xiaochen Li. 2016. Query Expansion Based on Crowd Knowledge for Code Search. IEEE Trans. Services Computing 9, 5 (2016), 771--783.
[14]
Santanu Paul and Atul Prakash. 1994. A framework for source code search using program patterns. IEEE Transactions on Software Engineering 20, 6 (1994), 463--475.
[15]
Steven P Reiss. 2009. Semantics-based code search. In Proceedings of the 31st International Conference on Software Engineering. IEEE Computer Society, 243--253.
[16]
Ioana Rus, Mikael Lindvall, and S. Sinha. 2002. Knowledge management in software engineering. IEEE software 19, 3 (2002), 26--38.
[17]
Emily Hill Divya Muppaneni Lori Pollock Sridhara, Giriprasad and K. Vijay-Shanker. 2014. Towards automatically generating summary comments for java methods. In Proceedings of the IEEE/ACM international conference on Automated software engineering. ACM, 43--52.
[18]
Amy X. Zhang and Justin Cranshaw. 2018. Making sense of group chat through collaborative tagging and summarization. In Proceedings of the ACM Conference on Computer Supported Cooperative Work and Social Computing (CSCW). ACM.
[19]
Amy X. Zhang, Lea Verou, and David Karger. 2017. Wikum: Bridging discussion forums and wikis using recursive summarization. In Proceedings of the ACM 2012 conference on computer supported cooperative work. ACM, 2082--2096.
[20]
Joyce Zhu, Jeremy Warner, Mitchell Gordon, Jeffery White, Renan Zanelatto, and Philip J. Guo. 2015. Toward a Domain-Specific Visual Discussion Forum for Learning Computer Programming: An Empirical Study of a Popular MOOC Forum. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (2015), 101--109.

Cited By

View all
  • (2024)Meta-Manager: A Tool for Collecting and Exploring Meta Information about CodeProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642676(1-17)Online publication date: 11-May-2024
  • (2024)CoPrompt: Supporting Prompt Sharing and Referring in Collaborative Natural Language ProgrammingProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642212(1-21)Online publication date: 11-May-2024
  • (2023)Retrospector: Rapid collaborative reflection to improve collaborative practicesProceedings of the ACM on Human-Computer Interaction10.1145/36100847:CSCW2(1-20)Online publication date: 4-Oct-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
UIST '18 Adjunct: Adjunct Proceedings of the 31st Annual ACM Symposium on User Interface Software and Technology
October 2018
251 pages
ISBN:9781450359498
DOI:10.1145/3266037
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 October 2018

Check for updates

Author Tags

  1. group chat
  2. knowledge management
  3. software development

Qualifiers

  • Poster

Conference

UIST '18

Acceptance Rates

UIST '18 Adjunct Paper Acceptance Rate 80 of 375 submissions, 21%;
Overall Acceptance Rate 355 of 1,733 submissions, 20%

Upcoming Conference

UIST '25
The 38th Annual ACM Symposium on User Interface Software and Technology
September 28 - October 1, 2025
Busan , Republic of Korea

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)18
  • Downloads (Last 6 weeks)5
Reflects downloads up to 23 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Meta-Manager: A Tool for Collecting and Exploring Meta Information about CodeProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642676(1-17)Online publication date: 11-May-2024
  • (2024)CoPrompt: Supporting Prompt Sharing and Referring in Collaborative Natural Language ProgrammingProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642212(1-21)Online publication date: 11-May-2024
  • (2023)Retrospector: Rapid collaborative reflection to improve collaborative practicesProceedings of the ACM on Human-Computer Interaction10.1145/36100847:CSCW2(1-20)Online publication date: 4-Oct-2023
  • (2023)Understanding Version Control as Material Interaction with QuickposeProceedings of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544548.3581394(1-18)Online publication date: 19-Apr-2023
  • (2022)Documentation Matters: Human-Centered AI System to Assist Data Science Code Documentation in Computational NotebooksACM Transactions on Computer-Human Interaction10.1145/348946529:2(1-33)Online publication date: 16-Jan-2022
  • (2021)Think-Aloud Computing: Supporting Rich and Low-Effort Knowledge CaptureProceedings of the 2021 CHI Conference on Human Factors in Computing Systems10.1145/3411764.3445066(1-13)Online publication date: 6-May-2021
  • (2020)How do Data Science Workers Collaborate? Roles, Workflows, and ToolsProceedings of the ACM on Human-Computer Interaction10.1145/33928264:CSCW1(1-23)Online publication date: 29-May-2020
  • (2020)Callisto: Capturing the "Why" by Connecting Conversations with Computational NarrativesProceedings of the 2020 CHI Conference on Human Factors in Computing Systems10.1145/3313831.3376740(1-13)Online publication date: 21-Apr-2020
  • (2019)Unakite: Scaffolding Developers' Decision-Making Using the WebProceedings of the 32nd Annual ACM Symposium on User Interface Software and Technology10.1145/3332165.3347908(67-80)Online publication date: 17-Oct-2019

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media