|
|
Course objectives
The goals of Com S 211 are to make students proficient in the use of (i)
modern programming language features such as recursion, subtyping, inheritance,
graphical user interfaces (GUIs), and generic programming and (ii) modern
data structures such as lists, trees, stacks, queues, heaps, and graphs.
Topics covered
- Recursion
- Classes and objects
- Subtyping
- Inheritance
- Interfaces
- Graphical user interfaces (GUIs)
- Generic programming
- Asymptotic complexity: big-O notation
- Searching and sorting in arrays
- Lists and trees
- Stacks, queues, priority queues, heaps
- Binary search trees, hash tables
- Graphs and simple graph algorithms such as Dijkstra’s single-source
shortest-paths algorithm,
and minimal spanning tree algorithms.
Course outcomes
- Be fluent in the use of recursion and object-oriented programming
concepts (e.g. classes, objects,
inheritance, and interfaces).
- Be able to design and implement non-trivial Java programs (roughly
1000 lines of code),
starting from an English language specification.
- Be able to design graphical user interfaces. (GUIs).
- Understand asymptotic complexity of algorithms and be able to analyze
programs to determine
their running times.
- Understand basic data structures -arrays, lists, trees, stacks, queues,
priority queues, binary
search trees, and hash tables.
- Understand graphs and elementary graph algorithms.
|