CIS121 Spring 2012
Syllabus
The course will cover the following topics. See lectures for additional information.
- Elements of software engineering; object-oriented design, testing.
- Design patterns.
- Asymptotic complexity, big-oh notation, code and pseudocode analysis.
- Stacks, queues, lists.
- Sorting algorithms.
- Priority queues and heaps.
- Tree traversals, iterators.
- Search trees, balanced trees.
- Hash tables.
- Graphs, depth-first and breadth-first search.
- Weighted graphs, shortest paths (Dijkstra's algorithm), minimum spanning trees (Kruskal's algorithm).
- Digraphs, DAGs, topological sorting, transitive closure.
- Introduction to UNIX.
- Introduction to relational databases.