First cut at programming assignment