<<

Use of Commercial Online Training to Augment Programming

David P. Harvie, Keith E. Major, Tanya T. Estes

This paper was completed and submitted in partial fulfillment of the Master Teacher Program, a 2-year faculty professional development program conducted by the Center for Faculty Excellence, Military Academy, West Point, NY, 2019.

ABSTRACT

This paper describes the motivation and utilization of commercial online training in programming to augment student learning. The number of languages introduced during the course required students attain a fundamental level understanding of each language at a fast pace. The choice to use a commercially available training course, specifically Code School, removed the burden from instructors to build and maintain similar content. However, commercial online courses have the challenge that they are built and maintained by third parties which requires instructors to adjust to changes implemented by those third parties. Student feedback indicated that the online training courses assisted them in achieving a basic understanding of the languages. However, it is critical to select the appropriate online course to match the students’ prior computing background.

INTRODUCTION

The purpose of this paper is to describe and assess the efficacy of using commercial online training to augment programming . This paper will describe the motivations and objectives of including online training followed by an assessment of that training with recommendations for the future. Beginning in the academic year of 2016–2017, sophomore students at the United States Military Academy (USMA) majoring in either of the offered computing disciplines, specifically computer science or information technology, simultaneously take two common courses during the fall semester: an introductory programming course and a survey course of computer science and information technology topics. The survey course, designated CY355 Cyber Foundations – Computing, covers topics such as databases, web applications, networking, and cyber security. The students learn MySQL [7] and MongoDB [6] for the databases block, and they learn HTML, CSS, JavaScript, and Meteor (a full-stack JavaScript platform) [4] for the web applications block. The introductory programming course is taught in Python. The introduction of two database query languages plus HTML, CSS, and JavaScript over the course of one semester is daunting to novice computing undergraduate students. The challenge is how to present the material in a manner that will allow the students to more rapidly attain foundational knowledge of these programming languages. Given the time constraint of a one-semester course, the students must spend time outside of the classroom to learn the material. Commercial online training in programming languages has existed for years. A quality online course may quicken the ability for a student to learn the basics of a programming language.

2 RELATED WORKS

The method of instruction where students complete work prior to class to prepare for the lesson is referred to in literature as flipping the classroom. This method benefits students by allowing for self-paced learning. Additionally, students learn how to learn and take ownership of the educational process [9]. Our use of a commercial online course allows a student to acquire the fundamentals of a language, preparing them for the material provided during class. This concept has been studied previously [1, 10], and shown that it is possible to improve student scores and understanding of the material. Flipping the classroom requires the instructor to create instructional materials: videos, , and online quizzes. These tools enable students to interact with the subject matter prior to class. Studies have shown that creating the online material for a class is initially very time intensive for the instructors, but afterwards frees up instructor resources [2, 3]. A Massive Open Online Course (MOOC) is similar to a flipped classroom as it requires significant preparation time for the instructor to prepare class materials [2]. The difference in the proposed method to a traditional flipped classroom or MOOC is the utilization of commercial online materials versus instructor created content; decreasing the instructor preparation time, at the cost of not being personalized for the course.

MOTIVATION

Using commercially available online training will help facilitate student learning of programming languages and help augment the student’s computing education. Additionally, online training will enable students to gain basic proficiency of programming languages at a faster rate. This more rapid attainment of basic proficiency will mitigate the risk of introducing several programming languages in a foundational computing course.

METHODOLOGY

The first step in incorporating online training into the curriculum was to decide whether to build or purchase the material to use. The overhead of building and maintaining an online training course by the same faculty also teaching the course was too burdensome. Thus, a commercial solution was the only feasible means to incorporate online training that could persist. The second step was to choose an appropriate commercial online training curriculum. The curriculum selected was Code School [8]. Code School was identified by senior faculty as a great online training site to learn programming. Likewise, Code School was rated “Excellent” by the editors of PC Mag [5] in 2015. A key reason in selecting Code School is that each online course assessed student understanding through interactive challenges, to include writing the appropriate code to a challenge. A student could only progress and ultimately complete the course by successfully completing these interactive challenges. These challenges reinforced the learning and enabled instructors to receive feedback on their students’ progress. Code School offered online training in SQL, MongoDB, HTML, CSS, JavaScript, and many other languages and topics. Code School, however, did not offer online training in the Meteor platform. Students were provided with paid site licenses to access all the courses offered by Code School. The required online training courses shown in Table 1 were assigned as required homework at the beginning of the semester; due dates coincide with when those specific languages would be taught in class. The students were assessed based on their successful completion of each course, indicated by a badge in their Code School profile, within the allotted time. Instructors ran a script that pulled all the badges earned by each student and the corresponding completion time stamps and compared that data to required badges and their course due dates.

Table 1: Required Code School Courses

Course Title Topic Try SQL SQL The Sequel to SQL SQL The Magical Marvels of MongoDB MongoDB The Elements of Web Design Web Design Front-end Foundations HTML/CSS Front-end Formations HTML/CSS ES2015: The Shape of JavaScript to Come JavaScript

Students had the freedom to begin the courses as soon as they wanted, and they had the ability to take courses beyond the required training. The material covered in the online training was reinforced by in-class exercises and assessed on individual projects and examinations.

ASSESSMENT OF ONLINE TRAINING

Sixty-seven sophomores majoring in either computer science or information technology enrolled in CY355 in the fall semester of 2016. During the semester, anecdotal evidence indicated that the SQL training was well received, but the JavaScript training which included more complex JavaScript topics such as hoisting, was too much for students at their level in the computing discipline. The grades of the online training, based on completion date, was consistent with overall grades of the students. Several weeks after the conclusion of the course, the authors surveyed the former students in order to receive feedback regarding the course, to include the use of Code School. Twenty-nine students (43.2%) of the 67 sophomores responded to the survey. Twenty-eight of these respondents were CS majors, and one was an IT major. The majority of the respondents assessed Code School as being beneficial to their learning of the required computer languages as shown in Figure 1. When asked if they would recommend the continued use of Code School, most of the respondents did recommend continued use as shown in Figure 2.

Figure 1: Student Assessment of Code School Figure 2: Student Recommendation of Code School

The students were also queried about whether to keep or get rid of specific Code School courses in CY355. As shown in Figure 3, the most popular courses to retain were the database courses, followed by web design and implementation, and then the JavaScript course. It is interesting to note that no one selected “None of the Above” which indicates that all respondents recommended the retention of at least one course. When asked about which course to get remove from CY355, the respondents overwhelmingly selected ES2015: The Shape of JavaScript to Come as shown in Figure 4. In retrospect, this course started at much too advanced a level than the other classes. Code School does offer more basic JavaScript courses, and one of those may better serve the students in CY355. It is also interesting that five of the respondents indicated that none of the courses should be discarded for the future offering of CY355. Students were then asked, “What are your thoughts about using Code School to facilitate the learning of computer languages?” Twenty-three students responded to this question. The respondents provided both positive and negative feedback. The positive comments received from the students indicated that they felt that Code School lessons were a good way to introduce the languages using simple examples and that they provided great resources (e.g. slides) that can be referenced later. One student stated that they “use it constantly beyond CY355. Makes it easy to learn.” The negative feedback received from the students mainly indicated that the effort required to complete each online course was not proportionate to the points assigned to completing that course and that the learning in Code School had to be reinforced with more complex examples in either the classroom or through homework. One student stated, “I learned languages like MySQL and MongoDB much better from completing the database project as opposed to using Code School.” Also, selecting the appropriate course for introducing the material is critical to student learning as several mentioned the ES2015 JavaScript course as being inappropriate for an introductory course.

Figure 3: Courses Recommended to Keep Figure 4: Courses Recommended to Get Rid Of

BENEFITS AND CHALLENGES OF ONLINE TRAINING

Online training courses present a novel and interactive way to introduce new programming languages to students without much overhead to the instructor. Assigning all the required online courses at the beginning of the semester allows the students to progress their learning on their own schedule. The students can utilize opportunities during the day to make progress along these online courses. Additionally, students can explore other courses that are available to them but are not required by the academic course, inspiring further learning. Online training courses with interactive challenges help reinforce the learning and provide instructors important feedback regarding student progress. This feedback can then be used to help guide instructor assessment of student learning at both the class and individual levels. Because both the content and interactive challenges of these online courses are created and maintained by a third party, instructors can utilize these tremendous resources with little overhead allowing instructors to focus on other areas of lesson preparation and assessment. There is an economic price tag to purchasing site licenses to access these online training courses. However, the amount of time, money, and resources to create similar training courses in house make it much more economical to simply pay for the site licenses. The challenge of third-party online training courses is to understand the ramifications that they are both training and built by third parties. The purpose of an online programming training course is to train a person to learn a specific language. The course is not designed to be a complete educational vehicle. It can function to augment both classroom instruction and out-of-class assignments. However, it cannot replace the classroom instruction. Third party online training courses are built by companies to be used by as wide a customer base as possible. They are not designed for a specific academic course. Instructors using online training courses are limited to what is offered. In the case of CY355, the most difficult language to teach, the Meteor framework, did not have an online training course. Further, there is an inherent risk to relying on third party online training courses because the third party can change the courses they offer, how they offer those courses, or even go out of business. This requires instructors to be diligent in regard to the status of these online courses and their offerings. A final challenge in utilizing online training courses is selecting the appropriate courses. Each course must be evaluated in terms of how the online content contributes to student achievement of course objectives. Also, students’ previous knowledge level of a programming language needs to match the target audience’s knowledge level that an online course is designed for. Any significant difference in those knowledge levels will certainly cause student frustration.

CONCLUSION AND RECOMMENDATIONS

Online training courses to learn programming languages are prevalent today and for the foreseeable future. It is only logical to take advantage of these online courses to assist in educating students in programming. Online training courses that have interactive assessments both reinforce learning and can give important feedback to instructors regarding student learning. Instructors looking to augment their classes with online course should give priority to those courses that offer assessments. Furthermore, an online training course cannot and is not designed to replace an educational classroom. Instructors must still design lessons that will facilitate student learning incorporating the online training, but not completely relying on the online training to enable students to achieve course objectives. Finally, instructors relying on online training courses must remain vigilant with respect to changes to those courses and stay apprised about what new courses become available. This is an exciting challenge to keep the class content constantly improving as new online courses are introduced.

REFERENCES

[1] A. Amresh, A. R. Carberry, and J. Femiani. 2013. Evaluating the effectiveness of flipped classrooms for teaching CS1. In 2013 IEEE Frontiers in Education Conference (FIE). 733–735. https://doi.org/10.1109/FIE.2013.6684923 [2] J. Michael Fitzpatrick, Ákos Lédeczi, Gayathri Narasimham, Lee Lafferty, Réal Labrie, Paul T. Mielke, Aatish Kumar, and Katherine A. Brady. 2017. Lessons Learned in the Design and Delivery of an Introductory Programming MOOC. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer (SIGCSE ’17). ACM, New York, NY, USA, 219–224. https://doi.org/10.1145/3017680.3017730 [3] Nira Herrmann, Jeffrey L. Popyack, Bruce Char, and Paul Zoski. 2004. Assessment of a Course Redesign: Introductory Computer Programming Using Online Modules. In Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education (SIGCSE ’04). ACM, New York, NY, USA, 66–70. https://doi.org/10.1145/971300.971326 [4] Meteor. 2018. Meteor. Retrieved May 30, 2018 from https://www.meteor.com/ [5] Jordan Minor. 2015. Code School. PC Mag (October 30, 2015 2015). Retrieved June 11, 2018 from https://www.pcmag.com/article2/0,2817,2493693,00.asp [6] MongoDB. 2018. MongoDB. Retrieved May 30, 2018 from https://www.mongodb.com/ [7] Oracle. 2018. MySQL. Retrieved May 30, 2018 from https://www.mysql.com/ [8] Pluralsight. 2018. CodeSchool. Retrieved May 30, 2018 from https://www.codeschool.com/ CodeSchool was purchased by Pluralsight. As of June 1, 2018, all content on codeschool.com will be migrated to pluralsight.com.