6 Reading List
Note: Many of the paper links are to digital libraries that restrict access. If you are not directly on the Brown network, you may find it necessary to install VPN, because the Brown library’s proxy service doesn’t always work: for instance, it is currently broken by the ACM Digital Library.
6.1 Reading Order
Date | | Reading |
1/27 | | M. Guzdial, Learner-Centered Design of Computing Education |
| | Read: Chapters 1, 2, and 3. |
| | K. Fisler, et al., Qualify your quantifiers...Or, exactly who all is CS4? |
1/30 | | J. Sorva, Visual program simulation in introductory programming education |
| | Read: Chapters 1, 2, and 3. |
2/1 | | R. Bornat, Camels and humps: a retraction |
| | J. Sorva, Visual program simulation in introductory programming education |
| | Read: Chapter 4. |
2/3 | | Wikipedia, Wason selection task |
| | A. Markman, Knowledge Representation |
| | Read: Pages 1-5. |
| | J. Sorva, Visual program simulation in introductory programming education |
| | Read: Chapter 5. |
2/6 | | J. Sorva, Visual program simulation in introductory programming education |
| | Read: Chapter 6. |
2/8 | | Continuing discussion about constructivism. |
2/10 | | J. Sorva, Visual program simulation in introductory programming education |
| | Read: Chapter 7. |
2/13 | | O. Muller, D. Ginat, and B. Haberman, Pattern-oriented instruction and its influence on problem decomposition and solution construction |
| | F. Castro and K. Fisler, On the interplay between bottom-up and data-driven program design |
2/15 | | D. Ginat and E. Menashe, SOLO taxonomy for assessing novices’ algorithmic design |
| | C. Izu, et al., A study of code design skills in novice programmers using the SOLO taxonomy |
2/17 | | Visit by Francis Castro: SOLO for HtDP |
2/20 | | No class meeting: Presidents' Day. |
2/22 | | J. Sorva, Visual program simulation in introductory programming education |
| | Read: Chapters 8, 9, 10, and 11. |
2/24 | | Summary/recap of what we've read so far. |
2/27 | | Project summaries. |
3/1 | | D. Hestenes, et al., Force Concept Inventory |
| | L. C. Kaczmarczyk, E. R. Petrick, J. P. East, and G. L. Herman, Identifying student misconceptions of programming |
3/3 | | B. du Boulay, Some difficulties of learning to program |
| | B. du Boulay, T. O’Shea, and J. Monk, The black box inside the glass box: presenting computing concepts to
novices |
3/6 | | M. Felleisen, et al., HtDP 1/e: Syntax and Semantics |
| | M. Felleisen, et al., HtDP 2/e: Intermezzo: BSL (search for this phrase if the link doesn’t get you there); read to end of page |
3/8 | | M. Felleisen, et al., HtDP 1/e: Local Definitions and Lexical Scope |
3/10 | | M. Felleisen, et al., HtDP 1/e: Defining Functions on the Fly |
| | Evaluation-context semantics by Justin |
3/13 | | M. Felleisen, et al., HtDP 1/e: The Final Syntax and Semantics |
| | Evaluation-context semantics by Justin |
3/15 | | Small-step semantics by Jack |
| | Big-step semantics by Preston |
3/17 | | M. Flatt, S. Krishnamurthi and M. Felleisen, A programmer’s reduction semantics for classes and mixins |
3/20 | | R. Mayer, A psychology of learning BASIC |
| | T. Kohn, Variable evaluation: an exploration of novice programmers’ understanding and common misconceptions |
3/22 | | R. Pea, Language-independent conceptual “bugs” in novice programming |
3/24 | | J. Kruger and D. Dunning, Unskilled and unaware of it: How difficulties in recognizing one’s own incompetence lead to inflated self-assessments |
4/4 | | S. Garner, The learning of plans in programming: a program completion approach |
| | D. Parsons and P. Haden, Parson’s programming puzzles: A fun and effective learning tool for
first programming courses |
| | P. Denny, A. Luxton-Reilly, and B. Simon, Evaluating a new exam question: Parsons problems |
| | N. Cheng, B. Harrington, The Code Mangler: Evaluating coding ability without writing any code |
4/6 | | M. Lee and A. J. Ko, Personifying programming tool feedback improves novice programmers’ learning |
| | M. Lee, et al., Principles of a debugging-first puzzle game for computing education |
| | M. Lee and A. J. Ko, Comparing the effectiveness of online learning approaches on CS1 learning outcomes |
4/11 | | J. C. Spohrer and E. Soloway, Novice mistakes: are the folk wisdoms correct? |
| | A. E. Fleury, Parameter passing: the rules the students construct |
| | A. E. Fleury, Programming in Java: student-constructed rules |
| | S. Reges, The Mystery of “b := (b = false)” |
4/13 | | S. Madison and J. Gifford, Parameter passing: The conceptions novices construct |
| | S. Madison and J. Gifford, Modular programming: novice misconceptions |
| | J. Sorva, Students’ understandings of storing objects |
| | C. Miller and A. Settle, Some trouble with transparency: An analysis of student errors with object-oriented Python |
4/18 | | A. Settle, What’s motivation got to do with it? A survey of recursion in the
computing education literature |
| | H. Kahney, What do novice programmers know about recursion |
| | D. Kurland, R. Pea, Children’s mental models of recursive Logo programs |
| | I. Sanders, et al., Mental models of recursion revisited |
4/20 | | S. Wiedenbeck, Learning iteration and recursion from examples |
| | J. Tessler, B. Beth, and C. Lin, Using Cargo-bot to provide contextualized learning of recursion |
| | C. M. Lewis, Exploring variation in students’ correct traces of linear recursion |
| | R. McCauley, et al., Recursion vs. iteration: An empirical study of comprehension
revisited |
4/24 | | J. Sorva, Visual program simulation in introductory programming education |
| | Read: Chapter 11. |
4/26 | | J. Pane and B. Myers, Usability issues in the design of novice programming systems |
4/28 | | A. Ko, T. LaToza, M. Burnett, A practical guide to controlled experiments of software engineering tools with human participants |
6.2 Planned Future Reading
L. Ma, Investigating and improving novice programmers’ mental models
of programming concepts
M. Guzdial, Notional Machines and Misconceptions in CS: Developing a Research Agenda at Dagstuhl
I. Arawjo, et al., Teaching programming with gamified semantics
J. Sorva, T. Sirkiä, Embedded questions in Ebooks on programming
M. Jadud, Methods and tools for exploring novice compilation behaviour
A. Stefik and S. Siebert, An empirical investigation into programming language syntax
G. Herman, C. Zilles, M. Loui, Flip-flops in students’ conceptions of state
S. Grover and S. Basu, Measuring student learning in introductory block-based programming
D. Touretzky, C. Gardner-McCune and A. Aggarwal, Semantic reasoning in young programmers
F. Halasz and T. Moran, Analogy considered harmful
D. Shinners-Kennedy, The Everydayness of Threshold Concepts: ‘State’ as an
Example from Computer Science [no public paper link]
6.3 Additional References
6.3.1 General Reading
T. Greening, Emerging constructivist forces in computer science education: shaping
a new future
B. L. Sherin, A comparison of programming languages and algebraic notation as expressive languages
for physics
J. Pane and B. Myers, Usability issues in the design of novice programming systems
A. Selden and J. Selden, Validations of proofs considered as texts: Can undergraduates tell whether an argument
proves a theorem?
6.3.2 Visualization
D. Berry, Generating program animators from programming language semantics
C. Pareja-Flores, et al., WinHIPE: an IDE for functional programming based on rewriting and visualization
6.3.3 State
M. Coblenz, et al., Exploring language support for immutability
6.3.4 Tools
K.-E. Chang, et al., A programming learning system for beginners — A completion strategy approach
6.3.5 Assessment
I. Utting, et al., A fresh look at novice programmers’ performance and their teachers’ expectations
6.3.6 Notional Machines and Misconceptions
J. Sorva, Notional machines and introductory programming education
D. Littman, et al., Mental models and software maintenance [no public paper link]
Davis, et al., Mind your Ps and Qs: Using parentheses and quotes in LISP [no public paper link]
A. J. Ko and B. A. Myers, Extracting and answering why and why not questions about Java program output
A. J. Ko and B. A. Myers, Finding causes of program output with the Java Whyline
J. C. Spohrer and E. Soloway, Simulating student programmers
A. Eckerdal and M. Thune, Novice Java programmers’ conceptions of “object” and
“class”, and variation theory
P. J. Guo, Online Python tutor: Embeddable web-based program visualization for
CS education
A. Gupta, D. Hammer, and E. Redish, The case for dynamic models of learners’ ontologies in physics
Z. Usiskin, Conceptions of school algebra and uses of variables