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
-
2024: ActiveDSU: Dynamic Software Updates for Active Functions
This paper outlines a technique to remove some existing limitations within current systems for Dynamic Software Updating (i.e. making changes to programs while they are running). These ideas are prototyped in the Storm system. Accepted to Onward! 2024 (as a part of SPLASH 2024).
-
2024: A Pedagogical Framework for Developing Abstraction Skills
This Working Group Report conducted at ITiCSE 2024 reports on theorethical work aimed at developing a framework for abstraction skills in CS. I was one of three leaders for this work.
-
2024: The Nordic Prior Knowledge Test in Programming: Motivation, Development and Preliminary Results
This paper describes the Nordic Prior Knowledge Test in Programming, which is a test for students who are just starting a university education in programming that aims to test what students know before they start. I participated in discussions about the test, revisions of the paper, and helped administering the test in Sweden (even though the Swedish data is not reported in this particular paper).
-
2024: Humans or Machines for Teaching: Trust and Preferences among University Students
The main author of this paper is Mohsen Asgari, who I was co-supervising at this time. The paper investigates students' perceptions of AI assistants in teaching, and their trust in them. Accepted to ICETC 2024.
-
2024: Grasping the Unseen: TA Insights into Teaching Subtle Concepts in Computer Science
The main author of this paper is Pontus Haglund, who I was co-supervising at this time. This paper investigates how TAs view and teach subtle concepts, as well as their impressions of the concepts. In this context, subtle concepts are concepts, such as references, parameter passing, and scope, that are typically difficult for students to grasp since their semantics are not readily visible in the source code.
-
2024: Students' perspectives on using digital tools in programming courses
The main author of this paper is Mohsen Asgari, who is a PhD student I was co-supervising. The paper investigates how students perceive the use of digital tools in programming courses. It is based on data collected from Sweden and Taiwan, and is thus able to also investigate similarities and differences between the two countries.
-
2024: 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.
-
2023: 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.
-
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.
-
2022: 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%.
-
2022: 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.
-
2022: 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.
-
2021: 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.
-
2021: 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.
-
2020: 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.
-
2020: 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.
-
2019: 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.
-
2018: 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.
-
2017: 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.
-
2024: 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.
-
2023: NII Shonan Meeting no. 192: Augmented Software Visualization
During a research visit to Tokyo Institute of Technology, I was invited to attend to a NII Shonan Meeting (the same style as Dagstuhl Seminars) about software visualization.
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.
-
2024: Designing a Pedagogical Framework for Developing Abstraction Skills
This abstract is the application for a working group at ITiCSE 2024, which I am co-leading with Marjahan Begum and Julia Crossley. This working group is concerned with frameworks for teaching and learning abstraction skills.
-
2021: 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.
-
2020: 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.
-
2019: 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:
- 2025: ACE 2025 - reviewer
- 2024: ICETC 2024 - reviewer
- 2024: Koli Calling 2024 - PC, reviewer
- 2024: PX/24 - PC, reviewer
- 2024: ACE 2024 - PC, reviewer
- 2022: FIE 2022 - reviewer (all authors were asked to review)
- 2022: SIGCSE 2022 - reviewer
- 2021: 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
-
2023: Valorisation of research results
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.
-
2023: Lawson Stipendium
I was awarded the Lawson Stipendium in 2023 for my work that helped "to increase IDA's visibility, impact, and engagement on the international level".
-
2022: Valorisation of research results
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.
Other Collaborations/Mentions
-
2024: Mentioned in: Identifying and Correcting Programming Language Behavior Misconceptions
I and Pontus helped Kuang-Chen Lu and Shriram Krishnamurti to collect data for SMoL-tutor, and we were subsequently mentioned in the Acknowledgements section in the paper about the tutor itself.
Page responsible: Filip Strömbäck
Last updated: 2025-01-21