[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3330430.3333627acmotherconferencesArticle/Chapter ViewAbstractPublication Pagesl-at-sConference Proceedingsconference-collections
research-article
Open access

Improv: Teaching Programming at Scale via Live Coding

Published: 24 June 2019 Publication History

Abstract

Computer programming instructors frequently perform live coding in settings ranging from MOOC lecture videos to online livestreams. However, there is little tool support for this mode of teaching, so presenters must now either screen-share or use generic slideshow software. To overcome the limitations of these formats, we propose that programming environments should directly facilitate live coding for education. We prototyped this idea by creating Improv, an IDE extension for preparing and delivering code-based presentations informed by Mayer's principles of multimedia learning. Improv lets instructors synchronize blocks of code and output with slides and create preset waypoints to guide their presentations. A case study on 30 educational videos containing 28 hours of live coding showed that Improv was versatile enough to replicate approximately 96% of the content within those videos. In addition, a preliminary user study on four teaching assistants showed that Improv was expressive enough to allow them to make their own custom presentations in a variety of styles and improvise by live coding in response to simulated audience questions. Users mentioned that Improv lowered cognitive load by minimizing context switching and made it easier to fix errors on-the-fly than using slide-based presentations.

References

[1]
2018. Ableton: Music production with Live and Push. https://www.ableton.com/en/. (2018).
[2]
2018. Atom IDE. https://ide.atom.io/. (2018).
[3]
2018. AWS Cloud9: A cloud IDE for writing, running, and debugging code. https://aws.amazon.com/cloud9/?origin=c9io. (2018).
[4]
2018. Meteor: Build Apps with JavaScript. https://www.meteor.com/. (2018).
[5]
2018. Oculus Rift - Oculus. https://www.oculus.com/rift/. (2018).
[6]
2018. Open Broadcaster Software. https://obsproject.com/. (2018).
[7]
2018. reveal.js - The HTML Presentation Framework. https://revealjs.com/. (2018).
[8]
2018. Visual Studio Live Share: Real-time collaborative development. https://code.visualstudio.com/visual-studio-live-share. (2018).
[9]
2018. Waypoint (Wikipedia). https://en.wikipedia.org/wiki/Waypoint. (2018).
[10]
2018. Wireshark - Go Deep. https://www.wireshark.org/. (2018).
[11]
Damian Avila. 2017. RISE: Reveal.js - Jupyter/IPython Slideshow Extension. https://damianavila.github.io/RISE/index.html. (2017).
[12]
Lecia J. Barker, Kathy Garvin-Doxas, and Eric Roberts. 2005. What Can Computer Science Learn from a Fine Arts Approach to Teaching?. In Proceedings of the 36th SIGCSE Technical Symposium on Computer Science Education (SIGCSE '05). ACM, New York, NY, USA, 421--425.
[13]
Benjamin B. Bederson and James D. Hollan. 1994. Pad++: A Zooming Graphical Interface for Exploring Alternate Interface Physics. In Proceedings of the 7th Annual ACM Symposium on User Interface Software and Technology (UIST '94). ACM, New York, NY, USA, 17--26.
[14]
Richard Catrambone. 1998. The Subgoal Learning Model: Creating Better Examples so That Students Can Solve Novel Problems. 127 (12 1998), 355--376.
[15]
Pei-Yu Chi, Bongshin Lee, and Steven M. Drucker. 2014. DemoWiz: Re-performing Software Demonstrations for a Live Presentation. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '14). ACM, New York, NY, USA, 1581--1590.
[16]
Darren Edge, Sumit Gulwani, Natasa Milic-Frayling, Mohammad Raza, Reza Adhitya Saputra, Chao Wang, and Koji Yatani. 2015. Mixed-Initiative Approaches to Global Editing in Slideware. In Proceedings of the 33rd Annual ACM Conference on Human Factors in Computing Systems (CHI '15). ACM, New York, NY, USA, 3503--3512.
[17]
Darren Edge, Joan Savage, and Koji Yatani. 2013. HyperSlides: Dynamic Presentation Prototyping. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '13). ACM, New York, NY, USA, 671--680.
[18]
Alessio Gaspar and Sarah Langevin. 2007. Restoring "Coding with Intention" in Introductory Programming Courses. In Proceedings of the 8th ACM SIGITE Conference on Information Technology Education (SIGITE '07). ACM, New York, NY, USA, 91--98.
[19]
Lance Good and Benjamin B. Bederson. 2002. Zoomable User Interfaces As a Medium for Slide Show Presentations. Information Visualization 1, 1 (March 2002), 35--49.
[20]
Philip J. Guo, Jeffery White, and Renan Zanelatto. 2015. Codechella: Multi-user program visualizations for real-time tutoring and collaborative learning. In Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (VL/HCC '15). 79--87.
[21]
Suz Hinton. 2017. Lessons from my first year of live coding on Twitch. https://medium.freecodecamp.org/lessons-from-my-first-year-of-live-coding-on-twitch-41a32e2f41c1. (2017).
[22]
Thomas Kluyver, Benjamin Ragan-Kelley, Fernando Pérez, Brian Granger, Matthias Bussonnier, Jonathan Frederic, Kyle Kelley, Jessica Hamrick, Jason Grout, Sylvain Corlay, Paul Ivanov, Damián Avila, Safia Abdalla, and Carol Willing. 2016. Jupyter Notebooks - a publishing format for reproducible computational workflows. In Positioning and Power in Academic Publishing: Players, Agents and Agendas, F. Loizides and B. Schmidt (Eds.). IOS Press, 87--90.
[23]
Leonhard Lichtschlag, Thorsten Karrer, and Jan Borchers. 2009. Fly: A Tool to Author Planar Presentations. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '09). ACM, New York, NY, USA, 547--556.
[24]
Lauren E. Margulieux, Mark Guzdial, and Richard Catrambone. 2012. Subgoal-labeled Instructional Material Improves Performance and Transfer in Learning to Develop Mobile Applications. In Proceedings of the Ninth Annual International Conference on International Computing Education Research (ICER '12). ACM, New York, NY, USA, 71--78.
[25]
Richard E. Mayer. 2009. Multimedia Learning (2nd ed.). Cambridge University Press, New York, NY, USA.
[26]
Alok Mysore and Philip J. Guo. 2017. Torta: Generating Mixed-Media GUI and Command-Line App Tutorials Using Operating-System-Wide Activity Tracing. In Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology (UIST '17). ACM, New York, NY, USA, 703--714.
[27]
John Paxton. 2002. Live Programming As a Lecture Technique. J. Comput. Sci. Coll. 18, 2 (Dec. 2002), 51--56.
[28]
Larissa Pschetz, Koji Yatani, and Darren Edge. 2014. TurningPoint: Narrative-driven Presentation Planning. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '14). ACM, New York, NY, USA, 1591--1594.
[29]
Roman Rädle, Midas Nouwens, Kristian Antonsen, James R. Eagan, and Clemens N. Klokmose. 2017. Codestrates: Literate Computing with Webstrates. In Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology (UIST '17). ACM, New York, NY, USA, 715--725.
[30]
Adalbert Gerald Soosai Raj, Jignesh M. Patel, Richard Halverson, and Erica Rosenfeld Halverson. 2018. Role of Live-coding in Learning Introductory Programming. In Proceedings of the 18th Koli Calling International Conference on Computing Education Research (Koli Calling '18). ACM, New York, NY, USA, Article 13, 8 pages.
[31]
Scott Rosenberg. 2015. The Strange Appeal of Watching Coders Code. Backchannel: WIRED https://www.wired.com/2015/08/the-strange-appeal-of-watching-coders-code/. (2015).
[32]
Marc J. Rubin. 2013. The Effectiveness of Live-coding to Teach Introductory Programming. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education (SIGCSE '13). ACM, New York, NY, USA, 651--656.
[33]
Jeremy Warner and Philip J. Guo. 2017. CodePilot: Scaffolding End-to-End Collaborative Software Development for Novice Programmers. In Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems (CHI '17). ACM, New York, NY, USA, 1136--1141.
[34]
Sarah Weir, Juho Kim, Krzysztof Z. Gajos, and Robert C. Miller. 2015. Learnersourcing Subgoal Labels for How-to Videos. In Proceedings of the 18th ACM Conference on Computer Supported Cooperative Work & Social Computing (CSCW '15). ACM, New York, NY, USA, 405--416.
[35]
Greg Wilson. 2018. How to Teach Programming (and Other Things): Live Coding. http://third-bit.com/teaching/live.html. (2018).

Cited By

View all
  • (2024)Scalable Feedback for Student Live Coding in Large Courses Using Automatic Error GroupingProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 110.1145/3649217.3653620(499-505)Online publication date: 3-Jul-2024
  • (2024)Understanding and Supporting Code PerformancesProceedings of the 16th Conference on Creativity & Cognition10.1145/3635636.3664623(21-24)Online publication date: 23-Jun-2024
  • (2024)Daniel Manesh: Supporting Code Performances2024 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC60511.2024.00060(389-391)Online publication date: 2-Sep-2024
  • Show More Cited By
  1. Improv: Teaching Programming at Scale via Live Coding

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    L@S '19: Proceedings of the Sixth (2019) ACM Conference on Learning @ Scale
    June 2019
    386 pages
    ISBN:9781450368049
    DOI:10.1145/3330430
    Permission to make digital or hard copies of all or part 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 components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 24 June 2019

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Conference

    L@S '19

    Acceptance Rates

    L@S '19 Paper Acceptance Rate 24 of 70 submissions, 34%;
    Overall Acceptance Rate 117 of 440 submissions, 27%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

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

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Scalable Feedback for Student Live Coding in Large Courses Using Automatic Error GroupingProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 110.1145/3649217.3653620(499-505)Online publication date: 3-Jul-2024
    • (2024)Understanding and Supporting Code PerformancesProceedings of the 16th Conference on Creativity & Cognition10.1145/3635636.3664623(21-24)Online publication date: 23-Jun-2024
    • (2024)Daniel Manesh: Supporting Code Performances2024 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC60511.2024.00060(389-391)Online publication date: 2-Sep-2024
    • (2023)Colaroid: A Literate Programming Approach for Authoring Explorable Multi-Stage TutorialsProceedings of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544548.3581525(1-22)Online publication date: 19-Apr-2023
    • (2023)VizProg: Identifying Misunderstandings By Visualizing Students’ Coding ProgressProceedings of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544548.3581516(1-16)Online publication date: 19-Apr-2023
    • (2023)MOON: Assisting Students in Completing Educational Notebook Scenarios2023 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL-HCC57772.2023.00026(157-167)Online publication date: 3-Oct-2023
    • (2023)VID2XML: Automatic Extraction of a Complete XML Data From Mobile Programming ScreencastsIEEE Transactions on Software Engineering10.1109/TSE.2022.318889849:4(1726-1740)Online publication date: 1-Apr-2023
    • (2022)VID2META: Complementing Android Programming Screencasts with Code Elements and GUIsMathematics10.3390/math1017317510:17(3175)Online publication date: 3-Sep-2022
    • (2022)Integrating Real-Time and Non-Real-Time Collaborative ProgrammingProceedings of the ACM on Human-Computer Interaction10.1145/35675637:GROUP(1-19)Online publication date: 29-Dec-2022
    • (2022)Mobile-Friendly Content Design for MOOCs: Challenges, Requirements, and Design OpportunitiesProceedings of the 2022 CHI Conference on Human Factors in Computing Systems10.1145/3491102.3502054(1-16)Online publication date: 29-Apr-2022
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media