PythonSneks: An Open-Source, Instructionally-Designed Introductory Curriculum with Action-Design Research

Rising enrollments and limited instructor resources underscores the growing need for reusable, scalable curriculum. In this paper, we describe an open-source introductory Python course for non-Computer Science majors in STEM, designed following best practices of Instructional Design (a process similar to Software Engineering). The created resources include 234 learning objectives, 51 lesson videos, 45 lecture slides, 170 programming problems, 281 quiz questions, 6 unit tested projects, and 4 ethical prompts. A teaching field guide has also been produced as a result of this effort, documenting how to deploy this curriculum on a daily level. We describe our experiences deploying over two semesters. The course serviced over 500 students, with 100s in some sections. Along the way, two interventions were conducted in an Action Design Research style: one using Worked Examples, and another using Structured Small Groups. We report on the mixed results of these experiments, plus evaluations of the assignments from student surveys and statistical measures of item effectiveness. Finally, we describe lessons learned when following Instructional Design processes.

[1]  Philip J. Guo,et al.  How video production affects student engagement: an empirical study of MOOC videos , 2014, L@S.

[2]  Joanna Goode,et al.  Beyond curriculum: the exploring computer science program , 2012, INROADS.

[3]  Clifford A. Shaffer,et al.  Instructional Design is to Teaching as Software Engineering is to Programming , 2016, SIGCSE.

[4]  Austin Cory Bart,et al.  Design and Preliminary Results From a Computational Thinking Course , 2015, ITiCSE.

[5]  David A. Joyner Congruency, Adaptivity, Modularity, and Personalization: Four Experiments in Teaching Introduction to Computing , 2017, L@S.

[6]  Richard Catrambone,et al.  Improving problem solving performance in computer-based learning environments through subgoal labels , 2014, L@S.

[7]  Robert McCartney,et al.  Folk Pedagogy: Nobody Doesn't Like Active Learning , 2017, ICER.

[8]  Rani Hod,et al.  CS1001.py: a topic-based introduction to computer science , 2012, ITiCSE '12.

[9]  Cynthia R. Marling,et al.  CS0 for Computer Science Majors at Ohio University , 2016, SIGCSE.

[10]  Lillian N. Cassel,et al.  Ensemble: enriching communities and collections to support education in computing , 2009, ITiCSE '09.

[11]  Mia Minnes,et al.  Micro-Classes: A Structure for Improving Student Experience in Large Classes , 2017, SIGCSE.

[12]  Cameron L. Fadjo,et al.  EngageCSEdu: engaging and retaining CS1 and CS2 students , 2015, Inroads.

[13]  Mark Guzdial,et al.  Subgoals, Context, and Worked Examples in Learning Computing Problem Solving , 2015, ICER.

[14]  Diane Horton,et al.  Evaluating an inverted CS1 , 2014, SIGCSE.

[15]  Diane Horton,et al.  Drop, Fail, Pass, Continue: Persistence in CS1 and Beyond in Traditional and Inverted Delivery , 2015, SIGCSE.

[16]  Andrew Luxton-Reilly,et al.  Worked examples in computer science , 2014, ACE.

[17]  Mark Guzdial A media computation course for non-majors , 2003 .

[18]  Keith Olson,et al.  On countability, enumeration, and how to think like a computer scientist , 2013 .

[19]  Amy J. Ko,et al.  On Use of Theory in Computing Education Research , 2018, ICER.

[20]  Ernest T. Stringer Action Research in Education , 2003 .

[21]  James O. Carey,et al.  The systematic design of instruction , 1978 .