Programming Assignments for Coursera's "Pattern-Oriented Software Architecture" course