Object Oriented Programming and Data Structures
Fluent in the use of recursion and object-oriented programming concepts (e.g. classes, objects, inheritance). Able to design and implement nontrivial Java programs (roughly 1000 lines of code), starting from an English language specification. Understanding graphical user interfaces (GUIs). Understanding asymptotic complexity of algorithms. Understanding basic data structures taught in the course and be able to implement them and use them in programs.