Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Max Goldman

dblp:42/4768 · DBLP profile ↗
← Back
9ranked-venue papers
5as first author
1since 2021 · last 2021
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Human-computer interaction and ubiquitous computing · 4 · 2 first-author · 1 since 2021Artificial intelligence and machine learning · 2Systems, architecture and hardware · 2Software engineering, systems software and programming languages · 2 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 2Theory of computation · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Human-computer interaction and pervasive computing
3 papers
Collaborative and social computing · 100%
Software engineering, system software, and programming languages
3 papers
Debugging and program repair · 41% Programming languages and type systems · 36% Software maintenance and evolution · 12%

Topics — the 4 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Collaborative and social computing
human computation
0.112010
TurKit: human computation algorithms on mechanical turk · UIST 2010
Collaborative and social computing › computer-supported cooperative work › developer collaboration
pair programming
0.112010
Test-driven roles for pair programming · ICSE (2) 2010
Software maintenance and evolution › software configuration management
version control
0.012011
Real-time collaborative coding in a web IDE · UIST 2011
Software testing
test-driven development
0.012010
Test-driven roles for pair programming · ICSE (2) 2010

Methods — techniques the papers use, named apart from their topics

error-mediated integration · 0.2continuous synchronization · 0.2crash-and-rerun programming model · 0.2
YearPublicationVenuePosition
2021 Snapdown: A Text-Based Snapshot Diagram Language for Programming Education
abstract
Snapshot diagrams, which visualize in-memory program state, are frequently used in programming education to demonstrate new concepts and help students develop a better understanding of program functionality. In this paper we introduce Snapdown, a textual language for drawing snapshot diagrams, designed for use by both students and instructors of programming courses. Snapdown is designed with an emphasis on learnability and simplicity: both to be picked up by students in a classroom setting in a matter of minutes, and to enable creation and maintenance of diagrams in instructional content with minimal overhead. We introduce several use cases of Snapdown and describe the design and features of its textual language. We also describe a deployment of Snapdown during two semesters of emergency remote teaching in 6.031 Software Construction at MIT, a software engineering course intended for sophomore- and junior-level undergraduate students.
Daniel Whatley, Max Goldman, Rob Miller 0001
VL/HCC2
2018 Glanceable code history: visualizing student code for better instructor feedback
abstract
Immediate, individualized feedback on their code helps students learning to program. However, even in short, focused exercises in active learning, teachers do not have much time to write feedback. In addition, only looking at a student's final code hides a lot of the students' learning and discovering process. We created a glanceable code history visualization that enables teachers to view a student's entire coding history quickly and efficiently. A preliminary user study shows that this visualization captures previously unseen information that allows teachers to give students better grades and give students longer feedback and better feedback that focuses not just on their final code, but all their code in between.
Caitlin Cassidy, Max Goldman, Rob Miller 0001
L@S2
2014 Java tutor: bootstrapping with python to learn Java
abstract
A common pattern among undergraduate computer science curriculums is to teach an introductory subject in Python followed by a more advanced software engineering subject in Java. We are building an online tool that will help students who already know Python learn the syntax and semantics of Java. Our system will differ from existing online tutors and tools for learning Java in two main aspects. First, our tutor will focus on the transition from Python to Java. Using this basis will allow us to gloss over basic concepts of programming which students are already familiar with and focus on the specifics of Java. Second, our tutor will crowdsource writing test cases for problems to the learners themselves. This will give students practice writing tests, and will also reduce the burden on instructors, who would otherwise need to implement test suites for every problem in the tutor.
Casey O'Brien, Max Goldman, Rob Miller 0001
L@S2
2011 Real-time collaborative coding in a web IDE
abstract
This paper describes Collabode, a web-based Java integrated development environment designed to support close, synchronous collaboration between programmers. We examine the problem of collaborative coding in the face of program compilation errors introduced by other users which make collaboration more difficult, and describe an algorithm for error-mediated integration of program code. Concurrent editors see the text of changes made by collaborators, but the errors reported in their view are based only on their own changes. Editors may run the program at any time, using only error-free edits supplied so far, and ignoring incomplete or otherwise error-generating changes. We evaluate this algorithm and interface on recorded data from previous pilot experiments with Collabode, and via a user study with student and professional programmers. We conclude that it offers appreciable benefits over naive continuous synchronization without regard to errors and over manual version control.
Max Goldman, Greg Little, Rob Miller 0001
UIST1
2010 Test-driven roles for pair programming
abstract
Pair programming is the practice of having two programmers work together on the same code in a single development environment. The goals of pair programming are to improve communication and the sharing of knowledge within a team; to increase productivity; to improve developer process and help team members stay productive; and ultimately to strengthen the quality of the resulting software [1].
Max Goldman
ICSE (2)1
2010 TurKit: human computation algorithms on mechanical turk
abstract
Mechanical Turk (MTurk) provides an on-demand source of human computation. This provides a tremendous opportunity to explore algorithms which incorporate human computation as a function call. However, various systems challenges make this difficult in practice, and most uses of MTurk post large numbers of independent tasks. TurKit is a toolkit for prototyping and exploring algorithmic human computation, while maintaining a straight-forward imperative programming style. We present the crash-and-rerun programming model that makes TurKit possible, along with a variety of applications for human computation algorithms. We also present case studies of TurKit used for real experiments across different fields.
Greg Little, Lydia B. Chilton, Max Goldman, Rob Miller 0001
UIST3
2010 MAVEN: modular aspect verification and interference analysis
Max Goldman, Emilia Katz, Shmuel Katz
Formal Methods Syst. Des.1
2008 Codetrail: Connecting source code and web resources
abstract
When faced with the need for documentation, examples, bug fixes, error descriptions, code snippets, workarounds, templates, patterns, or advice, software developers frequently turn to their Web browser. Web resources both organized and authoritative as well as informal and community-driven are heavily used by developers. The time and attention devoted to finding (or re-finding) and navigating these sites is significant. We present Codetrail, a system that demonstrates how the developerpsilas use of Web resources can be improved by connecting the Eclipse IDE and the Firefox Web browser. Codetrail uses a communication channel and shared data model between these applications to implement a variety of integrative tools. By combining information previously available only to the IDE or the Web browser alone (such as editing history, code contents, and recent browsing), Codetrail can automate previously manual tasks and enable new interactions that exploit the marriage of data and functionality from Firefox and Eclipse. Just as the IDE will change the contents of peripheral views to focus on the particular code or task with which the developer is engaged, so, too, the web browser can be focused on the developerpsilas current context and task.
Max Goldman, Rob Miller 0001
VL/HCC1
2007 MAVEN: Modular Aspect Verification
Max Goldman, Shmuel Katz
TACAS1