Literature Review


When someone is asked to imagine a computer programmer they often describe a stereotypical person with poor social skills that spends all their time alone behind a computer screen. While this might have at one time had a thread of truth, today individuals that code for a living work in a highly connected world where programming is a collective and social endeavor.

In the literature there is some clear concern for how computer science courses are delivered at all levels. College and university computer science departments often have trouble retaining students because the incoming learners have expectations that differ from the traditional approach offered in introductory courses that might focus on more technical concepts(Anderson & Gegg-Harrison, 2013). This is disappointing for many companies since the demand for more computer science majors in the STEM job market is still quite high (Lohr, 2017).

What the research suggests

To address problem with students not staying in their computer science programs it has been suggested that educators need to adapt the curriculum and delivery to account for the learners “Comfort Zone of Proximal Development”(Anderson & Gegg-Harrison, 2013). In Anderson and Gegg’s research, Winona State University created companion courses that integrate mobile game development which increased engagement and student interest (2013). This approach helped to make the course more interesting and engaging while still working to cover the core curricular topics.

Educators often to look direct their instruction and learning activities toward what Vygotsky called the zone of proximal development (ZPD), which is, “the distance between the actual developmental level as determined by independent problem solving and the level of potential development as determined through problem-solving under adult guidance, or in collaboration with more capable peers” (Vygotsky, 1978). This is important when considering the appropriate scaffolding for novice programmers and can be a challenging thing to measure (Awbi, 2014). Due to the high cognitive load of computer science topics, knowledge may be fragile and require more reinforcement before unaided work is possible (Awbi, 2014).

Another approach to helping students in introductory college level courses focuses on a constructivist approach to learning. This approach stems from the theories of Piaget who suggested that when a child encounters new information, they need to determine if it fits in with their mental model and if it did then the information would be assimilated, but if it did not then the model would need to be adapted (Piaget, 1953, 1971). This type of mental shift is important in problem solving and deeper understanding. Piaget’s ideas are often cited in computer science literature because it often fits their model of, “if it doesn’t work… debug it” or challenge the paradigm (Machanick, 2007).

The theory of social constructivism stems again from Vygotsky where he believed that individuals working with the assistance of other people can co-create knowledge within their ZPD better when there was social aspect associated (Vygotsky, 1978). It could be argued that the use of social constructivism could help students to learn and reflect on their work better but this means that curriculum, and the way it is delivered, needs to be changed to accommodate this type of environment.

Changing the way instructors deliver computer science content will be a challenge. Even in businesses where they have adopted a “social coding” culture in the technology department the rest of the company rarely shares the same collaborative model (Freedman, 2011). In schools and at the college level change happens even more slowly.

The use of web 2.0 learning environments might be one of the best ways to help integrate the social constructivist tools. Shared online document creation, screen recording, microblogging and digital storytelling can all play a part in the collaborative model of learning (Bower, 2009). The tools that are afforded through the web continue to grow and computer science instructors and curriculum writers will need to continue to review, revise and adapt to the latest tools to effectively support their future learners. The growing use of the flipped classroom has also changed the way computer science can be taught. When assigned projects require an online component to be completed outside of class, such as watch a lecture or read instructions, then the in class time becomes much more student focused and students at different levels can work together to be more creative and help to better build their knowledge(Davenport, 2018).

Where my project fits in:

Although it is not in the planned scope of the course I am going to create for this course, the use of Github, a code repository site with a social element, could make a nice addition to future projects. Yoshikawa’s research into what makes a good public coding project could be leveraged to create projects that address team coding, clear bug tracking (reflection) and have a strong element of social constructivism (2014).

My project seeks to takes both, the idea of delivering instructional content within a students zone of proximal development, and the idea of developing a community where social constructivism can take place. The content will be well scaffold and the use of detailed peer feedback and forums should help to give the project social worth and allow learners to build


Anderson, N., & Gegg-Harrison, T. (2013). Learning Computer Science in the “Comfort Zone of Proximal Development”. SIGCSE. Retrieved from

Awbi, N. K., Whalley, J. L., & Philpott, A. (2015). Scaffolding, the zone of proximal development, and novice programmers. Journal of Applied Computing & Information Technology, 19(1), 1–2. Retrieved from

Bacalarski, M. C. (1996). Vygotsky’s developmental theories and the adulthood of computer-mediated communication: A comparison and an illumination. Journal of Russian & East European Psychology, 34(1), 57–63.

Bower, M., Hedberg, J. G., & Kuswara, A. (2010). A framework for Web 2.0 learning design. Educational Media International, 47(3), 177-198. doi:10.1080/09523987.2010.518811

College Board. (2018, February 2). More Students Than Ever Are Participating And Succeeding In Advanced Placement. Retrieved from

Davenport, C. E. (2018). Evolution in Student Perceptions of a Flipped Classroom in a Computer Programming Course. Journal of College Science Teaching, 47(4), 30–35. Retrieved from

Freedman, R. (2011, July 19). Social coding — the next wave in development. Retrieved from

Jennings, D., Surgenor, P., & McMahon, T. (2013). Education theory/constructivism and social constructivism in the classroom – UCD – CTAG. Retrieved from

Lohr, S. (2017, November 01). Where the STEM Jobs Are (and Where They Aren’t). Retrieved from

Machanick, P. (2007). A Social Construction Approach to Computer Science Education. Computer Science Education, 17(1), 1–20. Retrieved from

Piaget, J (1953). The Origin of Intelligence in the Child. Routledge, London.

Piaget, J (1971). Science of education and psychology of the child, New York.

Vygotsky, L. S. (1978). Mind in society: The development of higher psychological processes. (M. Cole, V. John-Steiner, S. Scribner, & E. Souberman, Eds.). Cambridge, Massachusetts: Harvard University Press.

Yoshikawa, Y., Iwata, T., & Sawada, H. (2014). Collaboration on Social Media: Analyzing Successful Projects on Social Coding. Retrieved from