Python is one of the most popular programming languages in the world, thanks to its power and ease of use. These features make it a great language to teach novice programmers, making it simple to pick up while still empowering students to solve real-world problems.
This course is designed with a broad population of learners in mind, aiming to get them programming and building software. Ideally, they will become more than just programmers - they will learn some enduring software development skills that they can transfer to other languages. However, this course is not expected to make them expert developers, but instead to make them competent at solving relatively small, well-defined problems in Python.
We have a 2019 paper at SIGCSE about this curriculum.
This is version 1 of the Field Guide, 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: