This paper aims to reflect on the process of creating the micro-course “Coding a Python Text Adventure”. It was created as part of the Advanced Design Seminar course within the Learning and Emerging Technologies masters program at Empire State College.
The development of the project went through multiple stages of development, shared below, to create well founded learning experience for students interested in learning to code a text based game in the coding language Python.
Learning to code has become a valuable and sought after skill in a variety professions, but the typical assignment or project offered in coding courses too often focus around math problems or technical examples that are of little interest to learners with varied backgrounds. This project endeavors to open a path for a broader audience by creating a coding micro-course focused around the idea of an interactive story the learner creates themselves. The micro-course will use the Python programming language and incorporate short videos of instruction to scaffold learning and discussion groups with help to deepen understanding. A clear software development cycle, that includes beta testing and peer feedback, will help learners by providing formative assessments throughout the process. The project will encourage learners to integrate content from other domains (eg: history, language arts, and science to aid learners to foster algorithmic thinking related to these subjects.
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. A focus on finding a task that fits a student’s zone of proximal development, as Vygotsky work would suggest, 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).
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.
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 this project fits
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
Goals and Standards
Learning and Emerging Technology Program Goals
This project was able to touch on or solidly address at least four of the six MALET (Masters of Arts in Learning and Emerging Technologies) program goals.
The ethical statement address G1 and helped to make the privacy of the project more transparent. The development of the course in the Open edX platform, along with the course readings helped to address G3 and G4.
I have acquired new skills in how to identify and good instructional videos and tools through this project and hope to continue to work professional to meet goal 5.
ISTE Standards for Students
Although I am sure I could stretch some of the standards to fit I feel the following standards are met squarely through this project.
The first two standards are met as part of the process of proposing a story, planning with a flow chart, giving and receiving feedback and then revising and re-releasing their project. The standards are: “Empowered Learner, 1c : Students use technology to seek feedback that informs and improves their practice and to demonstrate their learning in a variety of ways.” and “Innovative Designer, 4c Students develop, test and refine prototypes as part of a cyclical design process.” (ISTE, n.d).
The last standard that students clearly meet through this project is the “Creative Communicator, 6b Students create original works or responsibly repurpose or remix digital resources into new creations.” which is met when students create or adapt a story and determine a way to break it down and deliver it in a choose your own adventure style (ISTE, n.d.). This specific standard and outcome tends to be a driving force in student engagement and provides them with a sense of ownership as the creative communicator of the work.
ISTE Standards for Educators
As for the ISTE standards that apply to myself as an educator in this project, I feel that there are two that align the best. One of the wonderful things about going back to school after teaching for many years is the refocus it has given me in how I develop curriculum and lessons that includes new pedagogical approaches. I naturally like to try and learn new things and this project helped to address the standard for learners: “Learner, 1a: Set professional learning goals to explore and apply pedagogical approaches made possible by technology and reflect on their effectiveness.”(ISTE, n.d). As I continue in the masters program I will continue to set new learning goals and other approaches to instruction.
Being curious about new things can also lead to wanting to create new things as well. I endeavor to keep projects fresh and interesting, not only to my students, but to me as well. The processing of designing new learning activities is something that helps to keep me engaged as a teacher. The standard: “Designer, 5b. : Design authentic learning activities that align with content area standards and use digital tools and resources to maximize active, deep learning.” is an ideal that is all teachers, regardless of disciple, should be trying to strive for (ISTE, n.d.)
The learning theories that influenced the creation of this project grew from the idea that coding and software development can be a social undertaking. The project focused heavily on the idea of social constructivism and peer feedback. Jenning’s stated assumption of this process, “Learning is an active, not a passive, process and depends on the students taking responsibility to learn”, helped me to think about how to address how learners would interact in the learning environment (2013). This helped to build the revision process that is necessary for good coding, and this project, to be successful.
Some of the instructional methods I used for this project were developed while I worked in the Instructional Design of Online Learning Environments course. The primary technique I used was the concept of segmenting instruction. Long coding videos are not effective and learners quickly lose interest or the cognitive load is too great and then again retention of material drops.
One area that I would still like to address is to add more multimodal resources to the instruction. Although there are resources attached to each section, the addition of an accurate script that can also be used with the video segments closed captions (via YouTube) would be of great benefit and make the course more accessible to disabled learners.
The assessment plan for the Python “Choose Your Own Adventure” text based game micro-course involves formative and summative assessment. Because of the nature of coding and the need to constantly revise the students have been asked to clearly label each version of their work.
- Students incorporate and adapt a story into their game effectively.
- Students develop a descriptive flowchart that planning.
- Students demonstrates understanding of how to create a game using the appropriate Python syntax and structure.
- Students practice good “professional practice” in their coding (comments, naming files, etc) and beta testing (offering only clear constructive feedback).
The first formative assessment involves the students sharing their working flowchart during the planning stage of the project. This is shared via a Google Drawing and can be checked by the instructor throughout the process.
While students work in the Open EdX and watch the instructional videos, EdPuzzle is used to help keep students on task and make them aware of important information that will be needed later in their project.
Additionally the simple built-in questioning tools in Open EdX have also been used to help add another formative assessment.
Then students will play (beta test) each of the peers games and give feedback based on the rubric seen below, via a Google Form. Students are instructed to “be professional” and to be very clear about where improvements need to be made. If there is a typo, flaw in the game’s story or a coding error, students are asked to pinpoint the issue and document it so the student can address the “bug” later.
The summative assessment is based on the rubric show below. Learners have already seen and used this rubric in part of their peer assessments (beta testing) and now have had time to revise their work and resubmit a more polished version 2.0 for final grading.
Students will be evaluated based on how well they met the criteria of the rubric.
Statement of Ethics
The primary purpose of the UrbanAtWork site is to share information about my explorations in the field of technology education including my graduate school project portfolio. The site is built on personally install version of the popular open source WordPress software and has no extra tools associated to track user traffic or collect user data.
The site is openly accessible to the public and any person commenting on the site will find that comments are held for approval to ensure that they are appropriate for all ages and audiences.
Having worked in education technology for more than 20 years I am very sensitive to the privacy of my students and their data. I will strive to make all of the learning environments a safe for younger and older learners alike.
The learning management system (LMS) used in the portfolio project is Open edX and it is hosted by edunext.io. Although these accounts are private, user email addresses are collected there in order to create accounts and participate in the micro-course. If students want documentation of completing the micro-course then other personal information will be required. No other tracking or person data is collected without the participants knowledge. Any work posted in the LMS by the participants remains theirs. Any work posted that already has a copyright will need to be cited appropriately.
Learners that engage in the the Code Your Own Adventure python course are responsible for not breaking and policies at their place of work or school and should check with their respective institutions or instructors to be sure they are in compliance.
If any participate wants to have their information removed from the learning community at any time they may request it via email or the troubleshooting discussion group.
There are a few things that I would have done differently in the development of this project. First I believe I would have used a different learning environment. The Open edX platform is interesting and I am glad that I tried it, but there are parts of it that require too much tweaking to make it a turn-key solution. If it had some native Google integration then user management could be easier. Additionally the discussion and attachment limitations still confuse me. Compared to the Moodle platform, the Open edX platform felt more “slick” but but was missing some of the comforts and digital grading tools.
Another area that I would like to explore and try differently focuses on how code is shared and how feedback is managed. The Trinket.io platform is a wonderful way for students to run Python code directly in the browser but if a tool like GitHub could be used to track changes, bug reports and commits, it would be more like a professional team environment. The big challenge here is that the school I work in is a Chromebook school meaning students wouldn’t be install a version of Python locally and submit their code via the standard Github paths. I know there are other online coding platforms that do interface with the Github repository system but some research will have to be done to see if it is worth the cost and school appropriate.
Taking the Project for a Test Drive
I am excited to share that the project has been in actual use!
Starting in early December, I launched a version of this micro-course with 20 high school students in two small sections taking a course Python 1 course. Students had some previous knowledge of Python and the Trinket.io coding platform while working with lessons based primarily in Python Turtle.
The students were given the project overview and the project rubric first to help them choose an appropriate story for the project. The planning and flowcharting was completed before moving to the next stage. Then students used the Open edX platform and were asked to proceed, using the videos and content at their own pace. Although most of the work was completed in class, students were very engaged and required very little extra support during this process.
By the time the “beta testing” (peer feedback) began students were very invested in their work and eager to show it to both sections of students. Peer feedback was collected through the Google Form and the results were shared to all students. A second version of the project, with corrections was posted for final review.
As of last week, there were still three students that have taken the project to the next level by including graphics and animations. There was no extra credit offered for these new products, students are simply continuing to build and make their projects more complex in their free time. I feel lucky to witness it and have been thinking of ways to extend the project further next year. Isn’t this the level of engagement and curiosity that all teachers would like to see for all students?
Anderson, N., & Gegg-Harrison, T. (2013). Learning Computer Science in the “Comfort Zone of Proximal Development”. SIGCSE. Retrieved from https://cs.winona.edu/tgeggharrison/publications/sigcse13.pdf.
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 http://library.esc.edu/login?url=https://search.ebscohost.com/login.aspx?direct=true&db=aci&AN=101663183&site=eds-live
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. https://doi-org.library.esc.edu/10.2753/RPO1061-0405340157
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 https://www.collegeboard.org/releases/2018/more-students-than-ever-are-participating-and-succeeding-in-advanced-placement
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 http://library.esc.edu/login?url=https://search.ebscohost.com/login.aspx?direct=true&db=eric&AN=EJ1173141&site=eds-live
Freedman, R. (2011, July 19). Social coding — the next wave in development. Retrieved from https://www.techrepublic.com/blog/it-consultant/social-coding-the-next-wave-in-development/
International Society for Technology in Education. (n.d.). ISTE STANDARDS. Retrieved from https://www.iste.org/standards
Jennings, D., Surgenor, P., & McMahon, T. (2013). Education theory/constructivism and social constructivism in the classroom – UCD – CTAG. Ucdoer.ie. Retrieved from http://www.ucdoer.ie/index.php/Education_Theory/Constructivism_and_Social_Constructivism_in_the_Classroom
Lohr, S. (2017, November 01). Where the STEM Jobs Are (and Where They Aren’t). Retrieved from https://www.nytimes.com/2017/11/01/education/edlife/stem-jobs-industry-careers.html
Machanick, P. (2007). A Social Construction Approach to Computer Science Education. Computer Science Education, 17(1), 1–20. Retrieved from http://library.esc.edu/login?url=https://search.ebscohost.com/login.aspx?direct=true&db=eric&AN=EJ827900&site=eds-live
Yoshikawa, Y., Iwata, T., & Sawada, H. (2014). Collaboration on Social Media: Analyzing Successful Projects on Social Coding. Retrieved from http://library.esc.edu/login?url=https://search.ebscohost.com/login.aspx?direct=true&db=edsarx&AN=edsarx.1408.6012&site=eds-live