Publications
Teaching computation in science courses can enhance science education, but doing so requires that teachers expand the vision of their discipline beyond the traditional view of science presented in most curricula. This article describes a design-based research (DBR) program that included collaboration among high school teachers and professional development leaders in physics and computer science education. Through three years of professional development and teacher-led development, field testing, and refinement of integrated curricular resources, we have combined instructional modeling practices, physical lab materials, and computer programming activities. One of the outcomes is a co-created framework for the integration of computational modeling into physics that is sensitive to teachers’ interests and expressed needs in addition to learning goals. This framework merges two evidence-based approaches to teaching: Bootstrap:Algebra, a web-based computing curriculum that emphasizes using multiple representations of functions and scaffolds that make the programming process explicit, and Modeling Instruction in physics, an approach that emphasizes the use of conceptual models, modeling practices and representational tools. In doing so, we uncover the need to balance teachers’ visions for integration opportunities with practical instructional needs and emphasize that frameworks for integration need to reflect teachers’ values and goals.
Interactive evaluation with a REPL (Read-Eval-Print Loop) is a feature of many programming environments, especially in environments for teaching programming. However, REPLs do have confusions and stumbles for beginners. We identify several weaknesses of REPLs with a worked example from an existing programming environment in active use, distilled from our experience with novices. We then present an updated programming environment that mitigates these weaknesses and discuss its overall design.Interactive evaluation with a REPL (Read-Eval-Print Loop) is a feature of many programming environments, especially in environments for teaching programming. However, REPLs do have confusions and stumbles for beginners related to navigating between programs and interactive evaluation. We identify several specific weaknesses of REPLs with a worked example from an existing programming environment in active use, distilled from our experience with novices. We then present an updated programming environment that mitigates these weaknesses by combining the program editor and REPL, so the user can benefit from the best of both.
We propose that K-12 data science curricula should be based on four key ingredients: two are technical (programming and statistics, with visualization sitting at their intersection), while two are human-facing (meaningful domains, and civic responsibility). We describe their relationship and argue for their importance. Based on this, we then present a curriculum (currently in use; name anonymized). The curriculum is designed for integration into multiple disciplines and settings. It achieves this by letting different contexts choose datasets that are most meaningful, and creating artifacts that are authentic to the context. It recommends that the freedom to choose a dataset be further devolved to individual students, letting them choose personally meaningful data to spark engagement. Finally, we initiate the process of evaluating this curriculum. We create two assessment instruments, one to assess personalization and engagement and the other to evaluate learning. We believe these assessments can be adapted to other curricula too. We provide very preliminary data gathered from students and teachers, respectively, on the two instruments.
Integrating computing into other subjects promises to address many challenges to offering standalone CS courses in K-12 contexts. Integrated curricula must be designed carefully, however, to both meet learning objectives of the host discipline and to gain traction with teachers. We describe the multi-year evolution of Bootstrap, a curriculum for integrating computing into middle- and high-school mathematics. We discuss the initial design and the various modifications we have made over the years to better support math instruction, leading to our goal of using integrated curricula to cover standards in both math and CS. We provide advice for others aiming for integration and raise questions for CS educators about how we might better support learning in other disciplines.
Modern systems consist of large numbers of languages, frameworks, libraries, APIs, and more. Each has characteristic behavior and data. Capturing these in semantics is valuable not only for understanding them but also essential for formal treatment (such as proofs). Unfortunately, most of these systems are defined primarily through implementations, which means the semantics needs to be \emph{learned}. We describe the problem of learning a semantics, provide a structuring process that is of potential value, and also outline our failed attempts at achieving this so far.
We revisit the World model of functional event-based programming and extract a new primitive, a Reactor, to enable programmatic control over these reactive programs.
We expand the space of programs that can be synthesized from templates, and attempt to apply it to derive desugaring transformations for constructs in a lambda calculus.
We explore an extensible product line of type systems for JavaScript, and explain the engineering and ergonomic choices choices we made in designing this system.
- Paper (ACM DL):
- pdf21
- Presentation:
- pptx22
- Project page:
- available here23
- Citation:
- BibTeX24
We develop a sound static type system for JavaScript to detect violations of Private Browsing Mode in third-party Firefox extensions.
- Paper:
- pdf26
- Presentation:
- pptx27
- Project page:
- available here23
- Technical report:
- pdf28
- Citation:
- BibTeX29
We develop a static type system for analyzing jQuery31 client code for query errors, where jQuery results may contain too many, too few, or simply the wrong page elements, leading to unintended runtime behavior.
- Paper:
- pdf32
- Presentation:
- pptx33
- Project page:
- available here23
- Citation:
- BibTeX34
We define a model of overlays that dynamically compose declarative UI fragments onto a base document, and define conflict detection algorithms over this model.
- Paper (ACM DL):
- pdf36
- Presentation:
- pptx37
- Project page:
- available here38
- Citation:
- BibTeX39
We present S5, a semantics for the strict mode of the ECMAScript 5.1 (JavaScript) programming language.
- Paper (ACM DL):
- pdf41
- Project page:
- available here23
- Citation:
- BibTeX42
We define a concise, executable formal model of event behavior in the DOM, with high fidelity to the DOM specification.
- Paper:
- pdf44
- Project page:
- available here38
- Citation:
- BibTeX45
I examine the challenges in supporting powerful, pervasive extensibility in web-browsers, and propose mechanisms for enabling better analytical tools.
- Paper:
- pdf47
- Presentation:
- html48
- Project page:
- available here38
- Citation:
- BibTeX49
We present C3, an implementation of the HTML/CSS/JS platform designed for web-client research and experimentation, particularly the role of extensibility throughout the platform.
- Paper:
- pdf51
- Project page:
- available here38
- Citation:
- BibTeX52
We argue that browser extensions are themselves an important facet of web applications, and are in need of serious programing-language attention.
- Paper (ACM DL):
- pdf54
- Presentation:
- ppt55
- Project page:
- available here38
- Citation:
- BibTeX56
We propose a language extension to JavaScript, based on dynamic aspect weaving, that would enable principled, semantically sound third-party modification of existing code.
- Paper (ACM DL):
- pdf58
- Presentation:
- pptx59
- Project page:
- available here38
- Citation:
- BibTeX60
We present a novel approach to searching for error messages in programs with type errors (currently, Caml and C++), that provides better error messages while simplifying compiler construction.
- Paper (ACM DL):
- pdf62
- Slides:
- ppt63
- Citation:
- BibTeX64
- Project page:
- available here65
We present a new way to generate type-error messages in a polymorphic, implicitly, and strongly typed language. This approach separates error-message generation from typechecking, and improves feedback to programmers.
- Paper (ACM DL):
- pdf67
- Slides:
- ppt68
- Citation:
- BibTeX69
- Project page:
- available here65
Contact
![download vcard icon](images/hCard/images/vcard-add.png)
- Email (essential):
- (first initial + last name) {at} ccs.neu.edu
- Location (likely):
- West Village H70, Office 326
- Post (possible):
-
Northeastern University
Khoury College of Computer Sciences
360 Huntington Ave, 2nd floor
Boston, MA 02115
Links
- https://www.mdpi.com/2227-7102/14/8/861/pdf?version=1723799801
- https://khoury.northeastern.edu/home/blerner/files/citations.html#edusci2024
- https://khoury.northeastern.edu/home/blerner/papers/plateau2021_repartee.html
- https://kilthub.cmu.edu/ndownloader/files/35978987
- https://khoury.northeastern.edu/home/blerner/files/citations.html#plateau2021_repartee
- https://khoury.northeastern.edu/home/blerner/papers/sigcse2022_ds_curriculum.html
- https://dl.acm.org/doi/10.1145/3408877.3432546?cid=81318490369
- https://khoury.northeastern.edu/home/blerner/files/citations.html#sigcse2022_ds_curriculum
- https://khoury.northeastern.edu/home/blerner/papers/sigsce2021_k12_curriculum.html
- https://khoury.northeastern.edu/home/blerner/files/citations.html#sigcse2021_k12_curriculum
- https://khoury.northeastern.edu/home/blerner/papers/snapl2019_acquired_taste.html
- https://khoury.northeastern.edu/home/blerner/papers/snapl2019_acquired_taste.pdf
- https://khoury.northeastern.edu/home/blerner/files/citations.html#snapl2019_acquired_taste
- https://khoury.northeastern.edu/home/blerner/papers/programming2019_reactors.html
- https://cs.brown.edu/~sk/Publications/Papers/Published/plpk-reactor-design/paper.pdf
- https://khoury.northeastern.edu/home/blerner/files/citations.html#programming2019_reactors
- https://khoury.northeastern.edu/home/blerner/papers/tacas2017_synth.html
- https://doi.org/10.1007/978-3-662-54577-5_14
- https://khoury.northeastern.edu/home/blerner/files/citations.html#tacas2017_synth
- https://khoury.northeastern.edu/home/blerner/papers/dls2013_tejas.html
- https://dl.acm.org/doi/10.1145/2508168.2508170?cid=81318490369
- https://khoury.northeastern.edu/home/blerner/papers/dls2013_tejas.pptx
- http://brownplt.github.com/
- https://khoury.northeastern.edu/home/blerner/files/citations.html#dls2013_tejas
- https://khoury.northeastern.edu/home/blerner/papers/esorics2013_pbm.html
- https://khoury.northeastern.edu/home/blerner/papers/esorics2013_pbm.pdf
- https://khoury.northeastern.edu/home/blerner/papers/esorics2013_pbm.pptx
- ftp://ftp.cs.brown.edu/pub/techreports/13/cs13-02.pdf
- https://khoury.northeastern.edu/home/blerner/files/citations.html#esorics2013_pbm
- https://khoury.northeastern.edu/home/blerner/papers/ecoop2013_jquery.html
- http://jquery.com/
- https://khoury.northeastern.edu/home/blerner/papers/ecoop2013_jquery.pdf
- https://khoury.northeastern.edu/home/blerner/papers/ecoop2013_jquery.pptx
- https://khoury.northeastern.edu/home/blerner/files/citations.html#ecoop2013_jquery
- https://khoury.northeastern.edu/home/blerner/papers/dls2012_overlays.html
- https://dl.acm.org/doi/10.1145/2384577.2384590?cid=81318490369
- https://khoury.northeastern.edu/home/blerner/papers/dls2012_overlays.pptx
- https://khoury.northeastern.edu/home/blerner/browser-extensions.html
- https://khoury.northeastern.edu/home/blerner/files/citations.html#dls2012_overlays
- https://khoury.northeastern.edu/home/blerner/papers/dls2012_s5.html
- https://dl.acm.org/doi/10.1145/2384577.2384579?cid=81318490369
- https://khoury.northeastern.edu/home/blerner/files/citations.html#dls2012_s5
- https://khoury.northeastern.edu/home/blerner/papers/webapps2012.html
- https://khoury.northeastern.edu/home/blerner/papers/webapps2012.pdf
- https://khoury.northeastern.edu/home/blerner/files/citations.html#webapps2012
- https://khoury.northeastern.edu/home/blerner/papers/thesis.html
- https://khoury.northeastern.edu/home/blerner/papers/thesis.pdf
- https://khoury.northeastern.edu/home/blerner/c3/thesis-defense.html
- https://khoury.northeastern.edu/home/blerner/files/citations.html#thesis
- https://khoury.northeastern.edu/home/blerner/papers/webapps2011.html
- https://khoury.northeastern.edu/home/blerner/papers/webapps2011.pdf
- https://khoury.northeastern.edu/home/blerner/files/citations.html#webapps2011
- https://khoury.northeastern.edu/home/blerner/papers/aplwaca2010.html
- https://dl.acm.org/doi/10.1145/1810139.1810146?cid=81318490369
- https://khoury.northeastern.edu/home/blerner/papers/aplwaca2010.ppt
- https://khoury.northeastern.edu/home/blerner/files/citations.html#aplwaca2010
- https://khoury.northeastern.edu/home/blerner/papers/oopsla2010.html
- https://dl.acm.org/doi/10.1145/1869459.1869490?cid=81318490369
- https://khoury.northeastern.edu/home/blerner/papers/oopsla2010.pptx
- https://khoury.northeastern.edu/home/blerner/files/citations.html#oopsla2010
- https://khoury.northeastern.edu/home/blerner/papers/seminal_pldi2007.html
- https://dl.acm.org/doi/10.1145/1250734.1250783?cid=81318490369
- https://khoury.northeastern.edu/home/blerner/papers/seminal_pldi2007.ppt
- https://khoury.northeastern.edu/home/blerner/files/citations.html#pldi2007
- https://khoury.northeastern.edu/home/blerner/seminal.html
- https://khoury.northeastern.edu/home/blerner/papers/seminal_ml2006.html
- https://dl.acm.org/doi/10.1145/1159876.1159887?cid=81318490369
- https://khoury.northeastern.edu/home/blerner/papers/seminal_ml2006.ppt
- https://khoury.northeastern.edu/home/blerner/files/citations.html#ml2006
- http://www.northeastern.edu/campusmap/map/qad4.html