Systematic Program Design- Part 1
Institution: University of British Columbia (edX)
Date: September 16, 2015 - October 4, 2015
Bio: The first in a three part specialization that focuses on a systematic, template approach to creating well structured code. This course does not focus on a specific language, but rather on code structure itself. Instead of a more common programming language, they use the Beginning Student Language and the DrRacket editor.
The course lays out a series of Design recipes for creating and designing code, starting with functions, data, and basic classes. It generally has you define basic headers, definitions, and empty return values before filling out any of the functioning code. There is also a philosophy of creating the test cases for each function first, before actually programming the function.
Most of the programming it deals with is pretty basic, but it is building a foundation that will help support writing more complex programs down the road. It helps focus a more architectural design focus for coding, rather than the adding yet another function to an existing monolithic code base approach. The write test/definitions first focus also aims to reduce bugs and refactoring later on.
While the first part of this series is rather introductory, I think it will be a fairly powerful tool for any programmer and I am hoping that the future courses get into a lot more depth with the design style. This is the first programming course I've seen in a while that has such a strong focus on code architecture rather than functionality or semantics.
Accomplishments: The course has a combination of lecture questions, quizzes, and self assessment coding project. I completed all of the course work with a final grade of 100%.