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:
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingMethods.html

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