programming assignments for algorithms course in java