Teaching Computer Programming to Diverse Students: A Comparative, Mixed-Methods, Classroom Research Study

Lack of motivation and interest is a serious obstacle to students’ learning computing skills. A need exists for a knowledge base on effective pedagogy and curricula to teach computer programming. This paper presents results from research evaluating a six-year project designed to teach complex concepts in computer programming collaboratively, while supporting students to continue developing their computer thinking and related coding skills individually. Utilizing a quasi-experimental, mixed methods design, the pedagogical approaches and methods were assessed in two contrasting groups of students with different socioeconomic status, gender, and age composition. Analyses of quantitative data from Likert-scale surveys and an evaluation rubric, combined with qualitative data from reflective writing exercises and semi-structured interviews yielded convincing evidence of the project’s success at both teaching and inspiring students.

[1] Wing, J. (2006). Computational thinking. Communications of the ACM, 49(3), 33–36.
[2] Henderson, P. B., Cortina, T. J., Hazzan, O., and Wing, J. M. (2007). Computational thinking. In Proceedings of the 38th ACM SIGCSE Technical Symposium on Computer Science Education, (SIGCSE ’07), 195–196. New York, NY: ACM Press.
[3] Cuny, J., Snyder, L., & Wing, J.M. (2010). Demystifying computational thinking for non-computer scientists. Unpublished manuscript in progress, referenced in http://www.cs.cmu.edu/~CompThink/resources/TheLinkWing.pdf.
[4] Leu, D. J., Kinzer, C. K., Coiro, J. L., & Cammack, D. W. (2004). Toward a theory of new literacies emerging from the Internet and other information and communication technologies. In R. B. Ruddell, & N. J. Unrau (Eds.) Theoretical models and processes of reading (5th ed.) (pp. 1570-1613). Newark, DE: International Reading Association.
[5] Vee, A. (2017). Coding Literacy: How Computer Programming is Changing Writing. MIT Press.
[6] Grandell, L., Peltomäki, M.,Back, R. J., & Salakoski, T. (2006, January). Why complicate things?: introducing programming in high school using Python. In Proceedings of the 8th Australasian Conference on Computing Education-Volume 52 (pp. 71-80). Australian Computer Society, Inc.
[7] Mercier, E. M., Barron, B., & O’Connor, K. M. (2006). Images of self and others as computer users: The role of gender and experience. Journal of Computer Assisted Learning, 22, 335–348. San Francisco Unified School District (n.d.). In Computer Science for All Students in SF. Retrieved July 1st, from http://www.csinsf.org/curriculum.html.
[8] Grover, S., & Pea, R. (2013). Computational thinking in K–12: A review of the state of the field. Educational Researcher, 42(1), 38-43.
[9] Vogel, J. J., Vogel, D. S., Cannon-Bowers, J., Bowers, C. A., Muse, K., & Wright, M. (2006). Computer gaming and interactive simulations for learning: A meta-analysis. Journal of Educational Computing Research, 34(3), 229-243.
[10] Lee, I., Martin, F., Denner, J., Coulter, B., Allan, W., Erickson, J., Werner, L. (2011). Computational thinking for youth in practice. ACM Inroads, 2, 32–37.
[11] Holbert, N. R., & Wilensky, U. (2011, April). Racing games for exploring kinematics: a computational thinking approach.
[12] Blikstein, P. (2010). Connecting the science classroom and tangible inter- faces: the bifocal modeling framework. In Proceedings of the 9th International Conference of the Learning Sciences, Chicago, IL, 128–130.
[13] Berrett, D. (2015). The day the purpose of college changed. The Chronicle of Higher Education, 26.
[14] Harris, A. D., McGregror, J. C., Perencevich, E. N., Furuno, J. P., Zhu, J., Peterson, D. E. & Finkelstein, J. (2006) The use and interpretation of quasi-experimental studies in medical informatics, 13(1), 16–23.
[15] Maxwell, J. A. (2016). Expanding the history and range of mixed methods research. Journal of Mixed Methods Research, 10(1), 12-27.
[16] KidsLogic http://www.kidslogic.net/.
[17] LEGO Mindstorms https://www.lego.com/en-us/mindstorms/?domainredir=mindstorms.lego.com.
[18] Alice http://www.alice.org/.
[19] Processing https://processing.org/.
[20] Arduino https://www.arduino.cc/.
[21] Python https://www.python.org/.
[22] PyCharm https://www.jetbrains.com/pycharm/.
[23] Sentance, S. & Csizmadia, A. Educ Inf Technol (2017) 22: 469. https://doi.org/10.1007/s10639-016-9482-0.
[24] Lister, R. (2011). Concrete and other neo-piagetian forms of reasoning in the novice programmer. Proceedings of the Thirteenth Australasian Computing Education Conference - Volume 114, Perth, Australia. 9–18.
[25] Warschauer, Mark; Matuchniak, Tina. New Technology and Digital Worlds: Analyzing Evidence of Equity in Access, Use, and Outcomes, Review of Research in Education, v34 n1 p179-225 2010.
[26] Kafai, Y. B., & Burke, Q. (2013). Computer programming goes back to school. Phi Delta Kappan, 95(1), 61-65.