Let's keep them on in this class for the rest of this term.
Notes about the command shell
Improvements to the assignment
Assign it in more than one piece, a couple simple features first
Don't mention the "history" feature--it's too far away from "how do processes work?"
(or maybe mention it in the context of "cool zero-point features" only)
Be super-explicit about "command1 | command2" not meaning "arbitrary-length pipelines"
What additional help to include up-front?
More time in class on piping
Rethink initialize() and cleanup() in the skeleton program
7-9 days total
What else?
Thinking about difficult software development tasks
Implement and test in the smallest increments possible
Backing up your code carefully between increments (version control software!)
Incremental development is harder/more dangerous when you keep having to
work on the same code over and over; easy to break what was working before
Perfection isn't possible; triage and prioritization are essential (this is
not just about software--think about the sustainability of your life)
Experimenting outside your project code is often worth the time. If you
understand the tools, the code based on the tools is much easier to write.