The ability to create useful, practical software to solve problems is a crucial tool in the information professional's toolbox. At the same time, while many fundamental concepts remain constant, workflows and capabilities change over time in a shifting landscape of tools, platforms, and frameworks. The overall goal of this course is to provide students with a foundation of concepts as well as training in a set of specific tools, to empower them to continue to write useful, trustworthy software. Students will develop competencies to prepare them for advanced courses in data science, analytics, and/or cybersecurity.