Filip Strömbäck
About
Research
My current research interests include computer science education, mainly focused on concurrency, and extensible programming languages.
Publications
Dissertation
Articles
-
Empirical Evaluation of a Differentiated Assessment of Data Structures: The Role of Prerequisite Skills
This paper is a continuation of the Working Group (WG) paper "Differentiated Assessment for Advanced Courses that Reveal Issues with Prerequisite Skills: A Design Investigation" available below. In this paper, some of the authors from the WG paper along with two new authors continue the work from the WG paper. In particular, we pick one of the assessments from the WG paper and evaluate it empirically. The results indicate that some questions are able to differentiate between different prerequisites. We also found that certain prerequisite skills (e.g. those that require code comprehension) hide more basic prerequisites. We thus label these skills as "middle-ground" skills.
-
Using Model-Checking and Peer-Grading to Provide Automated Feedback to Concurrency Exercises in Progvis
This paper describes the implementation and evaluation of a system for providing auto-graded concurrency assignments to students, so that they are able to practice their skills outside the hours when teachers or TAs are available. This paper was accepted to ACE 2023.
-
The Progression of Students' Ability to Work With Scope, Parameter Passing and Aliasing
This paper describes a longitudinal study on students' mental models, and in particular their ability to work with concepts that are central to concurrency (i.e. references, scope, and aliasing). This paper was written together with Pontus Haglund, and accepted to ACE 2023.
-
A Weak Memory Model in Progvis: Verification and Improved Accuracy of Visualizations of Concurrent Programs to Aid Student Learning
This paper details the implementation of an improved memory model and a model checker in the visualization tool Progvis. It also contains details of a longitudinal evaluation with the aim of determining whether using Progvis is beneficial for students. This paper was accepted to Koli Calling 2022. Acceptance rate this year was 23.8%.
-
It's Okay Because I Worked Really Hard! - Student Justifications for Questionable Collaboration while Solving Computer Labs
This paper investigates how students justify questionable collaborative behaviors in the context of solving computer labs through interviews and Phenomenography. Results indicate that some students consider them being present as contributing to a shared solution, which is a bit worrying. This paper was written as a part of a course on Computer Science Education given at Uppsala University with Pontus and two other students from that course and submitted to Frontiers in Education.
This paper was awarded the best paper award in the conference.
-
Pilot Study of Progvis: A Visualization Tool for Object Graphs and Concurrency via Shared Memory
This paper presents the results from a pilot study of the tool Progvis. It is a continuation of the results presented as a SIGCSE poster, and was accepted at the ACE conference in 2022. Top 8 of the 21 accepted papers according to reviewer scores.
-
The Path to Concurrency - Exploring how Students Learn the Abstractions of Concurrency
This is a paper written for a special issue of INFEDU on abstraction. It continues on previous work on examining student answers, but this time with more assignments and in the light of the abstractions of the concurrent system.
-
Understanding Students' Failure to use Functions as a Tool for Abstraction
This is a joint work between me and Pontus Haglund for the special issue of INFEDU on abstraction. It builds partially upon the work from the ITiCSE 2020 working group report and applies it to answers from students across two years in an introductory CS1 course. Additionally, it examines how well students are able to use abstraction at the end of their abstraction-focused CS1 course. Also across two years.
-
Differentiated Assessment for Advanced Courses that Reveal Issues with Prerequisite Skills: A Design Investigation
This is the report from the ITiCSE 2020 working group, which I was one of three leaders of (the extended abstract is linked below). The report highlights the problem that many assessments depend on prerequisite skills, and presents a method for analyzing prerequisites, and patterns and principles for assessing them explicitly.
-
Exploring Students' Understanding of Concurrency - A Phenomenographic Study
Further analysis of students' understanding of concurrency, partially based on the previous study of exam results. Attempts to further understand what concepts are not properly understood by students, and how they are visible as mistakes when synchronizing code.
-
A Student's View of Concurrency - A Study of Common Mistakes in Introductory Courses on Concurrency
Results from studying common mistakes made by students when working with concurrency.
-
Storm: a Language Platform for Interacting and Extensible Languages (tool demo)
A summary of the extensible language Storm, which I started during my exchange year at Tokyo Tech. See the official page for more information.
-
A Syntax Highlighting and Code Formatting Tool for Extensible Languages
My masters thesis report, describing Storm, and the extensions made to support interactive syntax highlighting through the compiler.
Workshops
Below is a list of contributions to workshops and similar venues, sometimes without published proceedings.
-
Name Trees: Uniform and Extensible Interactions Between Languages and Language Extensions
Presentation about Name Trees, that are the central structure in the language Storm. These have turned out to be surprisingly powerful, despite the simplicity of the idea. My submission to the workshop is available here.
Short papers/posters
This list is for applications to various venues, which resulted in shorter (typically 1 page) publications. For example posters, WG proposals, and DC applications.
-
Pilot Study of a Visualization Tool for Object Graphs and Concurrency via Shared Memory
This is an abstract for a poster that will be presented at SIGCSE 2021. It presents preliminary results from an evaluation on the visualization tool Progvis that I have developed.
-
Assessing How Pre-requisite Skills Affect Learning of Advanced Concepts
Extended abstract for a working group at ITiCSE 2020 (I'm one of three leaders) aiming to explore how weaknesses in pre-requisite skills, such as program tracing, affect learning of later, more advanced concepts, such as concurrency, data structures and algorithms.
-
Students' Views of Concurrency and Synchronization
Accepted application to the doctoral consortium at Kolli Calling 2019.
Work as Reviewer/PC
Below is a list of situations where I have been reviewing papers for various venues:
- PX/24 - PC, reviewer
- ACE 2024 - PC, reviewer
- FIE 2022 - reviewer (all authors were asked to review)
- SIGCSE 2022 - reviewer
- SIGCSE 2021 - reviewer
Other work
-
Storm
A language-agnostic programming environment that is built for extensible languages and with concurrency in mind. Multiple languages can communicate with each other, and the enviornment takes care to avoid data races. It is available in Debian (testing) and Ubuntu.
-
Progvis
A program visualization tool written in Storm. The tool is designed to emphasize concurrency, and lets the user explore possible executions to find incorrect behavior. It also supports highlighting data races. As it is built in Storm, it supports most languages in Storm (provided they generate some metadata). It also contains an implementation of a subset of C and C++ with some synchronization primitives. Is available in Debian (testing) and Ubuntu. In Debian (testing), and Ubuntu (Jammy Jellyfish) one can run
sudo apt install progvis
.
Other Achievements
-
Valorisation of research results - 2023
I applied for, and received, funding for improving the documentation for the programming language Storm. This is the language that is used to implement Progvis.
-
Valorisation of research results - 2022
I applied for, and received, funding for further development and maintenance of Progvis, with the aim of making it more accessible and useful for others. In particular, the goal here is to create and maintain packages for various Linux distributions (e.g. Debian and Arch) and to provide necessary support for Progvis on all platforms as necessary.
Page responsible: Filip Strömbäck
Last updated: 2024-03-08