Graduate-level Software Design course assignments