liu.seSearch for publications in DiVA
Change search
Refine search result
1 - 13 of 13
CiteExportLink to result list
Permanent link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • oxford
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Rows per page
  • 5
  • 10
  • 20
  • 50
  • 100
  • 250
Sort
  • Standard (Relevance)
  • Author A-Ö
  • Author Ö-A
  • Title A-Ö
  • Title Ö-A
  • Publication type A-Ö
  • Publication type Ö-A
  • Issued (Oldest first)
  • Issued (Newest first)
  • Created (Oldest first)
  • Created (Newest first)
  • Last updated (Oldest first)
  • Last updated (Newest first)
  • Disputation date (earliest first)
  • Disputation date (latest first)
  • Standard (Relevance)
  • Author A-Ö
  • Author Ö-A
  • Title A-Ö
  • Title Ö-A
  • Publication type A-Ö
  • Publication type Ö-A
  • Issued (Oldest first)
  • Issued (Newest first)
  • Created (Oldest first)
  • Created (Newest first)
  • Last updated (Oldest first)
  • Last updated (Newest first)
  • Disputation date (earliest first)
  • Disputation date (latest first)
Select
The maximal number of hits you can export is 250. When you want to export more records please use the Create feeds function.
  • 1. Order onlineBuy this publication >>
    Strömbäck, Filip
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Teaching and Learning Concurrent Programming in the Shared Memory Model2023Doctoral thesis, comprehensive summary (Other academic)
    Abstract [en]

    The performance of computational devices is steadily increasing. Recently, the main contributor to the increasing performance has been an increasing number of cores rather than increased performance for individual cores. This trend is not only visible in high-end de-vices, such as powerful workstations, but also in low-end devices such as smartphones and many embedded devices. Due to this trend, and to the ubiquity of multicore systems, it is increasingly important for computer science students to have at least some familiarity with working with concurrent programs, as they are likely to encounter such programs in some shape or form in their future professional careers. In this thesis, we use the term concurrent programming to emphasize the focus on concurrency in a programming context, as opposed to concurrency in isolation. 

    Prior work has shown that students struggle with learning concurrent programming. This is not surprising in and of itself, as concurrency is generally considered to be a difficult topic. To help students learn concurrent programming, it is important to consider why they find the topic difficult. As such, the first part of this thesis aims to gain better insights into these difficulties. This is done partly by studying prior work in the literature and partly by conducting new research. The results show that the struggles are not only due to the difficulty involved in understanding the new concepts related to concurrency. Rather, a large portion of students’ struggles can be attributed to the fact that the non-determinism in concurrent programs requires a more formal approach to programming. The transition from an informal approach, where students are able to rely on ad-hoc testing, to a more formal approach is difficult in and of itself, but it also highlights problems in students’ understanding of fundamental programming skills. For example, without a detailed enough understanding of scope, aliasing and references it is difficult to reason about what data is shared between threads. 

    In light of these results, the remainder of this thesis describes ways of helping students learn concurrent programming. This is achieved by developing a program visualization tool, called Progvis, which is capable of visualizing the behavior of concurrent programs written in the C language. Progvis is unique in the sense that it focuses not only on concurrency, but also illustrates how concurrency interacts with the fundamental concepts that were found to be problematic. As such, it is able to give students a complete and accurate picture of the visualized program’s behavior. To further help students, Progvis also includes a model-checker that can automatically find concurrency issues, thereby helping students to easily see whether their reasoning about the program’s behavior was correct or not. 

    The results suggest that the visualizations generated by Progvis have the potential to help students learn concurrent programming. A small pilot study showed that students who used Progvis were able to solve concurrency problems faster and arrived at better solutions compared to students who only used traditional tools. To evaluate long-term effects on learning, Progvis was also integrated into a course on concurrency and operating systems. Comparing the students’ performance on the final exam showed that the students who had used Progvis were more likely to correctly associate their synchronization with the associated data compared to students who had not used Progvis during the course. Even though no significant increase was observed in students’ overall performance, these results suggest that using Progvis does indeed have a positive impact on students’ learning. 

    List of papers
    1. A Student's View of Concurrency: A Study of Common Mistakes in Introductory Courses on Concurrency
    Open this publication in new window or tab >>A Student's View of Concurrency: A Study of Common Mistakes in Introductory Courses on Concurrency
    2019 (English)In: Proceedings of the 2019 ACM Conference on International Computing Education Research, New York, NY, USA: Association for Computing Machinery (ACM), 2019, p. 229-237Conference paper, Published paper (Refereed)
    Abstract [en]

    This paper investigates common misconceptions held by students regarding concurrency in order to better understand how concurrency education can be improved in the future. As a part of the exam in two courses on concurrency and operating systems, students were asked to identify and eliminate any concurrency issues in a piece of code as a part of their final exam. Different types of mistakes were identified and the 216 answers were sorted into categories accordingly. The results presented in this paper show that while most students were able to identify the cause of an issue given its symptoms, only approximately half manage to successfully eliminate the concurrency issues. Many of the incorrect solutions fail to associate shared data with a synchronization primitive, e.g. using one lock to protect multiple instances of a data structure, or multiple locks to protect the same instance in different situations. This suggests that students may not only have trouble dealing with concepts related to concurrency, but also more fundamental concepts related to the underlying computational model. Finally, this paper proposes possible explanations for the students' mistakes in terms of improper mental models, and suggests types of problems that highlight the issues with these mental models to improve students' understanding of the subject.

    Place, publisher, year, edition, pages
    New York, NY, USA: Association for Computing Machinery (ACM), 2019
    Keywords
    computer science education, concurrency, mental models, synchronization
    National Category
    Computer and Information Sciences Learning
    Identifiers
    urn:nbn:se:liu:diva-159683 (URN)10.1145/3291279.3339415 (DOI)000520117800024 ()978-1-4503-6185-9 (ISBN)
    Conference
    International Computing Education Research, Toronto ON, Canada, August 12 - 14, 2019
    Available from: 2019-08-17 Created: 2019-10-23 Last updated: 2023-01-30Bibliographically approved
    2. Exploring Students’ Understanding of Concurrency: A Phenomenographic Study
    Open this publication in new window or tab >>Exploring Students’ Understanding of Concurrency: A Phenomenographic Study
    2020 (English)In: Proceedings of SIGCSE ’20, ACM Publications, 2020Conference paper, Published paper (Refereed)
    Abstract [en]

    This paper continues previous efforts in understanding the problemsstudents face when learning concurrency. In this paper, weexplore students’ understanding of the subject using phenomenographyin order to gain insights that can aid in explaining the underlyingcauses for common student mistakes in concurrency, whichhas been studied in depth previously. Students’ experience of concurrencyand critical sections were analyzed using a phenomenographicstudy based on interviews with students attending one oftwo courses on concurrency and operating systems. We present6 categories describing students’ experience of concurrency, and4 categories describing students’ experience of critical sections inthis paper. Furthermore, these categories are related to previousresults, both to explore how misconceptions in the categores relateto student mistakes and to estimate how common it is for eachcategory to be discerned.

    Place, publisher, year, edition, pages
    ACM Publications, 2020
    Keywords
    computer science education, concurrency, critical sections, phenomenography
    National Category
    Didactics Learning Computer and Information Sciences
    Identifiers
    urn:nbn:se:liu:diva-162150 (URN)10.1145/3328778.3366856 (DOI)978-1-4503-6793-6 (ISBN)
    Conference
    SIGCSE ’20, March 11–14, 2020, Portland, OR, USA
    Available from: 2020-03-16 Created: 2019-11-20 Last updated: 2023-01-30
    3. Differentiated Assessments for Advanced Courses that Reveal Issues with Prerequisite Skills: A Design Investigation
    Open this publication in new window or tab >>Differentiated Assessments for Advanced Courses that Reveal Issues with Prerequisite Skills: A Design Investigation
    Show others...
    2020 (English)In: ITICSE-WGR20: PROCEEDINGS OF THE WORKING GROUP REPORTS ON INNOVATION AND TECHNOLOGY IN COMPUTER SCIENCE EDUCATION, ASSOC COMPUTING MACHINERY , 2020, p. 75-129Conference paper, Published paper (Refereed)
    Abstract [en]

    Computing learners may not master basic concepts, or forget them between courses or from infrequent use. Learners also often struggle with advanced computing courses, perhaps from weakness with prerequisite concepts. One underlying challenge for researchers and instructors is determining the reason why a learner gets an advanced question wrong. Was the wrong answer because the learner lacked prerequisite skills, has not mastered the advanced skill, or some combination of the two? We contribute a design investigation into how to create differentiated questions which diagnose prerequisite and advanced skills at the same time. We focused on tracing and related skills as prerequisites, and on advanced object-oriented programming, concurrency, algorithm and data structures as the advanced skills. We conducted an inductive qualitative analysis of existing assessment questions from instructors and from a concept inventory with a validity argument (the Basic Data Structures Inventory). We found dependencies on a variety of prerequisite knowledge and mixed potential for diagnosing difficulties with prerequisites. Inspired by this analysis, we developed examples of differentiated assessments and reflected on design principles for creating/modifying assessments to better assess both advanced and prerequisite skills. Our example differentiated assessment questions and methods help enable research into how prerequisites skills affect learning of advanced concepts. They also may help instructors better understand and help learners with varying prerequisite knowledge, which may improve equity of learning outcomes. Our work also raises theoretical questions about what assessments really assess and how separate advanced topics and prerequisite skills are.

    Place, publisher, year, edition, pages
    ASSOC COMPUTING MACHINERY, 2020
    Keywords
    computer science education; assessment; prerequisite skills; concurrency; data structures and algorithms; advanced object-oriented programming; tracing; educational design research; differentiated assessment
    National Category
    Learning
    Identifiers
    urn:nbn:se:liu:diva-181938 (URN)10.1145/3437800.3439204 (DOI)000714581100004 ()9781450382939 (ISBN)
    Conference
    25th Annual Conference on Working Group Reports on Innovation and Technology in Computer Science Education (ITiCSE-WGR), Norwegian Univ Sci & Technol, ELECTR NETWORK, jun 17-18, 2020
    Available from: 2021-12-21 Created: 2021-12-21 Last updated: 2023-01-30
    4. Understanding Students’ Failure to use Functions as a Tool for Abstraction – An Analysis of Questionnaire Responses and Lab Assignments in a CS1 Python Course
    Open this publication in new window or tab >>Understanding Students’ Failure to use Functions as a Tool for Abstraction – An Analysis of Questionnaire Responses and Lab Assignments in a CS1 Python Course
    2021 (English)In: Informatics in Education. An International Journal, ISSN 1648-5831, E-ISSN 2335-8971, Vol. 20, no 4, p. 583-614Article in journal (Refereed) Published
    Abstract [en]

    Controlling complexity through the use of abstractions is a critical part of problem solving in programming. Thus, becoming proficient with procedural and data abstraction through the use of user-defined functions is important. Properly using functions for abstraction involves a number of other core concepts, such as parameter passing, scope and references, which are known to be difficult. Therefore, this paper aims to study students proficiency with these core concepts, and students ability to apply procedural and data abstraction to solve problems. We collected data from two years of an introductory Python course, both from a questionnaire and from two lab assignments. The data shows that students had difficulties with the core concepts, and a number of issues solving problems with abstraction. We also investigate the impact of using a visualization tool when teaching the core concepts.

    Place, publisher, year, edition, pages
    Vilnius University Press, 2021
    Keywords
    abstraction; core concepts; procedural abstraction; data abstraction; CS1; Python; functions; prerequisites; parameter passing; scope; references; Python Tutor
    National Category
    Didactics Pedagogy Computer Sciences
    Identifiers
    urn:nbn:se:liu:diva-181833 (URN)10.15388/infedu.2021.26 (DOI)000731402000005 ()
    Available from: 2021-12-21 Created: 2021-12-21 Last updated: 2023-01-30
    5. The Non-Deterministic Path to Concurrency – Exploring how Students Understand the Abstractions of Concurrency
    Open this publication in new window or tab >>The Non-Deterministic Path to Concurrency – Exploring how Students Understand the Abstractions of Concurrency
    2021 (English)In: Informatics in Education. An International Journal, ISSN 1648-5831, E-ISSN 2335-8971, Vol. 20, no 4, p. 683-715Article in journal (Refereed) Published
    Abstract [en]

    Concurrency is often perceived as difficult by students. One reason for this may be due to the fact that abstractions used in concurrent programs leave more situations undefined compared to sequential programs (e.g., in what order statements are executed), which makes it harder to create a proper mental model of the execution environment. Students who aim to explore the abstractions through testing are further hindered by the non-determinism of concurrent programs since even incorrect programs may seem to work properly most of the time. In this paper we aim to explore how students understanding these abstractions by examining 137 solutions to two concurrency questions given on the final exam in two years of an introductory concurrency course. To highlight problematic areas of these abstractions, we present alternative abstractions under which each incorrect solution would be correct.

    Place, publisher, year, edition, pages
    Vilnius University Press, 2021
    Keywords
    abstraction; concurrency; memory model; synchronization; locks
    National Category
    Computer Sciences Pedagogy
    Identifiers
    urn:nbn:se:liu:diva-181834 (URN)10.15388/infedu.2021.29 (DOI)000731402000008 ()
    Available from: 2021-12-21 Created: 2021-12-21 Last updated: 2023-01-30
    6. Pilot Study of Progvis: A Visualization Tool for Object Graphs and Concurrency via Shared Memory
    Open this publication in new window or tab >>Pilot Study of Progvis: A Visualization Tool for Object Graphs and Concurrency via Shared Memory
    2022 (English)In: PROCEEDINGS OF THE 24TH AUSTRALASIAN COMPUTING EDUCATION CONFERENCE, ACE 2022, New York: Association for Computing Machinery (ACM), 2022, p. 123-132Conference paper, Published paper (Refereed)
    Abstract [en]

    Concurrency and synchronization are two topics that are becomingincreasingly important for computer science students due to thehigh number of cores available in most modern devices. These aretopics that many students struggle with at first, perhaps partiallydue to the inherent nondeterminism and the difficulty to test forabsence of race conditions. Furthermore, previous research indicate that some common mistakes when working with concurrencymight be due students not connecting the concurrency concepts(such as synchronization) to the data that needs to be protected,especially when pointers and references are involved.To address these issues, we propose Progvis, which is a visualization tool aimed specifically at concurrency using the sharedmemory model. It provides a detailed visualization of objects inmemory and their relation to the running threads in order to helpstudents connect concurrency issues with the affected data. Wehave performed an initial, small scale evaluation on whether usingthe tool helps students solve synchronization problems during voluntary problem-solving sessions. The preliminary results indicatethat students who used the tool did indeed perform better.

    Place, publisher, year, edition, pages
    New York: Association for Computing Machinery (ACM), 2022
    Keywords
    concurrency, synchronization, visualization, computer science education
    National Category
    Computer Sciences Didactics
    Identifiers
    urn:nbn:se:liu:diva-183003 (URN)10.1145/3511861.3511885 (DOI)001074617200014 ()9781450396431 (ISBN)
    Conference
    24th Australasian Computing Education Conference (ACE), ELECTR NETWORK, feb 14-17, 2022
    Available from: 2022-02-17 Created: 2022-02-17 Last updated: 2023-11-07Bibliographically approved
    7. A Weak Memory Model in Progvis: Verification and Improved Accuracy of Visualizations of Concurrent Programs to Aid Student Learning
    Open this publication in new window or tab >>A Weak Memory Model in Progvis: Verification and Improved Accuracy of Visualizations of Concurrent Programs to Aid Student Learning
    2022 (English)In: Koli Calling '22: Proceedings of the 22nd Koli Calling International Conference on Computing Education Research / [ed] Ilkka Jormanainen, Andrew Petersen, ACM Publications, 2022, article id 14Conference paper, Published paper (Refereed)
    Abstract [en]

    Previous research has shown that many students struggle with solving small concurrency problems after their first course on concurrency. A possible reason for this is that students do not have a suitable mental model of the semantics of the underlying programming language, and are therefore not able to properly reason about the program’s behavior. One way to help students learn concurrency and improve their mental model is through the use of visualization tools. Progvis is one such visualization tool that is not only aimed at concepts related to concurrency, but also provides an accurate visualization of more fundamental concepts to illustrate how they interact with concurrency. In previous work, the authors of Progvis performed a small-scale evaluation of the tool, and highlighted some areas of improvement. In this paper, we address these shortcomings by improving the memory model visualized by Progvis and implementing a model checker. We also evaluate Progvis on a larger scale by incorporating it into a course on concurrency and operating systems, which allows assessing whether using Progvis aids students in learning concurrency. The results indicate that Progvis (with our improvements) is successful in helping students realize how concurrency interacts with more fundamental concepts, and that students find it useful in helping them understand the content of the concurrency assignments.

    Place, publisher, year, edition, pages
    ACM Publications, 2022
    Keywords
    concurrency, synchronization, visualization, computer science education
    National Category
    Computer and Information Sciences Didactics
    Identifiers
    urn:nbn:se:liu:diva-190519 (URN)10.1145/3564721.3565947 (DOI)2-s2.0-85142922678 (Scopus ID)9781450396165 (ISBN)
    Conference
    Koli Calling '22: the 22nd Koli Calling International Conference on Computing Education Research, November 2022, Koli Finland
    Available from: 2022-12-12 Created: 2022-12-12 Last updated: 2023-01-30Bibliographically approved
    8. Using Model-Checking and Peer-Grading to Provide Automated Feedback to Concurrency Exercises in Progvis
    Open this publication in new window or tab >>Using Model-Checking and Peer-Grading to Provide Automated Feedback to Concurrency Exercises in Progvis
    2023 (English)In: ACE '23: Proceedings of the 25th Australasian Computing Education Conference, Association for Computing Machinery , 2023, p. 11-20Conference paper, Published paper (Refereed)
    Abstract [en]

    Previous research has shown that even though many students are aware of overarching problems with concurrency, they are less successful in addressing any issues they have found. This implies that the students have not yet developed a mental model that describes the behavior of concurrent systems with enough accuracy. One way to help students explore the non-determinism of concurrent systems and thereby develop their mental model is through the use of visualization tools. One example of such a tool is Progvis, which provides students with a detailed visualization of the program state, and allows students to single-step individual threads to explore the program’s behavior in a concurrent environment. One problem with this type of tools is that they are not able to provide feedback on whether or not a proposed solution is correct, which limits their percieved usefulness. To increase the percieved usefulness of Progvis, we extended it with a system that utilizes model-checking and peer-grading to provide automated feedback to students. Our hopes were that this would encourage students to further use Progvis to practice concurrent programming. The system was used during two years in a course on concurrency and operating systems. This made it possible to utilize the experiences from the first year to further improve the system for the second year. Overall, the students expressed that they found our additions helpful. Additionally, we observed a slight increase in usage in the second year compared to the first year, which suggests that the improvements in the second year increased students’ motivation to some extent.

    Place, publisher, year, edition, pages
    Association for Computing Machinery, 2023
    Series
    ACE ’23
    Keywords
    undergraduate, gamification, model checking, synchronization, concurrency, visualization, peer grading, computer science education
    National Category
    Computer Sciences
    Identifiers
    urn:nbn:se:liu:diva-191344 (URN)10.1145/3576123.3576125 (DOI)9781450399418 (ISBN)
    Conference
    ACE '23: Australasian Computing Education Conference
    Available from: 2023-01-30 Created: 2023-01-30 Last updated: 2023-02-08Bibliographically approved
    9. The Progression of Students’ Ability to Work With Scope, Parameter Passing and Aliasing
    Open this publication in new window or tab >>The Progression of Students’ Ability to Work With Scope, Parameter Passing and Aliasing
    2023 (English)In: ACE '23: Proceedings of the 25th Australasian Computing Education Conference, Association for Computing Machinery , 2023, p. 39-48Conference paper, Published paper (Refereed)
    Abstract [en]

    Students need the ability to reason about the behavior of programs when working with advanced concepts like concurrency and abstraction. To achieve this, students require core programming skills that allow them to trace and predict the outcome of a program. While previous research indicates that teachers cannot expect students to acquire all core programming skills after their introductory CS course, less is known of students’ progression in later years. In this study, we investigate 397 students’ ability to predict the outcome of short computer programs. The participants are from different programs and progressions in their studies. We find that students, regardless of program and year, struggle with predicting the outcome of short programs that require an accurate mental model of some less readily apparent concepts, such as references. Further, we discover that there is no significant improvement in the first three years. Finally, we propose further avenues of research to improve these learning outcomes.

    Place, publisher, year, edition, pages
    Association for Computing Machinery, 2023
    Series
    ACE ’23
    Keywords
    CS1, tracing, mental model, computer science education
    National Category
    Computer Sciences
    Identifiers
    urn:nbn:se:liu:diva-191345 (URN)10.1145/3576123.3576128 (DOI)9781450399418 (ISBN)
    Conference
    ACE '23: Australasian Computing Education Conference
    Available from: 2023-01-30 Created: 2023-01-30 Last updated: 2023-04-04Bibliographically approved
    Download full text (pdf)
    fulltext
    Download (png)
    presentationsbild
  • 2.
    Strömbäck, Filip
    et al.
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Haglund, Pontus
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Berglund, Aseel
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Berglund, Erik
    Linköping University, Department of Computer and Information Science, Human-Centered systems. Linköping University, Faculty of Science & Engineering.
    The Progression of Students’ Ability to Work With Scope, Parameter Passing and Aliasing2023In: ACE '23: Proceedings of the 25th Australasian Computing Education Conference, Association for Computing Machinery , 2023, p. 39-48Conference paper (Refereed)
    Abstract [en]

    Students need the ability to reason about the behavior of programs when working with advanced concepts like concurrency and abstraction. To achieve this, students require core programming skills that allow them to trace and predict the outcome of a program. While previous research indicates that teachers cannot expect students to acquire all core programming skills after their introductory CS course, less is known of students’ progression in later years. In this study, we investigate 397 students’ ability to predict the outcome of short computer programs. The participants are from different programs and progressions in their studies. We find that students, regardless of program and year, struggle with predicting the outcome of short programs that require an accurate mental model of some less readily apparent concepts, such as references. Further, we discover that there is no significant improvement in the first three years. Finally, we propose further avenues of research to improve these learning outcomes.

    Download full text (pdf)
    fulltext
  • 3.
    Strömbäck, Filip
    et al.
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Mannila, Linda
    Linköping University, Department of Computer and Information Science, Artificial Intelligence and Integrated Computer Systems. Linköping University, Faculty of Science & Engineering.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Using Model-Checking and Peer-Grading to Provide Automated Feedback to Concurrency Exercises in Progvis2023In: ACE '23: Proceedings of the 25th Australasian Computing Education Conference, Association for Computing Machinery , 2023, p. 11-20Conference paper (Refereed)
    Abstract [en]

    Previous research has shown that even though many students are aware of overarching problems with concurrency, they are less successful in addressing any issues they have found. This implies that the students have not yet developed a mental model that describes the behavior of concurrent systems with enough accuracy. One way to help students explore the non-determinism of concurrent systems and thereby develop their mental model is through the use of visualization tools. One example of such a tool is Progvis, which provides students with a detailed visualization of the program state, and allows students to single-step individual threads to explore the program’s behavior in a concurrent environment. One problem with this type of tools is that they are not able to provide feedback on whether or not a proposed solution is correct, which limits their percieved usefulness. To increase the percieved usefulness of Progvis, we extended it with a system that utilizes model-checking and peer-grading to provide automated feedback to students. Our hopes were that this would encourage students to further use Progvis to practice concurrent programming. The system was used during two years in a course on concurrency and operating systems. This made it possible to utilize the experiences from the first year to further improve the system for the second year. Overall, the students expressed that they found our additions helpful. Additionally, we observed a slight increase in usage in the second year compared to the first year, which suggests that the improvements in the second year increased students’ motivation to some extent.

    Download full text (pdf)
    fulltext
  • 4.
    Strömbäck, Filip
    et al.
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Mannila, Linda
    Linköping University, Department of Computer and Information Science, Artificial Intelligence and Integrated Computer Systems. Linköping University, Faculty of Science & Engineering.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    A Weak Memory Model in Progvis: Verification and Improved Accuracy of Visualizations of Concurrent Programs to Aid Student Learning2022In: Koli Calling '22: Proceedings of the 22nd Koli Calling International Conference on Computing Education Research / [ed] Ilkka Jormanainen, Andrew Petersen, ACM Publications, 2022, article id 14Conference paper (Refereed)
    Abstract [en]

    Previous research has shown that many students struggle with solving small concurrency problems after their first course on concurrency. A possible reason for this is that students do not have a suitable mental model of the semantics of the underlying programming language, and are therefore not able to properly reason about the program’s behavior. One way to help students learn concurrency and improve their mental model is through the use of visualization tools. Progvis is one such visualization tool that is not only aimed at concepts related to concurrency, but also provides an accurate visualization of more fundamental concepts to illustrate how they interact with concurrency. In previous work, the authors of Progvis performed a small-scale evaluation of the tool, and highlighted some areas of improvement. In this paper, we address these shortcomings by improving the memory model visualized by Progvis and implementing a model checker. We also evaluate Progvis on a larger scale by incorporating it into a course on concurrency and operating systems, which allows assessing whether using Progvis aids students in learning concurrency. The results indicate that Progvis (with our improvements) is successful in helping students realize how concurrency interacts with more fundamental concepts, and that students find it useful in helping them understand the content of the concurrency assignments.

    Download full text (pdf)
    fulltext
  • 5.
    Björn, Camilla
    et al.
    KTH Royal Institute of Technology,Dept. of Theoretical Computer Science,Stockholm,Sweden.
    Haglund, Pontus
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Munz, Katharina
    KTH Royal Institute of Technology,Dept. of Theoretical Computer Science,Stockholm,Sweden.
    Strömbäck, Filip
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    It’s Okay Because I Worked Really Hard! – Student Justifications for Questionable Collaboration while Solving Computer Labs2022In: 2022 IEEE Frontiers in Education Conference (FIE), IEEE, 2022Conference paper (Refereed)
    Abstract [en]

    In this full research paper we examine questionable collaboration from a student perspective. Collaborating while solving computer lab assignments is often considered an important part when learning computer science, as it allows students to discuss their work, while also practicing working together. However, it also introduces risks, such as students collaborating in ways negatively impacting their learning outcomes and leading to inaccurate grading. Hence it is important to work towards reducing the use of these poor collaborative practices. In order to ameliorate the problem with academic misconduct, we need to understand students’ justifications for deviating from acceptable practices. In this paper we therefore investigate how students justify their collaborative practices during computer lab assignments in situations they experience as questionable. The justifications were collected through 15 semi-structured interviews with students experienced in pair programming, majoring in computer science and other technical fields from two large well-known European universities.The justifications from the interviews were analysed using phenomenography resulting in seven categories: external pressure, lack of interest, spending time on the assignment, understanding the end product, contributing to the process, learning from the assignment and reflecting on the purpose of the learning. These describe in which situations students might deviate from the rules and can be used by institutions to prevent such behavior.

    Download full text (pdf)
    fulltext
  • 6.
    Strömbäck, Filip
    et al.
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Mannila, Linda
    Linköping University, Department of Computer and Information Science, Artificial Intelligence and Integrated Computer Systems. Linköping University, Faculty of Science & Engineering.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Pilot Study of Progvis: A Visualization Tool for Object Graphs and Concurrency via Shared Memory2022In: PROCEEDINGS OF THE 24TH AUSTRALASIAN COMPUTING EDUCATION CONFERENCE, ACE 2022, New York: Association for Computing Machinery (ACM), 2022, p. 123-132Conference paper (Refereed)
    Abstract [en]

    Concurrency and synchronization are two topics that are becomingincreasingly important for computer science students due to thehigh number of cores available in most modern devices. These aretopics that many students struggle with at first, perhaps partiallydue to the inherent nondeterminism and the difficulty to test forabsence of race conditions. Furthermore, previous research indicate that some common mistakes when working with concurrencymight be due students not connecting the concurrency concepts(such as synchronization) to the data that needs to be protected,especially when pointers and references are involved.To address these issues, we propose Progvis, which is a visualization tool aimed specifically at concurrency using the sharedmemory model. It provides a detailed visualization of objects inmemory and their relation to the running threads in order to helpstudents connect concurrency issues with the affected data. Wehave performed an initial, small scale evaluation on whether usingthe tool helps students solve synchronization problems during voluntary problem-solving sessions. The preliminary results indicatethat students who used the tool did indeed perform better.

    Download full text (pdf)
    fulltext
  • 7.
    Strömbäck, Filip
    et al.
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Mannila, Linda
    Linköping University, Department of Computer and Information Science, Artificial Intelligence and Integrated Computer Systems. Linköping University, Faculty of Science & Engineering.
    KAMKAR, Mariam
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    The Non-Deterministic Path to Concurrency – Exploring how Students Understand the Abstractions of Concurrency2021In: Informatics in Education. An International Journal, ISSN 1648-5831, E-ISSN 2335-8971, Vol. 20, no 4, p. 683-715Article in journal (Refereed)
    Abstract [en]

    Concurrency is often perceived as difficult by students. One reason for this may be due to the fact that abstractions used in concurrent programs leave more situations undefined compared to sequential programs (e.g., in what order statements are executed), which makes it harder to create a proper mental model of the execution environment. Students who aim to explore the abstractions through testing are further hindered by the non-determinism of concurrent programs since even incorrect programs may seem to work properly most of the time. In this paper we aim to explore how students understanding these abstractions by examining 137 solutions to two concurrency questions given on the final exam in two years of an introductory concurrency course. To highlight problematic areas of these abstractions, we present alternative abstractions under which each incorrect solution would be correct.

    Download full text (pdf)
    fulltext
  • 8.
    Haglund, Pontus
    et al.
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Strömbäck, Filip
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Mannila, Linda
    Linköping University, Department of Computer and Information Science, Artificial Intelligence and Integrated Computer Systems. Linköping University, Faculty of Science & Engineering.
    Understanding Students’ Failure to use Functions as a Tool for Abstraction – An Analysis of Questionnaire Responses and Lab Assignments in a CS1 Python Course2021In: Informatics in Education. An International Journal, ISSN 1648-5831, E-ISSN 2335-8971, Vol. 20, no 4, p. 583-614Article in journal (Refereed)
    Abstract [en]

    Controlling complexity through the use of abstractions is a critical part of problem solving in programming. Thus, becoming proficient with procedural and data abstraction through the use of user-defined functions is important. Properly using functions for abstraction involves a number of other core concepts, such as parameter passing, scope and references, which are known to be difficult. Therefore, this paper aims to study students proficiency with these core concepts, and students ability to apply procedural and data abstraction to solve problems. We collected data from two years of an introductory Python course, both from a questionnaire and from two lab assignments. The data shows that students had difficulties with the core concepts, and a number of issues solving problems with abstraction. We also investigate the impact of using a visualization tool when teaching the core concepts.

    Download full text (pdf)
    fulltext
  • 9.
    Nelson, Greg L.
    et al.
    Univ Washington, WA 98195 USA.
    Strömbäck, Filip
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Korhonen, Ari
    Aalto Univ, Finland.
    Begum, Marjahan
    Copenhagen Business Sch, Denmark.
    Blamey, Ben
    Uppsala Univ, Sweden.
    Jin, Karen H.
    Univ New Hampshire, NH USA.
    Lonati, Violetta
    Univ Milan, Italy.
    MacKellar, Bonnie
    St Johns Univ, NY USA.
    Monga, Mattia
    Univ Milan, Italy.
    Differentiated Assessments for Advanced Courses that Reveal Issues with Prerequisite Skills: A Design Investigation2020In: ITICSE-WGR20: PROCEEDINGS OF THE WORKING GROUP REPORTS ON INNOVATION AND TECHNOLOGY IN COMPUTER SCIENCE EDUCATION, ASSOC COMPUTING MACHINERY , 2020, p. 75-129Conference paper (Refereed)
    Abstract [en]

    Computing learners may not master basic concepts, or forget them between courses or from infrequent use. Learners also often struggle with advanced computing courses, perhaps from weakness with prerequisite concepts. One underlying challenge for researchers and instructors is determining the reason why a learner gets an advanced question wrong. Was the wrong answer because the learner lacked prerequisite skills, has not mastered the advanced skill, or some combination of the two? We contribute a design investigation into how to create differentiated questions which diagnose prerequisite and advanced skills at the same time. We focused on tracing and related skills as prerequisites, and on advanced object-oriented programming, concurrency, algorithm and data structures as the advanced skills. We conducted an inductive qualitative analysis of existing assessment questions from instructors and from a concept inventory with a validity argument (the Basic Data Structures Inventory). We found dependencies on a variety of prerequisite knowledge and mixed potential for diagnosing difficulties with prerequisites. Inspired by this analysis, we developed examples of differentiated assessments and reflected on design principles for creating/modifying assessments to better assess both advanced and prerequisite skills. Our example differentiated assessment questions and methods help enable research into how prerequisites skills affect learning of advanced concepts. They also may help instructors better understand and help learners with varying prerequisite knowledge, which may improve equity of learning outcomes. Our work also raises theoretical questions about what assessments really assess and how separate advanced topics and prerequisite skills are.

  • 10.
    Strömbäck, Filip
    et al.
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Mannila, Linda
    Linköping University, Department of Computer and Information Science, Artificial Intelligence and Integrated Computer Systems. Linköping University, Faculty of Science & Engineering.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Exploring Students’ Understanding of Concurrency: A Phenomenographic Study2020In: Proceedings of SIGCSE ’20, ACM Publications, 2020Conference paper (Refereed)
    Abstract [en]

    This paper continues previous efforts in understanding the problemsstudents face when learning concurrency. In this paper, weexplore students’ understanding of the subject using phenomenographyin order to gain insights that can aid in explaining the underlyingcauses for common student mistakes in concurrency, whichhas been studied in depth previously. Students’ experience of concurrencyand critical sections were analyzed using a phenomenographicstudy based on interviews with students attending one oftwo courses on concurrency and operating systems. We present6 categories describing students’ experience of concurrency, and4 categories describing students’ experience of critical sections inthis paper. Furthermore, these categories are related to previousresults, both to explore how misconceptions in the categores relateto student mistakes and to estimate how common it is for eachcategory to be discerned.

    Download full text (pdf)
    fulltext
  • 11.
    Strömbäck, Filip
    et al.
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Mannila, Linda
    Linköping University, Department of Computer and Information Science, Artificial Intelligence and Integrated Computer Systems. Linköping University, Faculty of Science & Engineering.
    Asplund, Mikael
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    A Student's View of Concurrency: A Study of Common Mistakes in Introductory Courses on Concurrency2019In: Proceedings of the 2019 ACM Conference on International Computing Education Research, New York, NY, USA: Association for Computing Machinery (ACM), 2019, p. 229-237Conference paper (Refereed)
    Abstract [en]

    This paper investigates common misconceptions held by students regarding concurrency in order to better understand how concurrency education can be improved in the future. As a part of the exam in two courses on concurrency and operating systems, students were asked to identify and eliminate any concurrency issues in a piece of code as a part of their final exam. Different types of mistakes were identified and the 216 answers were sorted into categories accordingly. The results presented in this paper show that while most students were able to identify the cause of an issue given its symptoms, only approximately half manage to successfully eliminate the concurrency issues. Many of the incorrect solutions fail to associate shared data with a synchronization primitive, e.g. using one lock to protect multiple instances of a data structure, or multiple locks to protect the same instance in different situations. This suggests that students may not only have trouble dealing with concepts related to concurrency, but also more fundamental concepts related to the underlying computational model. Finally, this paper proposes possible explanations for the students' mistakes in terms of improper mental models, and suggests types of problems that highlight the issues with these mental models to improve students' understanding of the subject.

    Download full text (pdf)
    fulltext
  • 12.
    Strömbäck, Filip
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Students Views of Concurrency and Synchronization2019In: 19TH KOLI CALLING CONFERENCE ON COMPUTING EDUCATION RESEARCH (KOLI CALLING 2019), ACM Digital Library, 2019Conference paper (Refereed)
    Abstract [en]

    This extended abstract describes our ongoing effort to support students learning and understanding of concurrency and synchronization. We have identified and quantified some of the areas that appear to be problematic to students, and are in the process of further examining underlying causes of these problematic areas. We then aim to utilize this knowledge to suggest interventions to existing approaches in order to better support students learning of the problematic areas in concurrency and evaluate the results of the interventions.

  • 13.
    Strömbäck, Filip
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Storm: A Language Platform for Interacting and Extensible Languages (Tool Demo)2018In: PROCEEDINGS OF THE 11TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON SOFTWARE LANGUAGE ENGINEERING (SLE 18), ASSOC COMPUTING MACHINERY , 2018, p. 60-64Conference paper (Refereed)
    Abstract [en]

    The ability to extend programming languages with domain-specific concepts is becoming an essential technology for developing complex software. However, many domain-specific languages are implemented in a way that interact poorly with the host language. There are a number of tools that aim to improve the situation by simplifying the creation of domain-specific languages, and allow easier interactions between the host language and the domain-specific language. However, many of these tools are limited to a single host language, and rarely allow extending the language used for language creation. To improve the situation, we created the language platform Storm, which aims to make the creation and usage of multiple extensible languages easy and seamless. This is accomplished by means of a shared, standardized namespace and in-process code generation, which gives Storm a high degree of extensibility, making it possible to extend or replace the built-in languages at will.

    Download full text (pdf)
    fulltext
1 - 13 of 13
CiteExportLink to result list
Permanent link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • oxford
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf