nts through individual programming assignments; knowledge of the Java programming language including: classes, methods, object creation, instance and local variables, primitive and object types, simple I/O, and control flow through individual and group programming assignments; knowledge of software design and development processes including analysis of requirements, design of data-structures, func