CS257 Software Design Monday, 12 September 2022 + Welcome! - I'm Jeff. Olin 301A. jondich. - Masks: the CS dept and Olin 310 - Meet each other + What makes software good? - Readability of source code - Documentation - Ethical purpose - Easy to debug - Functionality - Efficiency - Easy-to-use UI - Fills an actual need - Functionality for edge cases - Security - [don't let users mess with code] - Transparent: what is this sw doing? Jeff's short list - Correct - Meets the needs of people it's intended for - Maintainable + Examples of real software that - Makes people's lives better - Hearing aid control - Moodle - Zoom - Ad block - Stoplight control software - MS Office - Makes people's lives worse - Zoom - Military software: used for killing people - Malware - Torrent? - Find My Phone, etc. tracking in general + Logistics - Quick tour of the course website - No Moodle - Laptops in classroom optional (but you might want them) - Different backgrounds + This week - Get set up - Meet Unix, git, and GitHub - Readings and discussions about low-level code quality + Next week - Command-line interface design and implementation - Test-driven development and unit tests