Research

My goal as a teacher and researcher is to make CS more accessible. I try to do this through:

  • Understanding and optimizing learning
  • Identifying and removing barriers

My research is on Google Scholar or ACM Digital Library or check out the selected publications below.

If you’re a teacher – Check out CSTeachingTips.org!

Research Area 1: K-12 CS Education

  • Should kids learn CS? Yes! but maybe not for the reasons you think! (pdf)
    • Lewis, C. M. (2017). Good (and bad) reasons to teach all students computer science.  In S. B. Fee, A. M. Holland-Minkley, & T. E. Lombardi, New Directions for Computing Education: Embedding Computing Across Disciplines. New York: Springer.
  • Does Java experience in high school confer an advantage in college? It can! At UC Berkeley, Java experience led to students doing better in CS2 where Java was used (Note – Java was not used in CS0.5 and CS1). Without controlling for Java experience, it just looked like women did worse than men in CS2, but not in CS1 (which may be because of differential participation among men and women on AP CS A). (pdf)
    • Lewis, C. M., Titterton, N., & Clancy, M. (2012) Using Collaboration to Overcome Disparities in Java Experience. Proceedings of the International Computer Science Education Research Workshop. Auckland, NZ. 79-86.
  • Does programming overlap with math? It can. Our 6th grade course did. Students’ 4th grade math scores correlated with their performance in our class. And we can see overlaps in the mathematical content tested in that 4th grade test and the math students could practice in our class. (pdf)
    • Lewis, C. M. & Shah, N. (2012). Building Upon and Enriching Grade Four Mathematics Standards with Programming Curriculum. ACM SIGCSE Bulletin. 43(1). 57-62.
  • Should kids learn block-based or text-based programming? In a comparison of Logo and Scratch, students who learned Scratch did better on assessments of conditions, but students who learned Logo were more confident in their programming ability. (pdf)
    • Lewis, C. M. (2010). How programming environment shapes perception, learning and goals: Logo vs. Scratch, ACM SIGCSE Bulletin. 41(1), 346-350.
  • Do kids know that they’re learning programming when they do Scratch? Probably not! Many students described screenshots of programming languages as “not programming” and the screenshot of the green characters from the movie the Matrix as “definitely programming.” (pdf)
    • Lewis, C. M., Bhattacharyya, V., Dominguez, N., Esper, S., Fa-Kaji, N., & Schlesinger, A. (2014). Children’s perception of what counts as a programming language. The Journal of Computing Sciences in Colleges. 29(4), 123-133.
  • Should kids pair program? Maybe, maybe not. Much of the positive pair programming research compares pair programming to learning environments with zero collaboration! Of course pair programming is better there! I compare pair program to what I call “buddy programming” and didn’t replicate the positive results others had found. Also look at the equity work below! (pdf)
    • Lewis, C. M. (2011). Is pair programming more effective than other forms of collaboration for young students? Computer Science Education. 21(2). 105-134.
  • Should we make a new curriculum repository for CS? Probably not. But if you do, here is some advice. (pdf)
    • Leake, M. & Lewis, C. M. (2017) Recommendations for Designing CS Resource Sharing Sites for All Teachers. ACM SIGCSE Bulletin. 48(1), 357-362.

Research Area 2: Equity in CS

  • What could/should an equitable classroom look like? Here’s how we bring equity research/theory into the design of our classroom structures.(pdf)
    • Shah, N., Lewis, C. M., Caires, R., Khan, N., Qureshi, A., Ehsanipour, D., & Gupta, N. (2013). Building Equitable Computer Science Classrooms: Elements of a Teaching Approach. ACM SIGCSE Bulletin. 44(1). 263-268.
  • How can we measure equity/inequity within pair programming? We looked at the distribution of talk between pairs as well as how often they asked each other questions (probably typically good for equity) and how often they issued their partner a command (probably typically bad for equity).
    • Shah, N., Lewis, C. M., & Caires, R. (2014) Analyzing Equity in Collaborative Learning Situations: A Comparative Case Study in Elementary Computer Science. International Conferences of the Learning Sciences (ICLS). Nominated for best paper.
  • Why might we see inequitable interaction within pair programming? Students might be pursuing very different goals. For example, one student trying to complete something as quickly as possible can be bad for equity. (pdf)
    • Lewis, C. M. & Shah, N. (2015). How Equity and Inequity Can Emerge in Pair Programming. Proceedings of the eleventh annual International Conference on International Computing Education Research (pp. 41-50).

Research Area 3: Identity/Belonging in college-level CS

  • What shapes students’ interest in majoring in CS? Among our participates this centered around their ability, fit, enjoyment, utility, and opportunity cost. And in particular students’ perception of CS as requiring innate ability shaped their perception of their ability. (pdf)
    • Lewis, C. M., Yasuhara, K., & Anderson, R. E. (2011). Deciding to Major in Computer Science: A Grounded Theory of Students’ Self-Assessment of Ability.  Proceedings of the International Computer Science Education Research Workshop. Providence, RI. 3-10.
  • What shapes students’ feeling of fit with computing? Students varied in whether they thought particular characteristics of computer scientists (obsessed, male, competitive, asocia) as requirements or just patterns.(pdf)
    • Lewis, C. M., Anderson, R. E., & Yasuhara, K. (2016). “I don’t code all day”: Fitting in computer science when the stereotypes don’t fit. Proceedings of the International Computer Science Education Research Workshop. 23-32.

Research Area 4: CS Learning/Thinking

  • How do students debug programs? One part of that is learning to paying attention to the right part of the computer state. (pdf)
    • Lewis, C. M. (2012). The Importance of Students’ Attention to Program State: A Case Study of Debugging Behavior. Proceedings of the International Computer Science Education Research Workshop. Auckland, NZ. 127-134.
  • How do students trace recursive code? There are at least four specific strategies that might each have different affordances for students to understand, write, and trace recursive code. (pdf)
    • Lewis, C. M. (2014). Exploring variation in students’ correct traces of linear recursion. Proceedings of the International Computer Science Education Research Workshop. Glasgow, UK. 67-74.
  • What makes Big-O hard for students? Logarithms in Big-O definitely seem to be a problem! (pdf)
    • Parker, M., & Lewis, C. M. (2014). What makes Big-O analysis difficult: Understanding how students understand runtime analysis. The Journal of Computing Sciences in Colleges. 29(4), 164-174.