This research investigates university students’ success in their first programming course (CS1) in relation to their motivation, mathematical ability, programming self-efficacy, and initial goal setting. To our knowledge, these constructs have not been measured in a single study before in the Finnish context. The selection of the constructs is in line with the statistical model that predicts student performance (“PreSS”) (Quille and Bergin, 2018). The constructs are compared with various demographic and background variables, such as study major, prior programming experience, and average weekly working hours. Some of the main results of this study are as follows: (1) students generally entered with a high interest in programming and high motivation, but these factors did not increase during the course, i.e., interest in programming did not increase. (2) Having prior experience yielded higher initial programming self-efficacy, grade expectations, and spending less time on tasks, but not better grades (although worse neither). While these results can be seen as preliminary (and alarming in some parts), they give rise to future research for investigating possible expectation–performance gaps in CS1 and later CS studies. As our dataset accumulates, we also hope to be able to construct a valid success prediction model.
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.
Loops concept is one of the basic programming concepts. Students have difficulties in learning loops concept. Helping learners understand loops is an important task. Visualization is one of the ways to help students improve their understanding. The aim of the study was to construct and evaluate a visualization based instruction related to loops. A mixed method study was conducted. In the experimental phase of the study, the effect of visualization based instruction on pre-service teachers’ achievement, perceived learning and programming attitude was examined. In the qualitative phase of the study, the main purpose was to get more in depth data related to experimental phase. Visualization based instruction helped pre-service teachers improve their understanding of loops concept.
This paper presents an approach for educators to evaluate student progress throughout a course, and not merely based on a final exam. We introduce progress reports and describe how these can be used as a tool to evaluate student learning and understanding during programming courses. Complemented with data from surveys and the exam, the progress reports can be used to build an overall picture of individual student progress in a course, and to answer questions related to how students (1) understand program code as a whole, (2) understand individual constructs, and (3) perceive the difficulty level of different programming topics. We also present results from using this approach in introductory programming courses at secondary level. Our initial experience from using the progress reports is positive, as they provide valuable information during the course, which most likely would remain uncovered otherwise.
The scope of the paper is animation facilities of computer algebra systems (CAS). Animation offers opportunities for visualization of complex mathematical concepts, provides convincing demonstration of ideas and influence of quantities or parameters, helps to generate hypothesis, encourages exploration. Animation can be used to demonstrate many mathematical concepts that are difficult to explain verbally or to show with static pictures. Using animation allows students to explore, experiment and visualize mathematics as a dynamic process. But CAS creates only opportunities. The problem remains for users to realize this potential. So features of CAS such as ease of use, convenience of procedures are important for teaching and learning. The paper deals with animation features of the three most popular CAS - Maple, Matlab, Mathcad and their usefulness in education. The results of practical use of the three CAS in teaching animation procedures are discussed and students' opinion about animation tools of CAS is presented.