This computer science course is the first of a two-course sequence about writing good software using modern software engineering techniques.
In this course, you will learn what software engineers mean by "good" code -- safe from bugs, easy to understand, and ready for change. You will also learn ways to make your code better, including testing, specifications, code review, exceptions, immutability, abstract data types, and interfaces.
This is a challenging and rigorous course that will help you take the next step on your way to becoming a skilled software engineer.
Photo by Wizou on Flickr. (CC BY) 2.0