Using C in CS1: evaluating the Stanford experience
SIGCSE '93 Proceedings of the twenty-fourth SIGCSE technical symposium on Computer science education
CSI closed lab vs. open lab experiment
SIGCSE '94 Proceedings of the twenty-fifth SIGCSE symposium on Computer science education
C in the first course considered harmful
Communications of the ACM
The challenges of teaching computer programming
Communications of the ACM
Novice programmer errors: language constructs and plan composition
International Journal of Human-Computer Studies
Contributing to success in an introductory computer science course: a study of twelve factors
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
The motivation of students of programming
Proceedings of the 6th annual conference on Innovation and technology in computer science education
Teaching the Nintendo generation to program
Communications of the ACM - Supporting community and building social capital
The Art of Requirements Triage
Computer
Back to Pascal: retro but not backwards
Journal of Computing Sciences in Colleges
First course in computer science, a small survey
SIGCSE '77 Proceedings of the seventh SIGCSE technical symposium on Computer science education
Seven Deadly Sins of Introductory Programming Language Design
SEEP '96 Proceedings of the 1996 International Conference on Software Engineering: Education and Practice (SE:EP '96)
Language tug-of-war: industry demand and academic choice
ACE '03 Proceedings of the fifth Australasian conference on Computing education - Volume 20
Agile Management for Software Development
Agile Management for Software Development
Generalizing Generalizability in Information Systems Research
Information Systems Research
Houston, we have a problem: there's a leak in the CS1 affective oxygen tank
Proceedings of the 35th SIGCSE technical symposium on Computer science education
A study of the difficulties of novice programmers
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
ACM Computing Surveys (CSUR)
What do teachers teach in introductory programming?
Proceedings of the second international workshop on Computing education research
Why students drop out CS1 course?
Proceedings of the second international workshop on Computing education research
Automatic test-based assessment of programming: A review
Journal on Educational Resources in Computing (JERIC)
Automated assessment and experiences of teaching programming
Journal on Educational Resources in Computing (JERIC)
A framework for CS1 closed laboratories
Journal on Educational Resources in Computing (JERIC)
Failure rates in introductory programming
ACM SIGCSE Bulletin
Through the eyes of instructors: a phenomenographic investigation of student success
Proceedings of the third international workshop on Computing education research
Sharing introductory programming curriculum across disciplines
Proceedings of the 8th ACM SIGITE conference on Information technology education
ICER '08 Proceedings of the Fourth international Workshop on Computing Education Research
ITS '08 Proceedings of the 9th international conference on Intelligent Tutoring Systems
Education: Teaching computing to everyone
Communications of the ACM - Security in the Browser
Do LEGO® Mindstorms® motivate students in CS1?
Proceedings of the 40th ACM technical symposium on Computer science education
STREAM: A First Programming Process
ACM Transactions on Computing Education (TOCE)
Extending the Engagement Taxonomy: Software Visualization and Collaborative Learning
ACM Transactions on Computing Education (TOCE)
A systematic review of theory use in studies investigating the motivations of software engineers
ACM Transactions on Software Engineering and Methodology (TOSEM)
Estimating programming knowledge with Bayesian knowledge tracing
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
A visualisation tool for the programming process
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Coarse-grained detection of student frustration in an introductory programming course
ICER '09 Proceedings of the fifth international workshop on Computing education research workshop
Lower dropout rates and better grades through revised course infrastructure
CATE '07 Proceedings of the 10th IASTED International Conference on Computers and Advanced Technology in Education
FIE'09 Proceedings of the 39th IEEE international conference on Frontiers in education conference
Empirical validation of the Classic Change Curve on a software technology change project
Information and Software Technology
IEEE Transactions on Education
Continuous Improvement in Electronic Engineering Education
IEEE Transactions on Education
IEEE Transactions on Education
Enhancing Self-Motivation in Learning Programming Using Game-Based Simulation and Metrics
IEEE Transactions on Education
Proceedings of the 45th ACM technical symposium on Computer science education
Hi-index | 0.00 |
It has been estimated that more than two million students started computing studies in 1999 and 650,000 of them either dropped or failed their first programming course. For the individual student, dropping such a course can distract from the completion of later courses in a computing curriculum and may even result in changing their course of study to a curriculum without programming. In this article, we report on how we set out to rehabilitate a troubled first programming course, one for which the dropout statistic and repercussion was evident. The five-year longitudinal case study described in this article began by systematically tracking the pass rate of a first programming course, its throughput, as proposed by the Theory of Constraints. The analyses of these data indicated three main problems in the course: programming discipline difficulty, course arrangement complexity, and limited student motivation. The motivation problem was approached from the Two-Factor Theory point of view. It investigated those factors that led to dissatisfaction among the students, the hygiene factors, and those factors that led to satisfaction, the intrinsic and extrinsic motivators. The course arrangement complexity was found to be a hygiene factor, while the lack of extrinsic and intrinsic motivators contributed to the high dropout rates. The course improvement efforts made no attempt to change the inherent characteristics of the programming discipline, but introduced holistic changes in the course arrangements over a five-year period, from 2005 to 2009, to eliminate the hygiene factors and to increase motivational aspects of the course. This systems approach to course improvement resulted in an increase in the pass rate, from 44% prior to the changes to 68% thereafter, and the overall course atmosphere turned positive. This paper reports on the detailed changes that were made and the improvements that were achieved over this five-year period.