Before moving to Edmonds College, I co-wrote a book with Stuart Reges and Marty Stepp, former colleagues of mine from UW that was published by Pearson. It is a back-to-basics approach to learning programming and focuses on developing students' reasoning ability. The big advantage it gives over many other textbooks is that it contains lots of worked examples. These step through the process of writing code with the new construct students are learning the way they will need to use to develop their homework. These go in depth about why each of these choices are made so students can learn why they are important.
You can find the official book website at www.buildingpythonprograms.com. It is for sale on Amazon, Pearson and many other stores.
The research, experimentation and curriculum development that went into creating this book assisted me greatly in transitioning our CS 115 class into Python. Although this book was originally written more for CS1 courses than for CS0 courses, most of it is still very relevant, it just needs to be taught at a slower pace and have more small practice problems assigned.
The Special Interest Group in Computer Science Education (SIGCSE) holds a conference once a year. For over 20 years two teaching track faculty from Stanford have run a special session called Nifty Assignment. This special session is comprised of 4 - 6 CS instructors presenting projects that they have written and used with their students. These projects get submitted to the conference beforehand, just as papers do, and only a few are selected to be part of the special session. Although this is a non-standard non-typical-paper session, it is one of the most highly attended at the conference. No one wants to have their presentation at the same time!
In 2019 I presented a project about gerrymandering, election data analysis and visualization. At the time there had been a lot of articles in the newspapers about gerrymandering and how to define it. A research group came up with a mathematical definition, which is what students implement. Nifty Assignments are used by many CS instructors all over the world. I got an email from an instructor on the other side of the US about this project just last week.
I have also translated this assignment into C and used it in both the CS& 141 and CS& 131 courses. Over the last several times I have taught CS& 131 I have adjusted it and broken it up into two separate assignments due to issues I was seeing students having. Some tasks are harder in one language than another and so students need more support.
In 2015 I presented a project I had co-written with a former colleague, Marty Stepp. This program involved students playing music stored in text files. This music was written in Scientific Pitch Notation, but repeated sections were only stored once. This led to some interesting logic and a captivating project for students to solve that also, once solved, did something fun.
I have adapted this project for the Edmonds 133 course which involved translating the language and writing support code.