SI 506 is designed for graduate students with little or no programming experience. Computational thinking, program design fundamentals, and code readability and maintainability are key themes. SI 506 together with SI 507 constitutes an introductory course series that focuses on programming fundamentals. As a foundational course SI 506 serves as a prerequisite for SI 507 along with other more advanced UMSI courses.