Matti Luukkainen

dblp:41/105 · DBLP profile ↗
← Back
19ranked-venue papers
3as first author
3since 2021 · last 2023
0000-0003-4779-4998ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Human-computer interaction and ubiquitous computing · 10 · 2 first-author · 1 since 2021Software engineering, systems software and programming languages · 8 · 1 first-author · 2 since 2021Applied, interdisciplinary, general and emerging computing · 3Computer networks · 1 · 1 first-authorDatabases, data management, data science and information retrieval · 1Theory of computation · 1
YearPublicationVenuePosition
2023 A systematic literature review of capstone courses in software engineering
abstract
Tertiary education institutions aim to prepare their computer science and software engineering students for working life. While much of the technical principles are covered in lower-level courses, team-based capstone courses are a common way to provide students with hands-on experience and teach soft skills. This paper explores the characteristics of project-based software engineering capstone courses presented in the literature. The goal of this work is to understand the pros and cons of different approaches by synthesising the various aspects of software engineering capstone courses and related experiences. In a systematic literature review for 2007–2022, we identified 127 articles describing real-world capstone courses. These articles were analysed based on their presented course characteristics and the reported course outcomes. The characteristics were synthesised into a taxonomy consisting of duration, team sizes, client and project sources, project implementation, and student assessment. We found out that capstone courses generally last one semester and divide students into groups of 4–5 where they work on a project for a client. For a slight majority of courses, the clients are external to the course staff and students are often expected to produce a proof-of-concept level software product as the main end deliverable. The courses generally include various forms of student assessment both during and at the end of the course. This paper provides researchers and educators with a classification of characteristics of software engineering capstone courses based on previous research. We also further synthesise insights on the reported course outcomes. Our review study aims to help educators to identify various ways of organising capstones and effectively plan and deliver their own capstone courses. The characterisation also helps researchers to conduct further studies on software engineering capstones.
Saara Tenhunen, Tomi Männistö, Matti Luukkainen, Petri Ihantola
Inf. Softw. Technol.3
2022 Benefits and Challenges of Isomorphism in Single-page Applications: Case Study and Review of Gray Literature
abstract
An isomorphic web application shares code between the server and the client by cleverly combining suitable parts of server-rendered applications and single-page applications. In this article, we study the benefits and challenges of isomorphism in single-page applications in terms of a gray literature review and a case study. The case study was conducted as a developer interview, where developers familiar with isomorphic web applications were interviewed. The results of both studies are then compared and the key findings are compared together. The results show that isomorphism in single-page applications brings benefits to both the developers and the end-users. Isomorphism in single-page applications is challenging to implement and has some downsides, but they mostly affect developers. Implementing isomorphism enables sharing code between the server and the client, but it increases the complexity of the application. Framework and library compatibility are issues that must be addressed by the developers.
Aleksi Huotala, Matti Luukkainen, Tommi Mikkonen
J. Web Eng.2
2021 Persistence of Time Management Behavior of Students and Its Relationship with Performance in Software Projects
abstract
Teachers often preach for their students to start working on assignments early. There is even a fair amount of scientific evidence that starting early is beneficial for learning. In this work, we investigate students’ time management behavior in a second-year project-based software engineering course. In the course, students work on a software project in small groups of four to six students. We study time management from multiple angles. Firstly, we conduct an exploratory factor analysis and study how different time management related behavioral metrics are related to one another, for example, whether individual students’ time management practices in the second-year group project-based course are similar to their earlier time management practices in first-year courses where students work on assignments individually. Understanding how students’ previous time management behavior is manifested in later project-based courses would be beneficial when designing project-based education. Secondly, we study whether students’ time management practices affect the peer-review scores they get from their group members. Lastly, we explore how time management affects course performance. Our findings suggest that time management behavior, even from courses taken in the past, can be used to predict how students perform in future courses.
Joonas Häkkinen, Petri Ihantola, Matti Luukkainen, Antti Leinonen, Juho Leinonen 0001
ICER3
2020 Teaching Container-Based DevOps Practices
Jami Kousa, Petri Ihantola, Arto Hellas, Matti Luukkainen
ICWE4
2019 Admitting Students through an Open Online Course in Programming: A Multi-year Analysis of Study Success
abstract
Since 2012, part of computer science student body at the University of Helsinki has been selected by using a massively open online version of the same introductory programming course that our freshmen take. In this multi-year study, we compare study success between students accepted through the online course (MOOC intake) and students accepted through the traditional entrance exam and high school matriculation exam based intake (normal intake). Our findings indicate that the MOOC intake perform better in computer science studies when looking at completed credits and grade point average, but there is no difference when considering other courses. Retention among the MOOC intake is better than among the normal intake. Additionally, students in the MOOC intake are more likely to complete their capstone project and Bachelor's thesis in the studied time-frame. However, the MOOC intake makes the already skewed gender balance more pronounced.
Juho Leinonen 0001, Petri Ihantola, Antti Leinonen, Henrik Nygren, Jaakko Kurhila, Matti Luukkainen, Arto Hellas
ICER6
2018 Designing and implementing an environment for software start-up education: Patterns and anti-patterns
abstract
Today’s students are prospective entrepreneurs, as well as potential employees in modern, start-up-like intrapreneurship environments within established companies. In these settings, software development projects face extreme requirements in terms of innovation and attractiveness of the end-product. They also suffer severe consequences of failure such as termination of the development effort and bankruptcy. As the abilities needed in start-ups are not among those traditionally taught in universities, new knowledge and skills are required to prepare students for the volatile environment that new market entrants face. This article reports experiences gained during seven years of teaching start-up knowledge and skills in a higher-education institution. Using a design-based research approach, we have developed the Software Factory, an educational environment for experiential, project-based learning. We offer a collection of patterns and anti-patterns that help educational institutions to design, implement and operate physical environments, curricula and teaching materials, and to plan interventions that may be required for project-based start-up education.
Fabian Fagerholm, Arto Hellas, Matti Luukkainen, Kati Kyllonen, Sezin Gizem Yaman, Hanna Mäenpää
J. Syst. Softw.3
2017 Patterns for Designing and Implementing an Environment for Software Start-Up Education
abstract
Today's students are prospective entrepreneurs and employees in modern, start-up like environments within established companies. In these settings, software development projects face extreme requirements in terms of innovation and attractiveness of the end-product. They also suffer severe consequences of failure such as termination of the development effort and bankruptcy. As the abilities needed in start-ups are not among those traditionally taught in universities, new knowledge and skills are required to prepare students for the volatile environment that new market entrants face. This paper reports experiences gained during seven years of teaching start-up knowledge and skills in a higher-education institution. We offer a collection of patterns that help educational institutions to design, implement and operate physical environments, curricula and teaching materials, and to plan interventions that may be required for project-based start-up education.
Fabian Fagerholm, Arto Hellas, Matti Luukkainen, Kati Kyllonen, Sezin Gizem Yaman, Hanna Mäenpää
SEAA3
2014 Using CodeBrowser to seek differences between novice programmers
abstract
A large body of systems that gather data on students' programming process exists, and with the increase of massive open online courses in programming, the amount of gathered data is growing even at a higher rate. A common issue for data analysis is the lack of common tools for visualizing source code snapshots. We have created a browser-side snapshot analysis tool called CodeBrowser that provides a clean REST API that anyone can integrate their snapshot data into. In this article, we describe CodeBrowser and as an example, discuss how it has been used to seek differences between novice programmers that have passed (n=10) or failed (n=10) an introductory programming course.
Kenny Heinonen, Kasper Hirvikoski, Matti Luukkainen, Arto Vihavainen
SIGCSE3
2013 Bringing undergraduates to the web: Baby steps in webifying a software engineering curriculum
abstract
Software engineering has evolved greatly during the last couple of decades. The methodologies for organizing software engineering projects, as well as the technologies for building software have changed dramatically. However, this evolution is seldom reflected in the software engineering-related education provided by research-oriented computer science departments. Many traditional research-oriented universities continue to teach using the “talking head”-approach, where students are expected to absorb information out of the atmosphere in the lecture halls. In this paper, we describe our work towards “webifying” a software engineering curriculum, where learning by doing plays a key role.
Matti Luukkainen, Arto Vihavainen
CSEE&T1
2013 Using Students' Programming Behavior to Predict Success in an Introductory Mathematics Course
Arto Vihavainen, Matti Luukkainen, Jaakko Kurhila
EDM2
2013 Results from a Three-Year Transition to the Extreme Apprenticeship Method
abstract
Although programming is the basis for many CS/IT-programmes, it is still often being taught using methods from the pre-book era. This paper describes a transition from traditional lecture-based approach to using the Extreme Apprenticeship method with an automated assessment service in teaching programming. The transition has led to a situation, where the course instructors feel their work as more meaningful and have more time for students. A comparison between a traditional lecture-based approach and the Extreme Apprenticeship method over the last 20 course instances shows a statistically significant improvement in the students' pass-rates, as well as in the amount of students that complete exercises during the final weeks of a programming course.
Arto Vihavainen, Matti Luukkainen
ICALT2
2013 Massive increase in eager TAs: experiences from extreme apprenticeship-based CS1
abstract
Incorporating students to participate as teaching assistants in our CS1 as early as during their second semester has started a snowball effect, in which more and more students want to be a part of the experience. We allow students to contribute and take responsibility in a context they see as meaningful for teaching. The students-as-teachers approach means that they are mentored by senior teachers in the actual teaching context, which guarantees enough peer and faculty support for students undertaking the task. A significant percentage of our students (ca. 20%) participate as teachers. This has brought us several benefits: (1) new students are welcomed to the learning community by other students as representatives of the institution, not just student organizations, (2) students understand and undertake the responsibility of being a teacher early, and (3) a massive number of eager TAs.
Arto Vihavainen, Thomas Vikberg, Matti Luukkainen, Jaakko Kurhila
ITiCSE3
2013 Scaffolding students' learning using test my code
abstract
As programming is the basis of many CS courses, meaningful activities in supporting students on their journey towards being better programmers is a matter of utmost importance. Programming is not only about learning simple syntax constructs and their applications, but about honing practical problem-solving skills in meaningful contexts. In this article, we describe our current work on an automated assessment system called Test My Code (TMC), which is one of the feedback and support mechanisms that we use in our programming courses. TMC is an assessment service that (1) enables building of scaffolding into programming exercises; (2) retrieves and updates tasks into the students' programming environment as students work on them, and (3) causes no additional overhead to students' programming process. Instructors benefit from TMC as it can be used to perform code reviews, and collect and send feedback even on fully on-line courses.
Arto Vihavainen, Thomas Vikberg, Matti Luukkainen, Martin Pärtel
ITiCSE3
2013 Early Start in Software Coaching
Thomas Vikberg, Arto Vihavainen, Matti Luukkainen, Jaakko Kurhila
XP3
2012 A software craftsman's approach to data structures
abstract
Data Structures (CS2) courses and course books do not usually put much emphasis in the process of how a data structure is engineered or invented. Instead, algorithms are readily given, and the main focus is in the mathematical complexity analysis of the algorithms. We present an alternative approach on presenting data structures using worked examples, i.e., by explicitly displaying the process that leads to the invention and creation of a data stucture and its algorithms. Our approach is heavily backed up by some of the best programming practices advocated by the Agile and Software Craftsmanship communities. It brings the often mathematically oriented CS2 course closer to modern software engineering and practical problem solving, without a need for compromise in proofs and analysis.
Matti Luukkainen, Arto Vihavainen, Thomas Vikberg
SIGCSE1
2011 Extreme apprenticeship method: key practices and upward scalability
abstract
Programming is a craft that can be efficiently learned from people who already master it. Our previous work introduced a teaching method we call Extreme Apprenticeship (XA), an extension to the cognitive apprenticeship model. XA is based on a set of values that emphasize doing and best programming practices, together with continuous feedback between the master and the apprentice. Most importantly, XA is individual instruction that can be applied even in large courses. Our initial experiments (n = 67 and 44) resulted in a significant increase in student achievement level compared to previous courses. In this paper, we reinforce the validity of XA by larger samples (n = 192 and 147) and a different lecturer. The results were similarly successful and show that the application of XA can easily suffer if the core values are not fully adhered to.
Arto Vihavainen, Matti Paksula, Matti Luukkainen, Jaakko Kurhila
ITiCSE3
2011 Extreme apprenticeship method in teaching programming for beginners
abstract
Learning a craft like programming is efficient when novices learn from people who already master the craft. In this paper we define Extreme Apprenticeship, an extension to the cognitive apprenticeship model. Our model is based on a set of values and practices that emphasize learning by doing together with continuous feedback as the most efficient means for learning. We show how the method was applied to a CS I programming course. Application of the method resulted in a significant decrease in the dropout rates in comparison with the previous traditionally conducted course instances.
Arto Vihavainen, Matti Paksula, Matti Luukkainen
SIGCSE3
2001 EASN: Integrating ASN.1 and Model Checking
Vivek K. Shanbhag, K. Gopinath, Markku Turunen, Ari Ahtiainen, Matti Luukkainen
CAV5
2001 Verification of Dense Time Properties using Theories of Untimed Process Algebra
Matti Luukkainen
FORTE1