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.
Prior programming knowledge of students has a major impact on introductory programming courses. Those with prior experience often seem to breeze through the course. Those without prior experience see others breeze through the course and disengage from the material or drop out. The purpose of this study is to demonstrate that novice student programming behavior can be modeled as a Markov process. The resulting transition matrix can then be used in machine learning algorithms to create clusters of similarly behaving students. We describe in detail the state machine used in the Markov process and how to compute the transition matrix. We compute the transition matrix for 665 students and cluster them using the k-means clustering algorithm. We choose the number of cluster to be three based on analysis of the dataset. We show that the created clusters have statistically different means for student prior knowledge in programming, when measured on a Likert scale of 1-5.
Students' performances in introductory programming courses show large variation across students. There may be many reasons for these variations, such as methods of teaching, teacher competence in the subject, students' coding backgrounds and abilities, students' self-discipline, the teaching environment, and the resources available to students, all of which can affect student performance and outcomes. Our observations in teaching programming courses (at Al-Imam Muhammad Ibn Saud Islamic University in Riyadh) are that many students (up to 50% per course) drop out. There is a strong belief by many instructors that such a high dropout rate is due, at least in part, to students underestimating the effort needed to finish this course and not following instructions as recommended. This paper reviews the factors that affect student performance in an introductory programming course (CS1) and aims to discover correlations between various assessment methods, students' participation and their final performance measured. It analyses mark distributions across various assessment methods to identify which assessment method best predicts final exam marks and overall marks, and gives recommendations for assessment in introductory programming courses.
Programming is one of the basic subjects in most informatics, computer science mathematics and technical faculties' curricula. Integrated overview of the models for teaching programming, problems in teaching and suggested solutions were presented in this paper. Research covered current state of 1019 programming subjects in 715 study programmes at total of 218 faculties and 143 universities in 35 European countries that were analyzed. It was concluded that while most of the programmes highly support object-oriented paradigm of programming, introductory programming subjects are mainly based on imperative paradigm.
Mathematical logic is a discipline used in sciences and humanities with different point of view. Although in tertiary level computer science education it has a solid place, it does not hold also for secondary level education. We present a heterogeneous study both theoretical based and empirically based which points out the key role of logic in computer science, computer science education and knowledge representation. We focus on the key contrast of semantics and syntax, the resolution principle as a leading inference technique (giving also interesting non-clausal generalization of the rule). Further we discuss the possibilities of inclusion the non-classical (many-valued) logics in education together with the original generalization of the non-clausal resolution rule into fuzzy logic. The last part describes partial results of the research concerning the secondary education in the Czech Republic especially in the mathematical logic field. The generalization of the presented ideas entails the article.