- Teaching and Learning Programming
- Educational Games and Gamification
- Software Engineering Research
- Innovative Teaching and Learning Methods
- Social and Educational Sciences
- Online Learning and Analytics
- Augmented Reality Applications
- Digital Communication and Language
- Academic integrity and plagiarism
- Evolutionary Algorithms and Applications
- Communication in Education and Healthcare
- Software Testing and Debugging Techniques
- Writing and Handwriting Education
- Open Education and E-Learning
- Mobile Learning in Education
- Music Therapy and Health
- Problem and Project Based Learning
Linköping University
2021-2025
KTH Royal Institute of Technology
2022
Students need the ability to reason about behavior of programs when working with advanced concepts like concurrency and abstraction. To achieve this, students require core programming skills that allow them trace predict outcome a program. While previous research indicates teachers cannot expect acquire all after their introductory CS course, less is known students' progression in later years. In this study, we investigate 397 short computer programs. The participants are from different...
Conquering fundamental programming concepts that subtly affect program behavior is a challenge for Computer Science (CS) students. Learning parameter passing, aliasing, scope, and references, how they work being able to reason about them, crucial CS In this qualitative study we explore these are taught from the perspective of Teaching Assistants (TAs). Using phenomenographic analysis find several areas could be improved regarding activities assessments students exposed during their studies....
Controlling complexity through the use of abstractions is a critical part problem solving in programming. Thus, becoming proficient with procedural and data abstraction user-defined functions important. Properly using for involves number other core concepts, such as parameter passing, scope references, which are known to be difficult. Therefore, this paper aims study students' proficiency these ability apply solve problems. We collected from two years an introductory Python course, both...
There can be many reasons why students fail to answer correctly summative tests in advanced computer science courses: often the cause is a lack of prerequisites or misconceptions about topics presented previous courses. One ITiCSE 2020 working groups investigated possibility designing assessments suitable for differentiating between fragilities (in particular, knowledge and skills related introductory programming courses) topics. This paper reports on an empirical evaluation instrument...
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 science, as it allows students to discuss their work, also practicing working together. However, introduces risks, such collaborating in ways negatively impacting outcomes and leading inaccurate grading. Hence work towards reducing the use of these poor collaborative practices. order ameliorate...