Fundamentals of Norwegian CS1
Bolland, Sondre Sæther; Popov, Aleksandr; Eide, Tyra Fosheim; Kordts, Robert; Strømme, Torstein J. F.
Journal article, Peer reviewed
Published version

View/ Open
Date
2024Metadata
Show full item recordCollections
- Department of Informatics [1055]
- Registrations from Cristin [12302]
Abstract
The introductory programming course, known as CS1, has evolved considerably since its inception, with diverse opinions on the essential concepts that should be included. This study aims to identify the fundamental concepts taught in Norwegian CS1 courses in order to develop a validated assessment tool: a concept inventory. This tool will be utilized in the Nordic Prior Knowledge Test in Programming, which is designed to assess the pre-existing programming knowledge of students entering higher education. This test uses Python, the dominant programming language in K-12 and higher education in Norway.
To identify the fundamentals of CS1 we employed a triangulation approach that included three perspectives: the intended curriculum, the assessed curriculum, and the experienced curriculum. Our methodology involved a Delphi process with Norwegian CS1 educators, an analysis of final exams from various Norwegian institutions, and surveys of computer science students regarding the difficulty and importance of programming concepts.
Our findings reveal that concepts related to looping, functions, conditionals and error interpreting are central to Norwegian CS1 courses, aligning with existing literature. However, we also identified notable discrepancies compared to older CS1 concept studies developed in other countries, particularly in concepts like recursion, data structures beyond arrays/lists and maps, and test design. These results underscore both the dynamic nature of computer science education and the enduring importance of foundational topics that students are expected to master.