An empirical study of novice program comprehension in the imperative and object-oriented styles
ESP '97 Papers presented at the seventh workshop on Empirical studies of programmers
Program indentation and comprehensibility
Communications of the ACM
Redesigning introductory computer programming using multi-level online modules for a mixed audience
SIGCSE '03 Proceedings of the 34th SIGCSE technical symposium on Computer science education
Another breadth-first approach to CS I using python
SIGCSE '03 Proceedings of the 34th SIGCSE technical symposium on Computer science education
A mini software engineering project for CS0
Journal of Computing Sciences in Colleges
A CS1 course designed to address interests of women
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Journal of Computing Sciences in Colleges
Viope as a Tool for Teaching Introductory Programming: An Empirical Investigation
CSEET '06 Proceedings of the 19th Conference on Software Engineering Education & Training
"Python first": a lab-based digital introduction to computer science
Proceedings of the 11th annual SIGCSE conference on Innovation and technology in computer science education
Freedom to succeed: a three course introductory sequence using Python and Java
Journal of Computing Sciences in Colleges
A Motivation Guided Holistic Rehabilitation of the First Programming Course
ACM Transactions on Computing Education (TOCE)
Hi-index | 0.00 |
Programming skill is one of the skills everyone tends to expect from a computer science graduate. However, recently many universities have reported high dropout rates and problems grasping the basic programming concepts in the first programming courses. In some cases such problems can severely disturb the normal advancement of the studies since basic programming skill is often a prerequisite for advanced courses. In this paper these problems are tackled by revising the course design emphasizing a close integration of different course elements, and developing an up to date infrastructure for the first programming course. The course was designed based on the imperative-first approach, and implemented with the Python programming language. In addition to justifying the selections made, we also report the results of the first course implementation and compare them with the results from the previous course. Overall the results indicate that the students were performing better than before. With the new course, students felt that the course had become more interesting and useful, even though the course was still considered laborious and challenging. Thus we intend to continue refining the course design and infrastructure while moving the improvement focus on the teaching practices to further improve the learning outcomes of the course.