179x 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.