Demo Data from EDBT 2026 / reviewers in the wild / expert
John Clements
dblp:40/5848
· DBLP profile ↗
16ranked-venue papers
6as first author
2since 2021 · last 2022
0000-0003-3030-8076ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 4 first-authorHuman-computer interaction and ubiquitous computing · 7 · 2 first-author · 2 since 2021Artificial intelligence and machine learning · 1 · 1 first-authorSecurity and privacy · 1Databases, data management, data science and information retrieval · 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.
| Software engineering, system software, and programming languages
3 papers |
Programming languages and type systems · 73% Compilers and program optimization · 15% Program verification · 12% | |
| Interdisciplinary, comprehensive, and emerging computing
1 paper |
Computing education · 100% | |
| Network and information security
1 paper |
Systems and software security · 100% |
Topics — the 9 heaviest of 10, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Computing education
programming education |
0.2 | 1 | 2013 | An evaluation of interactive test-driven labs with WebIDE in CS0 · ICSE 2013 |
Programming languages and type systems › language semantics
formal semantics |
0.1 | 1 | 2012 | Run your research: on the effectiveness of lightweight mechanization · POPL 2012 |
Computing education › programming education
introductory programming |
0.0 | 1 | 2013 | An evaluation of interactive test-driven labs with WebIDE in CS0 · ICSE 2013 |
Systems and software security › language-based security
stack inspection |
0.0 | 1 | 2004 | A tail-recursive machine with stack inspection · ACM Trans. Program. Lang. Syst. 2004 |
Programming languages and type systems › language implementation
abstract machines |
0.0 | 1 | 2004 | A tail-recursive machine with stack inspection · ACM Trans. Program. Lang. Syst. 2004 |
Compilers and program optimization › compiler optimization › control flow optimization
tail call optimization |
0.0 | 1 | 2004 | A tail-recursive machine with stack inspection · ACM Trans. Program. Lang. Syst. 2004 |
Programming languages and type systems
language-based security |
0.0 | 1 | 2001 | Termination in Language-based Systems · NDSS 2001 |
Program verification
termination analysis |
0.0 | 1 | 2001 | Termination in Language-based Systems · NDSS 2001 |
Programming languages and type systems
language semantics |
0.0 | 1 | 2004 | A tail-recursive machine with stack inspection · ACM Trans. Program. Lang. Syst. 2004 |
Methods — techniques the papers use, named apart from their topics
controlled experiment · 0.2automated evaluator · 0.2proof assistant · 0.1tail call optimization · 0.1abstract machine · 0.1type system · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Towards a Notional Machine for Runtime Stacks and Scope: When Stacks Don't Stack UpabstractBackground and Context. John Clements, Shriram Krishnamurthi |
ICER (1) | 1 |
| 2021 | Before You Write Code ... Putting Data and Ethics at the Center of Introductory ComputingabstractComputing is a large and growing presence in society in 2020, and like many others, we see a strong demand from non-computing majors for "CS For All" courses. Unlike many others, we do not feel that putting traditional programming first is the best way to do this. Instead, we are rethinking the way we introduce computing to allow a broad audience to engage with this discipline. Zach Rentz, John Clements, Zoë J. Wood, Aaron W. Keen |
SIGCSE | 2 |
| 2018 | Mixed Approaches to CS0: Exploring Topic and Pedagogy Variance after Six Years of CS0abstractSince 2010, the Cal Poly Computer Science Department has required computing majors to select from a variety of CS0 courses to start their academic year. The broad objective of the course is to attract and retain undergraduates that have no prior experience in CS by using authentic problems that demonstrate the relevance and highlight the role of computers in solving "real world" problems. The course is offered in a variety of thematic "flavors" that leverage a student's pre-existing interests (e.g. in music or art), but all share the common goals of introducing students to the basics of programming, teamwork, and college-level study. While there is overlap in overall goals, the courses vary drastically in topic matter (e.g. robotics, gaming, music, computational art, mobile apps, security) and in pedagogical approach (e.g. principles of design, project-based student driven learning, and traditional topic-based programming modules). The introduction of this CS0 course has increased students' commitment to their major and success in follow-on classes. We present these successes and show that student GPAs in a follow-on object oriented programming course do not vary significantly for the differing subtopics and teaching pedagogies employed in the various flavors. Our report includes examining two student subgroups (those experienced with programming and those new to programming). Our evaluations suggest that the existence and goal of the course matter more than the specific content, with all subtopics and pedagogical approaches performing well. Zoë J. Wood, John Clements, Zachary N. J. Peterson, David S. Janzen, Hugh Smith, Michael Haungs, Julie Workman, John Bellardo, Bruce DeBruhl |
SIGCSE | 2 |
| 2016 | Dynamics of large scale networks following a mergerabstractWe studied the dynamic network of relationships among avatars in the massively multiplayer online game Planetside 2. In the spring of 2014, two separate servers of this game were merged, and as a result, two previously distinct networks were combined into one. We observed the evolution of this network in the seven month period following the merger. We found that some structures of original networks persist in the combined network for a long time after the merger. As the original avatars are gradually removed, these structures slowly dissolve, but they remain observable for a surprisingly long time. We present a number of visualizations illustrating the post-merger dynamics and discuss time evolution of selected quantities characterizing the topology of the network. John Clements, Babak Farzad, Henryk Fuks |
ASONAM | 1 |
| 2013 | An evaluation of interactive test-driven labs with WebIDE in CS0abstractWebIDE is a framework that enables instructors to develop and deliver online lab content with interactive feedback. The ability to create lock-step labs enables the instructor to guide students through learning experiences, demonstrating mastery as they proceed. Feedback is provided through automated evaluators that vary from simple regular expression evaluation to syntactic parsers to applications that compile and run programs and unit tests. This paper describes WebIDE and its use in a CS0 course that taught introductory Java and Android programming using a test-driven learning approach. We report results from a controlled experiment that compared the use of dynamic WebIDE labs with more traditional static programming labs. Despite weaker performance on pre-study assessments, students who used WebIDE performed two to twelve percent better on all assessments than the students who used traditional labs. In addition, WebIDE students were consistently more positive about their experience in CS0. David S. Janzen, John Clements, Michael Hilton 0001 |
ICSE | 2 |
| 2012 | Run your research: on the effectiveness of lightweight mechanizationabstractFormal models serve in many roles in the programming language community. In its primary role, a model communicates the idea of a language design; the architecture of a language tool; or the essence of a program analysis. No matter which role it plays, however, a faulty model doesn't serve its purpose. Casey Klein, John Clements, Christos Dimoulas, Carl Eastlund, Matthias Felleisen, Matthew Flatt, Jay A. McCarthy, Jon Rafkind, Sam Tobin-Hochstadt, Robert Bruce Findler |
POPL | 2 |
| 2012 | Improving first-year success and retention through interest-based CS0 coursesabstractMany computer science programs suffer from low student retention rates. At Cal Poly San Luis Obispo, academic performance and retention rates among first-year computer science students are among the lowest on campus. Michael Haungs, John Clements, David S. Janzen |
SIGCSE | 3 |
| 2011 | Supporting introductory test-driven labs with WebIDEabstractWebIDE is a new web-based development environment for entry-level programmers with two primary goals: minimize tool barriers to writing computer programs and introduce software engineering best practices early in a student's educational career. Currently, WebIDE focuses on Test-Driven Learning (TDL) by using small iterative examples and introducing lock-step labs, which prevent the student from moving forward until they finish the current step. However, WebIDE does not require that labs follow TDL. Instructors can write their own labs for WebIDE using any software engineering or pedagogical approach. Likewise, instructors can build custom evaluators - written in any language - to support their approach and provide detailed error messages to students. We report on a pilot study in a CS0 course where students were split into two groups, one that used WebIDE and one that didn't. The WebIDE group showed a significant improvement in performance when writing a simple Android application. Additionally, among students with some programming experience, the WebIDE group was more proficient in writing unit tests. Thomas Dvornik, David S. Janzen, John Clements, Olga Dekhtyar |
CSEE&T | 3 |
| 2010 | "Little language" project modulesabstractAbstract Many computer science departments are debating the role of programming languages in the curriculum. These discussions often question the relevance and appeal of programming-languages content for today's students. In our experience, domain-specific, “little languages” projects provide a compelling illustration of the importance of programming-language concepts. This paper describes projects that prototype mainstream applications such as PowerPoint, TurboTax, and animation scripting. We have used these exercises as modules in non-programming languages courses, including courses for first year students. Such modules both encourage students to study linguistic topics in more depth and provide linguistic perspective to students who might not otherwise be exposed to the area. John Clements, Kathi Fisler |
J. Funct. Program. | 1 |
| 2009 | Implications of integrating test-driven development into CS1/CS2 curriculaabstractMany academic and industry professionals have called for more testing in computer science curricula. Test-driven development (TDD) has been proposed as a solution to improve testing in academia. This paper demonstrates how TDD can be integrated into existing course materials without reducing topic coverage. Two controlled experiments were conducted in a CS1/CS2 course in Winter 2008. Following a test-driven learning approach, unit testing was introduced at the beginning of the course and reinforced through example. Results indicate that while student work loads may increase with the incorporation of TDD, students are able to successfully develop unit tests while learning to program. Chetan Desai, David S. Janzen, John Clements |
SIGCSE | 3 |
| 2005 | Continuations from generalized stack inspectionabstractImplementing first-class continuations can pose a challenge if the target machine makes no provisions for accessing and re-installing the run-time stack. In this paper, we present a novel translation that overcomes this problem. In the first half of the paper, we introduce a theoretical model that shows how to eliminate the capture and the use of first-class continuations in the presence of a generalized stack inspection mechanism. The second half of the paper explains how to translate this model into practice in two different contexts. First, we reformulate the servlet interaction language in the PLT Web server, which heavily relies on first-class continuations. Using our technique, servlet programs can be run directly under the control of non-cooperative web servers such as Apache. Second, we show how to use our new technique to copy and reconstitute the stack on MSIL.Net using exception handlers. This establishes that Scheme's first-class continuations can exist on non-cooperative virtual machines. Greg Pettyjohn, John Clements, Joe Marshall, Shriram Krishnamurthi, Matthias Felleisen |
ICFP | 2 |
| 2004 | A tail-recursive machine with stack inspectionabstractSecurity folklore holds that a security mechanism based on stack inspection is incompatible with a global tail call optimization policy; that an implementation of such a language must allocate memory for a source-code tail call, and a program that uses only tail calls (and no other memory-allocating construct) may nevertheless exhaust the available memory. In this article, we prove this widely held belief wrong. We exhibit an abstract machine for a language with security stack inspection whose space consumption function is equivalent to that of the canonical tail call optimizing abstract machine. Our machine is surprisingly simple and suggests that tail calls are as easy to implement in a security setting as they are in a conventional one. John Clements, Matthias Felleisen |
ACM Trans. Program. Lang. Syst. | 1 |
| 2003 | A Tail-Recursive Semantics for Stack Inspections
John Clements, Matthias Felleisen |
ESOP | 1 |
| 2002 | DrScheme: a programming environment for SchemeabstractDrScheme is a programming environment for Scheme. It fully integrates a graphics-enriched editor, a parser for multiple variants of Scheme, a functional read-eval-print loop, and an algebraic printer. The environment is especially useful for students, because it has a tower of syntactically restricted variants of Scheme that are designed to catch typical student mistakes and explain them in terms the students understand. The environment is also useful for professional programmers, due to its sophisticated programming tools, such as the static debugger, and its advanced language features, such as units and mixins. Beyond the ordinary programming environment tools, DrScheme provides an algebraic stepper, a context-sensitive syntax checker, and a static debugger. The stepper reduces Scheme programs to values, according to the reduction semantics of Scheme. It is useful for explaining the semantics of linguistic facilities and for studying the behavior of small programs. The syntax checker annotates programs with font and color changes based on the syntactic structure of the program. On demand, it draws arrows that point from bound to binding occurrences of identifiers. It also supports α-renaming. Finally, the static debugger provides a type inference system that explains specific inferences in terms of a value-flow graph, selectively overlaid on the program text. Robert Bruce Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler, Matthias Felleisen |
J. Funct. Program. | 2 |
| 2001 | Modeling an Algebraic Stepper
John Clements, Matthew Flatt, Matthias Felleisen |
ESOP | 1 |
| 2001 | Termination in Language-based Systems
Algis Rudys, John Clements, Dan S. Wallach |
NDSS | 2 |