criteria for grading: basic technical skills, hygiene of code, adequacy of solution(s) & overall design.