liu.seSearch for publications in DiVA
Change search
CiteExportLink to record
Permanent link

Direct 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
Teaching and Learning Concurrent Programming in the Shared Memory Model
Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.ORCID iD: 0000-0002-0556-6893
2023 (English)Doctoral 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. 

Abstract [sv]

Datorers prestanda ökar stadigt. Historiskt sett har denna ökning huvudsakligen berott på en ökad hastighet hos processorn, och hur effektivt den har kunnat köra kod. På senare tid har prestandautvecklingen hos enskilda processorer inte varit möjlig i lika stor utsträckning. Därmed kommer prestandaökningen numera främst från ökad parallellism genom att inkludera fler kärnor i processorerna. Dessa kärnor fungerar i princip som oberoende processorer. De kan alltså köra olika kod oberoende av varandra. En dubblering i antalet kärnor kan därmed teoretiskt sett leda till en dubblering i prestandan. För att kunna utnyttja denna extra prestanda måste programmen anpassas för att köras på denna typ av system. Detta är i allmänhet inte en enkel uppgift, då parallellprogrammering ofta anses vara svårt. I och med att system med flera kärnor blir allt vanligare, inte bara i högpresterande datorer, utan också i mindre kraftfulla system som mobiltelefoner och integrerade system, kommer allt fler programmerare att träffa på denna typ av system. Det är därför alltmer viktigt att programmerare har åtminstone en grundläggande förståelse för hur parallellprogrammering fungerar.

I och med att parallellprogrammering är viktigt att kunna som programmerare behöver vi kunna undervisa ämnet på ett bra sätt. Både tidigare forskning och mina erfarenheter som lärare visar dock att parallellprogrammering ofta upplevs som svårt av studenter, och att fler än hälften misslyckas med att lösa små programmeringsproblem i slutet av sin parallellprogrammeringskurs. Målet med denna avhandling är därför att förbättra undervisningen av parallellprogrammeringen, och därmed öka kompetensen hos de programmerare vi utbildar.

För att veta mer exakt varför studenter finner parallellprogrammering svårt ägnas första delen av avhandlingen åt att undersöka detta mer i detalj. Resultaten visar att det inte nödvändigtvis är de nya koncepten som är relaterade till parallellprogrammering som utgör de största problemen. Snarare är en stor del av problematiken för studenter att den icke-determinism som introduceras i parallella system kräver mer formella resonemang kring programs beteende jämfört med sekvensiella program. Detta är ofta något som studenter finner svårt i sig, då det i tidigare kurser ofta går relativt enkelt att testa om ett visst pro-gram fungerar eller ej. I och med att mer formella resonemang krävs, blir det också viktigare att ha en tillräcklig förståelse av grundläggande koncept, såsom hur referenser, pekare, och parameteröverföring fungerar. I och med att det tidigare har gått att testa sig fram i större utsträckning är det inte ovanligt att delar av problemen med parallellprogrammering beror på att studenterna inte har den detaljnivå som krävs i sin förståelse av dessa grundläggande koncept.

Ett sätt att illustrera dessa koncept är genom att använda visualiseringsverktyg. I denna avhandling beskrivs verktyget Progvis, som till skillnad från andra verktyg fokuserar både på problematiken som uppstår när parallellism introduceras och på hur detta interagerar med de grundläggande koncepten som studenter finner svåra. Detta gör att Progvis kan illustrera hur enkla program i språket C exekeveras i stor detalj. Som en positiv bieffekt av denna detaljrikedom kan Progvis också användas i andra sammanhang, exempelvis för att introducera pekararitmetik i C i nybörjarkurser. Utöver möjligheten att visualisera program inkluderar Progvis också möjligheten att automatiskt hitta fel i program, vilket hjälper studenter att verifiera sina resonemang.

Progvis har också testats i praktiken i kurser vid Linköpings universitet. Dessa studier visar att Progvis på kort sikt hjälper studenter att felsöka sina program. Med hjälp av Progvis lyckades de inte bara komma fram till bättre lösningar än studenter som enbart använde vanliga programmeringsverktyg, utan de var även snabbare. Detta kortsiktiga resultat har dock inte nödvändigtvis någon inverkan på studenters lärande. För att utvärdera långsiktig påverkan på studenternas resultat och lärande integrerades användningen av Progvis i en kurs på universitetet. En jämförelse av studenternas prestationer på kursens tentamen visade att de studenter som använt Progvis var bättre på att korrekt associera den synkronisering som behövdes med motsvarande problematiska data jämfört med tidigare år. Sammantaget tyder dessa resultat på att Progvis har en positiv inverkan på studenters lärande av parallellprogrammering.

Place, publisher, year, edition, pages
Linköping: Linköping University Electronic Press, 2023. , p. 121
Series
Linköping Studies in Science and Technology. Dissertations, ISSN 0345-7524 ; 2280
Keywords [en]
Concurrency, Synchronization, Programming, Computer science education, Visualization, Progvis
National Category
Educational Sciences Computer Sciences
Identifiers
URN: urn:nbn:se:liu:diva-191347DOI: 10.3384/9789180750011ISBN: 9789180750004 (print)ISBN: 9789180750011 (electronic)OAI: oai:DiVA.org:liu-191347DiVA, id: diva2:1732002
Public defence
2023-03-03, Ada Lovelace, B-building, Campus Valla, Linköping, 10:15 (Swedish)
Opponent
Supervisors
Note

Funding agencies: The work in this thesis is partly funded by the Graduate School in Computer Science (CUGS).

Available from: 2023-01-30 Created: 2023-01-30 Last updated: 2025-02-18Bibliographically approved
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 Educational Sciences
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: 2025-02-18Bibliographically 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 Educational Sciences Computer and Information Sciences
Identifiers
urn:nbn:se:liu:diva-162150 (URN)10.1145/3328778.3366856 (DOI)000810169400154 ()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: 2025-02-18
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-WGR '20: Proceedings of the Working Group Reports on Innovation and Technology in Computer Science Education / [ed] Guido Rößling, Birgit Krogstie, New York, NY, United States: Association for Computing Machinery (ACM) , 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
New York, NY, United States: Association for Computing Machinery (ACM), 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
Educational Sciences
Identifiers
urn:nbn:se:liu:diva-181938 (URN)10.1145/3437800.3439204 (DOI)000714581100004 ()2-s2.0-85098714400 (Scopus ID)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: 2025-02-18
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: 2024-01-08
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

Open Access in DiVA

fulltext(5708 kB)1244 downloads
File information
File name FULLTEXT01.pdfFile size 5708 kBChecksum SHA-512
1f018291c24f1151c5f42430cf3a7f1d0c9a384f862c6d0c389a0b403f18198a16cf754ed3ffc5c36b2153dd260d0aad0961a0b2149dbcf2bb7d1dc902fa622c
Type fulltextMimetype application/pdf
Order online >>

Other links

Publisher's full text

Authority records

Strömbäck, Filip

Search in DiVA

By author/editor
Strömbäck, Filip
By organisation
Software and SystemsFaculty of Science & Engineering
Educational SciencesComputer Sciences

Search outside of DiVA

GoogleGoogle Scholar
Total: 1248 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

doi
isbn
urn-nbn

Altmetric score

doi
isbn
urn-nbn
Total: 3260 hits
CiteExportLink to record
Permanent link

Direct 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