Live briefing
Everything about Pair programming
Collaborative method for developing software
Pair programming is a software development method in which two computer programmers work together at one workstation. One, the driver, writes source code while the other, the observer or navigator, reviews each line of code as it is typed in. The two programmers switch roles often. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Pair programmingA 5-minute orientation
- Skim a recent paper: GitHub Copilot AI pair programmer: Asset or Liability?Influential work since 2022
- Pick up a classic book: Statistical ArbitrageThe most-reprinted book on the subject
- Read the landmark paper: Strengthening the case for pair programmingCited 496 times
- Go sideways: Team programmingA closely related topic
- Go sideways: Extreme programming practicesA closely related topic
📖 Definitions
Noun A software development technique, part of extreme programming, in which two programmers work together at a single keyboard, one coding while the other observes and reviews. The roles are often switched at regular intervals.
🏆 Landmark papers (most cited)
Strengthening the case for pair programming
The effectiveness of pair programming: A meta-analysis
Pair-programming helps female computer science students
Pair programming in education: a literature review
The impact of AI-assisted pair programming on student motivation, programming anxiety, collaborative learning, and programming performance: a comparative study with traditional pair programming and individual approaches
Improving the CS1 experience with pair programming
Effects of Personality on Pair Programming
A Meta-Analysis of Pair-Programming in Computer Programming Courses
🆕 Influential since 2022
GitHub Copilot AI pair programmer: Asset or Liability?
Multimodal learning analytics of collaborative patterns during pair programming in higher education
Designing PairBuddy—A Conversational Agent for Pair Programming
Empirical research on pair programming in higher education: a literature review
Collaborative dialogue patterns of pair programming and their impact on programming self‐efficacy and coding performance
📚 Books worth reading
Statistical ArbitrageAndrew Pole · 2007
Z80 assembly language programmingLance A. Leventhal · 1979
Mastering the Commodore 64Mark Greenshields · 1983- 📕Megateaching and learningC. Van Nagel · 1985
- 📕Tiḳshoret ʻim ha-tat-mudaʻDafnah Reṭer · 1998
The 8080/Z-80 assembly languageAlan R. Miller · 1981
Mega-teaching and learningC. Van Nagel · 1993- 📕Principles for programing learning materials in self-instructional devices for mentally-retarded childrenLawrence M Stolurow · 1966
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Team programming In software engineering, team programming is a project management strategy for coordinating task distribution in computer software development projects…
- Extreme programming practices Extreme programming (XP) is an agile software development methodology used to implement software systems. This article details the practices used in this…
- Software bug A software bug is a defect (bug) in computer software. A computer program with many or serious bugs may be described as buggy. The effects of a software…
- Extreme programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements…
- Test-driven development Test-driven development (TDD) is a way to write source code that involves writing an automated unit-level test case that fails, then writing just enough…
- Example-centric programming Example-centric programming is an approach to software development that helps the user to create software by locating and modifying small examples into…
- Open-source software development Open-source software development (OSSD) is the process by which open-source software, or similar software whose source code is publicly available, is developed…
- Cowboy coding Cowboy coding is software development where programmers have autonomy over the development process. This includes control of the project's schedule, languages…