Sam Wong
← Publications

UIST · 2023 · San Francisco, CA, USA

VizPI

Running peer instruction on live coding exercises, with a real-time view of every discussion group in a large lecture.

VizPI: A Real-Time Visualization Tool for Enhancing Peer Instruction in Large-Scale Programming Lectures

Xiaohang Tang, Xi Chen, Sam Wong, Yan Chen

PDFACM DLarXivDemoVideo
Figure 1The instructor view (green) and student view (blue). Instructors see class-wide keywords, common code issues and unit-test pass rates, plus every group's progress; students code and chat with their assigned group.
TL;DR

Peer instruction works well in programming classes, but in a lecture with hundreds of students, instructors can't tell which groups are engaged, what they're discussing, or whether it's helping. VizPI is a web tool for running peer instruction on in-class coding exercises. It shows each group's unit-test pass rate and conversation relevance in real time, summarizes discussion keywords and common code issues, and links every chat message to the code the student had at that moment.

Read the paper's abstract

Peer instruction (PI) has shown signifcant potential in facilitating student engagement and collaborative learning. However, the im- plementation of PI for large-scale programming lectures has proven challenging due to difculties in monitoring student engagement, discussion topics, and code changes. This paper introduces VizPI, an interactive web tool that enables instructors to conduct, mon- itor, and assess PI for programming exercises in real-time. With features that visualize the progress of student discussions and code submissions, VizPI allows for more efective oversight of PI activi- ties and the provision of personalized feedback at scale. Our work aims to transform the pedagogical approach to PI in programming education, making it more engaging and adaptable to student needs.

Key contributions

01

What instructors need to run peer instruction at scale

Needfinding interviews with three instructors of introductory programming courses pointed to three needs: seeing the main challenges groups discuss, showing exemplary student work to the whole class, and pairing the tool with a deliberate teaching strategy.

02

VizPI, a real-time peer-instruction tool

An instructor and student interface that covers the whole peer-instruction cycle: posting a coding task with unit tests, solo coding, grouping students, and monitored group discussion.

03

Discussion linked to code

Class- and group-level summaries of discussion keywords and code issues, per-group rings for pass rate and conversation relevance, and a snapshot of each student's code at the moment they send a message.

§ I

The problem

Peer InstructionAn instructional strategy developed by Eric Mazur: students answer a question on their own, discuss it with peers, then answer again. was first used in physics lectures with multiple-choice questions. Students vote individually, discuss with their neighbors, then vote again. In computing courses, students overwhelmingly say it helps them learn, and instructors get a clearer picture of where students struggle.

Programming instructors have started running peer instruction on small in-class coding exercisesShort programming problems that students solve during a lecture or lab, rather than as homework. instead of multiple-choice questions. Online tools let students share code and solve problems with peers beyond the person sitting next to them.

But once the discussion moves online, the instructor loses sight of it. In an introductory class of hundreds of students, it's hard to tell:

  • whether groups are actually engaged in discussion,
  • what they're talking about, and
  • whether the discussion is relevant to the exercise.

So our question was how to help instructors monitor peer discussion on coding exercises in large programming lectures.

§ II

Needfinding

We held informal interviews with 3 instructors who teach introductory programming. Three needs shaped the design:

  1. The big picture. Instructors wanted to understand and talk about how groups were doing overall, especially the main conceptual, coding and logic challenges students were discussing.
  2. Student work on the big screen. They wanted to project exemplary student responses for a class-wide discussion, so students share the examples, not just the instructor.
  3. Pedagogy, not just a tool. They saw the most potential when the tool is paired with a well-designed teaching strategy for the classroom.
§ III

How VizPI works

VizPI has an instructor view and a student view. Each is split into a top bar, a group list, a chat and a code editor.

Figure 1aInstructor view: (A) switch between Task, Class Info and Group Info; (B) discussion keywords; (C) common code issues; (D) class pass rate on the instructor's unit tests; (E) group list; (F) a group's chat; (G) that student's code; (H–J) controls for chat, grouping and replay.

A session follows the steps of peer instruction.

1. Post a task and let students work alone

The instructor enters a task description and the unit testsSmall automated checks that run a student's code against expected inputs and outputs. to grade solutions against. Students see the task right away and start coding. The instructor can switch chat off so everyone works on their own first. As students run their code, the instructor sees the pass rate for the whole class and for each unit test.

2. Share results and open discussion

After the first attempt, the instructor can share the initial results and give some early feedback. Then they group students into pairs or trios with a balance of expertise and switch chat on. For the rest of the exercise, groups discuss and work on the code together, and the instructor can watch at two levels.

Figure 1B–DKeywords from all group conversations, code-issue cards with the share of students affected, and the class pass rate per unit test.
  • Keywords summarize the main themes across every group's messages. Clicking a keyword filters to the groups that mentioned it.
  • Code issues show common errors in student submissions as cards, each with the percentage of students making the mistake and a summary of the error.
  • Pass rate shows how the class is doing on each unit test.

The same panels can be switched to a single group's data.

Go deeperInstructor controls

The bottom of the instructor view has the controls that drive a session: switch the chat on or off (H), form groups (I), and replay a group's discussion (J).

§ IV

VizPI today

The poster describes an early prototype. VizPI has since grown into a platform at vizpi.org (short for "visualizing peer interactions") for in-class coding exercises built around peer interaction.

543Class sessions runas reported on vizpi.org
10,759Students in VizPI sessions
3,468Groups formed in live classes

The platform now has four exercise types:

  • Auto Grouping forms groups for peer instruction and group discussion.
  • Audio Discussion transcribes live discussions and gives AI-generated insights into how each conversation is going.
  • Helper/Helpee lets students who have finished the task help struggling peers through chat.
  • Vizmental gives each student a personal AI assistant that guides and encourages them while they code.
VizPI platform introduction
§ V

What came next

The poster listed three directions for future work:

  1. Better grouping. Form groups using students' pass rates and personality traits.
  2. Better language models. Pull out key discussion points more accurately, guided by instructor feedback.
  3. Feedback at different levels. Let instructors give feedback to the class, a group or an individual during peer instruction.

Later projects picked these up. VizGroup (UIST 2024) uses LLMs to suggest which collaboration patterns to watch and alerts instructors when they appear. A study in a large CS1 course compared random and expertise-balanced grouping (SIGCSE 2025).

§ VI

Takeaways

  • Peer instruction on code needs its own tools. Once discussion moves online and the class grows to hundreds, instructors need a view of every group, not just the room.
  • Show both progress and discussion. Pairing each group's pass rate with conversation relevance shows instructors which groups are close to the answer.
  • Link chat to code. A snapshot of the code at each message tells the instructor what the student was looking at when they said it.
§ VII

Cite this paper

@inproceedings{tang2023vizpi,
  author    = {Tang, Xiaohang and Chen, Xi and Wong, Sam and Chen, Yan},
  title     = {VizPI: A Real-Time Visualization Tool for Enhancing Peer Instruction in Large-Scale Programming Lectures},
  booktitle = {Adjunct Proceedings of the 36th Annual ACM Symposium on User Interface Software and Technology},
  series    = {UIST '23 Adjunct},
  year      = {2023},
  location  = {San Francisco, CA, USA},
  publisher = {Association for Computing Machinery},
  doi       = {10.1145/3586182.3616632}
}