45x Filetype PDF File size 0.24 MB Source: files.eric.ed.gov
Information Systems Education Journal (ISEDJ) 17 (3) ISSN: 1545-679X June 2019 Using Codecademy Interactive Lessons as an Instructional Supplement in a Python Programming Course Jason H. Sharp jsharp@tarleton.edu Marketing and Computer Information Systems Tarleton State University Stephenville, TX 76402 Abstract With the recent renewed interest in programming, online learning environments like Codecademy have become quite popular, boasting some 25 million members worldwide. The purpose of this paper is to describe the author’s experience using Codecademy Interactive Lessons as an instructional supplement in an introductory Python programming course. The paper provides a brief background of the literature, a description of how the author implemented the interactive lessons, a discussion of the positives and negatives, the extent to which the interactive lessons met the course skill outcomes, and conclusions about the overall experience. In sum, the Codecademy Interactive Lessons fulfilled 3 of the 6 course skill outcomes and overall, the positives outweighed the negatives. Keywords: Codecademy, Python programming, Interactive lessons, Online learning environments 1. INTRODUCTION Interactive Lessons as an instructional supplement in an introductory Python “Teaching the world how to code” ~ Codecademy programming course. The paper provides a brief background of the literature, a description of how Codecademy provides free, online, interactive the author implemented the interactive lessons, a lessons for a variety of programming topics. discussion of the positives and negatives, an Founded in 2011 by Zach Sims and Ryan Bubinski evaluation of the extent in which the interactive (Codecademy, n.d.), Codecademy purports to lessons meet the course skills outcomes, and have 25 million learners around the world. conclusions about the overall experience. The According to their web site, Codecademy is “an focus of the paper centers on the implementation, education company” and the goal is to make evaluation, and fulfillment of course skill Codecademy “the best place for our team to outcomes. learn, teach, and create the online learning experience of the future” (About, n.d., para. 1). 2. BACKGROUND Because, “education is broken” (About, n.d., para. 4), Codecademy considers itself a disruptive While there is a growing stream of research force for “building the education the world needs related to online learning environments in general – the first truly net native education” (About, (e.g., Herrington, Oliver & Reeves, 2003; Huang, n.d., para. 3). As the Codecademy web site 2002; Johnson & Aragon, 2002; Michinov, asserts, “come help us build the education the Brunot, Le Bohec, Juhel, & Delaval, 2011; Oncu & world deserves” (About, n.d., para. 4). Cacir, 2011) and smart learning content (e.g. Brusilovsky et al., 2014), studies specifically The purpose of this paper is to describe the focused on the use of Codeacademy as an author’s experience using Codecademy instructional supplement are lacking. The ©2019 ISCAP (Information Systems and Computing Academic Professionals) Page 20 https://isedj.org/; http://iscap.info Information Systems Education Journal (ISEDJ) 17 (3) ISSN: 1545-679X June 2019 following are representative studies of the use of alignment. Codecademy for teaching and learning. In an attempt to increase student engagement Kim and Ko (2017) included Codecademy in their and performance in a Fundamentals of Software study of online coding tutorials. They argue that Development course teaching Python the research investigating online learning programming, Fotaris, Mastoras, Leinfellner, and environments for programming is both “sparse” Rosunally (2016) gamified the course using the and “narrow” resulting in “little holistic guidance Kahoot! Classroom Response System, which is a about how to choose effective tutorials . . .” (p. game-based learning and trivia platform, the 321). Based upon a set of curriculum design classroom version of the TV game show “Who dimensions the authors identified four Wants To Be A Millionaire?”, and Codecademy’s pedagogical principles to form the basis of the Python programming course. To implement the study including: (1) connecting to learners’ prior gamification strategy the authors replaced the knowledge, (2) organizing declarative traditional one-hour topical lectures with three knowledge, (3) practice and feedback, and (4) 20-minute micro-lectures each followed by a encouraging meta-cognitive learning. From these Kahoot! session in which students responded to four guiding principles, the authors developed questions. The typical review session comprised nine groupings by which to analyze the data of question and answer time was replaced with collected. The nine groupings consisted of: (1) the “Who Wants To Be A Millionaire?” game personalization, (2) utilization, (3) contents, (4) consisting of Python-related questions. Finally, organization, (5) context, (6) actionability, (7) Codecademy’s Python programming course was feedback, (8) transfer learning, and (9) support. used for students to practice coding. For each of Within these nine groupings, the authors derived these components points were awarded and a 24 pedagogical principles specifically related to leaderboard was provided in Blackboard. To coding tutorials. In all but one of the principles, gather data the authors observed student the authors marked them either yes or no. Across behavior, conducted an online survey, gathered the 23 pedagogical principles Codecademy self-reported data from students, and received 20 “yes” responses that it met the synthesized classroom administrative data such criteria. The authors concluded that “most online as attendance, tardiness, use of material, coding tutorials are still immature and do not yet completion rates, and academic performance. achieve many key principles in learning sciences” Results of the study indicated an overall positive (p. 325). response from students to the gamified approach to the course, completion rates of assignments In a study exploring the design of online learning increased slightly, and overall student academic environment for programming education Olsson performance increased by about 8%. and Mozelius (2016) analyzed Codeacademy and MyProgrammingLab by asking the following Lee and Ko (2015) included the Codecademy question, “what are the most important factors in Python course in a larger study designed to the design of virtual learning environments for examine whether novice programmers “produced self-learning of fundamental skills and measurable learning outcomes” after using three knowledge”? (p. 534). They suggested that both different online learning tools. In addition to the “seem like promising additional tools for self- Codecademy Python course, the tools included learning in programming courses at the university were Gidget and Gidget Puzzle Designer. Each of level” (p. 94). Using a case study research these tools represented a different form of online method they collected data via interviews, learning environment which Lee and Ko identified questionnaires, and group discussions. According as tutorial, game, and canvas. Using a pretest- to the authors the student’s overall experience posttest research design the authors with Codecademy was positive. The immediate hypothesized that there would be “no difference feedback, in particular, was cited by a students as in learner’s post-test performance among the a major benefit. Other features of Codecademy conditions after completing their assigned that students liked included the structure of the learning activity” (p. 238). Overall, the study lessons and the forum. In sum, the authors indicated that none of the online learning identified the most important design factors as environments resulted in statistically significant follows: (1) usability and user-friendliness, (2) differences in student performance. However, clear and well-formulated feedback, (3) there were statistically significant results in gamification, (4) unambiguous exercises, (5) GUI student performance between Codecademy and design and multi-modality, and (6) curriculum Gidget Puzzle Designer on the posttest, indicating that structured tutorials may improve student ©2019 ISCAP (Information Systems and Computing Academic Professionals) Page 21 https://isedj.org/; http://iscap.info Information Systems Education Journal (ISEDJ) 17 (3) ISSN: 1545-679X June 2019 knowledge over non-structured environments. majors (25 out of 30). The course consisted of 26 men and 4 females. Figueroa and Amoloza (2015) incorporated three online interactive platforms into a multimedia Rather than offer the interactive lessons as an course for non-computer science majors to study optional supplement for which the students could the impact of these platforms on programming complete or not complete, the author decided to anxiety and perceived learning. The platforms require the interactive lessons as a part of the included Blockly, Code.org, and Codecademy. In course requirements constituting 10% of the this particular study, Codecademy’s JavaScript overall course grade. This decision was made to programming course was used. Students were motivate the students to complete the interactive administered the Programming Anxiety Survey, lessons. A breakdown of the course requirements consisting of six questions, before taking the and percent of course grade is provided in Table course and after taking the course. The analysis 1. A list of the knowledge and skill outcomes is of the survey data indicated a statistically provided in Appendix A. significant difference between the average scores before and after taking the course. Furthermore, Course Requirements % data collected also indicated a positive result Lab Assignments 35% among students in terms of perceived learning. Codecademy Interactive Lessons 10% The authors conclude that the combination of the Quizzes 10% three online interactive platforms resulted in “a Exams (2) 30% significant decrease in learning anxiety and an Final Exam 15% increase in perceived learning among students Table 1. Breakdown of Course Requirements who took the course” (p. 65). Topics Covered 3. IMPLEMENTATION The textbook for the course was “Starting Out Codecademy Teaching Resources with Python Programming” (Gaddis, 2018). As a part of its educational strategy Codecademy Because the course was taught in an 8-week provides several teaching resources including summer session the author covered the first six teacher training, class resources, and classroom chapters: (1) Introduction to Computers and tracking. Teacher training allows instructors to go Programming, (2) Input, Processing, and Output, through the same interactive lessons as the (3) Decision Structures and Boolean Logic, (4) students free of charge. Class Resources include Repetition Structures, (5) Functions, and (6) Files free lesson plans and quizzes. Classroom Tracking and Exceptions. While the Codecademy Python allows the instructor to create student accounts course consists of 21 individual courses covered and to track individual performance by overview in 36 lessons the author selected those courses and by unit. The tracking allows for the instructor which matched the content of the textbook to see the percentage of each individual course chapters: (1) Python Syntax, (2) Tip Calculator, completed. (3) Strings & Console Output, (5) Conditionals & Control Flow, (7) Functions, and (14) Loops (See Course Requirements and Outcomes Appendix B). Additional courses were available to While planning to teach Python programming for provide students an opportunity to apply the the first time, the author decided to implement concepts from the main courses. For each the interactive Python lessons provided by textbook chapter the associated interactive Codecademy. The idea of these free, online, lessons were provided on the course schedule interactive lessons was appealing to the author as (See Appendix C). an additional means to potentially engage students beyond the traditional textbook 4. POSITIVES AND NEGATIVES materials. He was curious to see how the Positives student’s would respond to the interactive nature The author identified several positive aspects of of the lessons and see if the students thought implementing the Python interactive lessons as they were a worthwhile activity in addition to the an instructional supplement. First, and perhaps customary quizzes, exams, and assignments. most obvious, the interactive lessons are free. With the rising cost of traditional textbooks and The course itself was offered online in an 8-week summer session via Blackboard Learn 9. A total the additional expense of adding publisher’s of thirty students were enrolled in the course. The interactive content (e.g., MyProgrammingLab) majority of students were either Computer they provide an easily accessible, no-cost Information Systems or Information Technology ©2019 ISCAP (Information Systems and Computing Academic Professionals) Page 22 https://isedj.org/; http://iscap.info Information Systems Education Journal (ISEDJ) 17 (3) ISSN: 1545-679X June 2019 alternative which is quite attractive to both instructional strategy students may simply rush instructors and students. through the interactive lessons to get them completed rather than taking their time to learn, Second, the interactive lessons are self-paced understand, and apply the content. and students can repeat the individual courses as many times as they wish. If the student is having From the author’s perspective, there were difficulty with a particular topic they can spend as actually very few negatives from the standpoint much time with it as needed. Additionally, of creating and managing the Python course in students can access the content at their Codecademy. It would have been nice if the convenience and do not need to install special students were automatically notified that their software or have lab access. With Internet access accounts were created and what their username and a browser the student is good to go. and password was rather than the author having to send an individual message to each student in Third, because of the interactive nature of the Blackboard. The fact that the author had to lessons student receive immediate feedback on manually enter the percent completed values the code that they are writing. It is no surprise to from the tracking system to the Blackboard instructors that today’s students prefer hands-on gradebook was also a bit time-consuming. activity over reading a textbook or passively listening to a lecture. The author found that the 5. EVALUATION OF SKILL OUTCOMES feedback provided by the interactive lessons was user-friendly and provided enough guidance to In addition to identifying the positives and scaffold the learning experience and help to solve negatives, the author evaluated the use of logical or syntactical errors. Codecademy as an instructional supplement in terms of meeting the course skill outcomes (see Finally, from the author’s perspective, setting up Appendix A). and managing a Codecademy course via the Classroom Tracking interface was quite simple SO1: Students will create Python programs and intuitive. Basically, the instructor chooses the using the Python interpreter and the IDLE course they want to use and then can customize IDE its name and description to match the course Because the Python lessons are embedded within syllabus. The instructor then adds the students to the Codecademy online, interactive environment the course and a username and password is a specific interpreter and/or IDE is not used. This automatically created for each student. Students skill outcome was met outside of Codecademy can be added, edited, and deleted at any time. An using the Python interpreter and IDLE IDE easy-to-follow “Pupil Tracker Guide” is provided provided on the Python website. by Codeacademy. The students can then login and change these items if they choose. As SO2: Students will apply the steps in the students complete individual courses the tracking program development process interface displays an overview of each student’s The program development process followed was progress as well as individual performance by that provided by Gaddis (2017): (1) Design the lesson. The author then entered the completion program, (2) Write the code, (3) Correct syntax percentage into the gradebook in Blackboard. The errors, (4) Test the program, and (5) Correct logic performance matrix can also be downloaded as a errors. This skill outcome is partially met using comma-separate values (.csv) file and opened the interactive lessons. The structure of the and edited in Excel. majority of the interactive lessons is to provide students with a prompt to write a single line of Negatives code and provide immediate feedback or to The implementation of the Python interactive provide students with partial code for which they lessons was not without its negatives. As with any complete. Students are not required to design interactive coding environment there is limited and write a program from start to finish. Some opportunity for creativity by the students since may find this as a shortcoming of the interactive the “solutions” are predefined. The downside of lessons as they provide only partial snippets of this approach is that students only see potentially code to be completed, rather than working one way of solving a problem – they are not through the full program development process. allowed to think “outside of the box”. Another possible downside is that they simply employ a SO3: Students will implement variables, trial-and-error approach to problem solving until literals, and constants they receive the correct answer rather than The interactive lessons provide students the enlisting critical thinking skills. As with any opportunity to implement variables, literals, and ©2019 ISCAP (Information Systems and Computing Academic Professionals) Page 23 https://isedj.org/; http://iscap.info
no reviews yet
Please Login to review.