Requires first level course in Java or