Courseware Considerations
It’s not a perfect world
- Code assuming something is going to break
- Check all return types
- Plenty of assertions
Debugging/testing support
- printfs, event logs, data structure dumps
- step through code as it executes
Remember that computers are deterministic
- If something goes wrong, it can be tracked down