An introductory curriculum for learning Python, built following Instructional Design principles. The materials of the course are meant to be open-source and evaluated, in the hopes of establishing a baseline introductory level course. The target audience is explicitly undergraduate students in a university setting who are not computing majors, but are in STEM.
We have a 2019 paper at SIGCSE about this curriculum.
This repository contains version 1, which was deployed under Dr. Cory Bart at Virginia Tech in Fall 2017 and Spring 2018 (and is still in use as of Spring 2019 under supervision of other instructors). Version 2 is in development for a broader class of students at the University of Delaware, as of Spring 2019; we're making modifications based on the following:
- Enhanced lessons on functions, with better coverage of unit testing and writing contracts in documentation
- More activity types including code critiques and reflections
- Actual transcripts with accessible slide descriptions
- Better versions of our programming problems to use the new Pedal API.
- And more!
If you are an instructor interested in teaching the curriculum, you can begin by checking out the Teaching Guide in the GitHub pages for this repository.
Or you might just want to browser our materials directly. In general, the repository is organized as follows:
- docs: Publicly accessible teaching guide and documentation for teachers.
- presentations: Prerecorded and in-person presentation materials.
- lessons: The transcripts of the prerecorded videos along with the organization of activities to complete in chunks.
- projects: The public version of the project writeups, without the starter code.
- quizzes: The public version of the quizzes (without the answers).
- references: Reference materials including API documentation for strings and the turtle module.
- reflections: Writing assignment writeups that require students to reflect and respond.
- programming: Programming question writeups and starter code.
- evaluations: ** Unfortunately, the public summarizations of our evaluations are still very limited. We hope to improve this in our next release as we focus on handling our evaluations in a more integrated way!
The Canvas Site
The materials here are destined for a Canvas site. Materials are synchronized using Waltz (well, they are in Version 2; in Version 1 we had a more ad-hoc script, but eventually pulled the "final" versions using Waltz).
You can visit the Canvas site here: https://canvas.instructure.com/courses/1380806
A number of people have been involved and should be recognized:
- Cory Bart is the project leader - he made a lot of stuff and is very tired.
- Larry Cox is the instructional designer and has been invaluable for both curriculum development, paper writing, and project planning.
- Eleonor Bart for her time testing, proofing, and designing curricular materials.
- Allie Sarver was an undergraduate research assistant and did some awesome research on how we used peer learning in the course.
- Michael Friend was an undergraduate research assistant and did some awesome research on the effect of worked examples on student learning.
- Panagiotis Apostolellis taught with the curriculum in Spring 2018, giving both valuable feedback and BEAUTIFUL slides.
- Cal Ribbens spearheaded the funding for a grant from TLOS and was responsible for starting this effort.
- TLOS gave us lot's of money and guidance to rebuild the course.