NPS CS3021 programming assignment