This section will document design decisions that were made in developing the course.
Two lessons were dedicated to writing classes, but this didn’t seem like enough. It’s likely that an entire module needs to be dedicated to this topic. Instead, we approach objects from more of a “use” side than a “create” side.
We tried having a single day dedicated to them, and there wasn’t enough time. You could probably replace one of the project weeks with a week on FP.
We had a lesson on it, but it wasn’t important enough material to keep it around. You could probably put it back in without any problems.
Recursion is de-emphasized in Python compared to other forms of iteration. In particular, the language does not perform optimizations like tail recursion and has a relatively small call stack limit. Although some research indicates recursion might be easier to learn than other forms of iteration, there is also some evidence that teaching recursion first makes it harder to learn iteration later.
While loops are extremely uncommon compared to For loops in Python. They are also rife with opportunities for students to get caught in infinite loops. Finally, the Python wiki itself suggests they are uncommon: https://wiki.python.org/moin/WhileLoop