Programming Assignment for CS216: Software Engineering