Errata: Badly named delegate method

The delegate method for the CourseListViewController should be named

func courseListViewController(viewController: NSViewController, didSelectCourse: Course?) -> Void because it is called after the viewcontroller did something.

Just look at basically any delegate method from Cocoa.
Apple even has naming suggestions/conventions for this:

Of course the method signature itself would look like this then: