Unlocking the clubhouse: the Carnegie Mellon experience
ACM SIGCSE Bulletin - Women and Computing
Writing for Computer Science
Experiences with a CS0 course targeted for CS1 success
Proceedings of the 36th SIGCSE technical symposium on Computer science education
Using simulation and collaboration in CS1 and CS2
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
Not seeing the forest for the trees: novice programmers and the SOLO taxonomy
Proceedings of the 11th annual SIGCSE conference on Innovation and technology in computer science education
Commonsense computing: what students know before we teach (episode 1: sorting)
Proceedings of the second international workshop on Computing education research
Parson's programming puzzles: a fun and effective learning tool for first programming courses
ACE '06 Proceedings of the 8th Australasian Conference on Computing Education - Volume 52
Commonsense computing: using student sorting abilities to improve instruction
Proceedings of the 38th SIGCSE technical symposium on Computer science education
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Following a thread: knitting patterns and program tracing
Proceedings of the 43rd ACM technical symposium on Computer Science Education
CS circles: an in-browser python course for beginners
Proceeding of the 44th ACM technical symposium on Computer science education
Hi-index | 0.00 |
Novice programmers have difficulty developing an algorithmic solution while simultaneously obeying the syntactic constraints of the target programming language. To see how students fare in algorithmic problem solving when not burdened by syntax, we conducted an experiment in which a large class of beginning programmers were required to write a solution to a computational problem in structured English, as if instructing a child, without reference to program code at all. The students produced an unexpectedly wide range of correct, and attempted, solutions, some of which had not occurred to their teachers. We also found that many common programming errors were evident in the natural language algorithms, including failure to ensure loop termination, hardwiring of solutions, failure to properly initialise the computation, and use of unnecessary temporary variables, suggesting that these mistakes are caused by inexperience at thinking algorithmically, rather than difficulties in expressing solutions as program code.