CS212/Designing of Computer Programmes is a course at udacity.com