Use and assessment of a rigorous approach to CS1

We have developed and implemented a "rigor-first" approach to CS1 instruction, in which we introduce rigorous techniques for understanding algorithms alongside associated programming skills. This core material is developed through a number of engaging problems from more advanced courses in computer science and other natural sciences. These principles are continued in CS2, and the two courses form our "3-2-1" first-year sequence: three programming paradigms and two models of program execution are explored on a single platform. This article discusses the design of our CS1 course, its role in the computer science curriculum, and our experiences with it. Preliminary assessment suggests this approach has merit in our curriculum.

[1]  Eric S. Roberts A C-based graphics library for CS1 , 1995, SIGCSE '95.

[2]  Allan Fisher,et al.  Unlocking the Clubhouse : Women in Computing by Allan Fisher , 2015 .

[3]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[4]  Judith Bishop,et al.  Concurrency the first year (panel session): experience reports , 2000, SIGCSE '00.

[5]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[6]  Doug Baldwin,et al.  A three-fold introduction to computer science , 1994, SIGCSE '94.

[7]  Kim B. Bruce,et al.  Our curriculum has become math-phobic! , 2001, SIGCSE '01.

[8]  Michael E. Caspersen,et al.  Frameworks in CS1: a different way of introducing event-driven programming , 2002, ITiCSE '02.

[9]  Cary G. Gray,et al.  Introducing computer science after programming , 2002 .

[10]  Stephen Schaub Teaching Java with Graphics in CS1 , 2000, SGCS.

[11]  Edward Conjura,et al.  Integrating mathematics and programming into a three tiered model for computer science education , 1994, SIGCSE '94.

[12]  Kris Howell,et al.  First computer languages , 2003 .

[13]  Randy F. Pausch,et al.  Teaching objects-first in introductory computer science , 2003, SIGCSE.

[14]  Andrew T. Phillips,et al.  Implementing CC2001: a breadth-first introductory course for a just-in-time curriculum design , 2003, SIGCSE.

[15]  Henry MacKay Walker,et al.  A revised model curriculum for a liberal arts degree in computer science , 1996, CACM.

[16]  Patt Introduction to Computing Systems , 2001 .

[17]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[18]  Doug Baldwin,et al.  Striving for mathematical thinking , 2001, ITiCSE-WGR '01.

[19]  Peter B. Henderson Mathematical reasoning in software engineering education , 2003, CACM.

[20]  Allen B. Tucker,et al.  Ensuring a rigorous curriculum: practices and goals , 2002 .

[21]  Steven K. Feiner,et al.  Introduction to Computer Graphics , 1993 .

[22]  Paul Havlak,et al.  Construction of Thinned Gated Single-Assignment Form , 1993, LCPC.