Integrating Students’ Prior Knowledge into Pedagogy Colleen Lewis Graduate School of Education University of California, Berkeley
The Problem “Part of the problem is that the subject is not widely taught at school, so undergraduates arrive without having being streamed into those who can do well and those who can't.” Bornat, Dehnadi, & Simon, 2008
AP Test Taking Rates , , ,000 Number of test takers Source: College Board Exam Volume Data
2010 AP Test Takers (% Female)
Problem 2: Bimodal Distribution
Problem 3: Community Discourse “The literature abounds in assertions of the existence of an aptitude for programming, and of attempts to find a suitable predictor for that aptitude so as to avoid wasting time and effort educating students who are unlikely ever to become good programmers.” Simon et al. 2006
Problem 3: Community Discourse “innate talent for programming” Lister et al., 2004 “a fundamental ability” Reges, 2006 “Introductory classes should weed students out based on ability and potential” Barker, McDowell & Kalahar, 2009
What factors predict success? Problem solving Explanation skills Abstraction skills Math experience SAT scores Programming pre-tests
Hypothesis Student success is shaped by the degree to which they make productive use of their non-programming competence when learning to program.
Research Questions What knowledge and skills do students use when solving computer science problems? How can we build upon students’ non- programming knowledge? How can we integrate these techniques into curriculum?
Phase 1 Research Question: What knowledge and skills do students use when solving computer science problems? Example Interview Problem: If b is a Boolean variable, then the statement below has what effect? b = (b == false);
Phase 2 Research Question: How can we build upon students’ non- programming knowledge? Study Design Design-based research Recruit struggling students
Phase 3 Research Question: How can we integrate these techniques into curriculum? Study Design Techniques integrated into existing course Quasi-experimental design
Example Analysis What value is returned by WhatIsIt(4, 4) ? (define (WhatIsIt x n) (if (= n 1) x (* x (WhatIsIt x (- n 1))))
WhatIsIt Solution (WhatIsIt 4 4) (* 4 (WhatIsIt 4 3)) (* 4 (* 4 (WhatIsIt 4 2))) (* 4 (* 4 (* 4 (WhatIsIt 4 1)))) (* 4 (* 4 (* 4 4)))
Using Critical Reading Skills (define (WhatIsIt x n) (if (= n 1) x (* x (WhatIsIt x (- n 1)))) 01 WhatIsIt x n. 02 If n equals 1, print x. If n is not 1, then multiply x, 03oh okay so its recursive.
Critical Reading Skills Rephrasing Summarizing Re-reading
State What line of code is being executed? What are the values of all variables? What calls proceeded the current call? How can I change the line of code executed? How can I change the values of variables? How can I sequence procedure calls?
Tracking State 04 So 4, If x is -- n is 4, 06 n is not equal 1 (points to if line), 07 so multiply x, which is 4, 08 (writes 4)
Tracking State 09 by WhatIsIt (Writes 4 and 3) 11 x is -- n is again not 1, 12 so it will be 3 13(Writes 3)
Experience with State
Tracking State 03So it’s going to multiply 4 times WhatIsIt 04(writes 4 and “wii”) 05of x is not changing 06(writes 4), 07n is going to change to 3 08(writes 3).
Tracking State 09Which will do 10(writes 4) 11oh snap I was way wrong. 12Which is 4 times WhatIsIt of 4 and 2 13(writes wii 4 2),
Tracking State
Problems Students have a rich set of non-programming skills before college. No explanations for why well prepared students fail to learn We do not know how to build upon this knowledge.
Approach Phase 1 Identify techniques Phase 2 Develop and refine teaching strategies Phase 3 Analyze effectiveness
Thank you! Questions? Colleen Lewis Graduate School of Education University of California, Berkeley