Topics
| Topic | Readings |
|---|---|
| 234-trees | 2-3-4 tree |
| A and A* | Luger5 §4.2,
Luger5 §4.3,
Luger6 §4.2,
Luger6 §4.3
Admissibility, A*, Dijkstra's and A* |
| Affordances | Affordance |
| Algorithm analysis | |
| Alpha-beta pruning | Luger5 §4.4.3,
Luger6 §4.4.3
Alpha-beta pruning, Branch and bound |
| Assorted review | |
| B-trees | Elmasri4 §14.3,
Elmasri6 §18.3,
Weiss3 §4.7
B-tree |
| Bayes nets | Luger5 §9.3,
Luger6 §9.3
Bayesian inference |
| Bayes' Law | Luger5 §5.4,
Luger6 §5.4
Bayes theorem |
| Brute-force search | Luger5 §3.2,
Luger6 §3.2,
Weiss3 §9.3.1,
Weiss3 §9.6
Depth-first search, Breadth-first search, Iterative deepening depth-first search, Iterative deepening vs depth-first search |
| Compression | Run-length encoding |
| Computational geometry | deBerg3 §1.2,
deBerg3 §1.3
Computational geometry |
| Converting between models | Elmasri4 §7.1, Elmasri6 §9.1, Ullman2 §3.2 |
| Convex hulls | deBerg3 §1.1
Convex hull |
| Convex hulls cont'd | |
| DEFLATE | RFC 1951, DEFLATE |
| Data independence | Elmasri4 §2.2,
Elmasri6 §2.2
Data independence |
| Database components | Elmasri4 §2.4,
Elmasri6 §2.4,
Ullman2 §1.2
Database |
| Database constraints | Elmasri4 §5.2,
Elmasri4 §8.2,
Elmasri6 §3.2,
Elmasri6 §4.2,
Ullman2 §7.1,
Ullman2 §7.2
Database constraints |
| Database correctness (ACID) | Elmasri4 §17.3,
Elmasri6 §21.3,
Ullman2 §1.2.4
Database transaction, ACID |
| Database design principles | Elmasri4 §12.2, Elmasri6 §10.2 |
| Database security | Elmasri4 §23.1,
Elmasri4 §23.2,
Elmasri6 §24.1,
Elmasri6 §24.2
Database security, "Exploits of a Mom" (Little Bobby Tables) |
| Design tradeoffs | |
| Dijkstra's algorithm | Weiss3 §9.3.2
Dijkstra's algorithm, Dijkstra example (graphical), Dijkstra example (good pseudocode, great data trace) |
| Distributing databases | Shard, No SQL |
| Diversity and accessibility | Web accessibility, The Supreme Court, Domino's, and web accessibility for the visually impaired |
| Doubly-connected edge lists | deBerg3 §2.2,
deBerg3 §2.3
Doubly connected edge list |
| Entity-relationship models | Elmasri4 §3.3,
Elmasri4 §3.4,
Elmasri6 §7.3,
Elmasri6 §7.4,
Ullman2 §2.1,
Ullman2 §2.2
E-R model |
| Feedback | |
| Graphs | Luger5 §3.1,
Luger6 §3.1,
Weiss3 §9.1
Graph, Tree |
| Heuristics, take 2 (minimax) | |
| Huffman coding | Weiss3 §10.1.2
Huffman coding |
| Implementing best-first search | |
| Information retrieval | Information retrieval |
| Information theory | Information theory |
| Introduction | |
| Line segment intersection | deBerg3 §2.1
Line segment intersection |
| Logic | Luger5 §2.1,
Luger5 §2.2,
Luger5 §3.3,
Luger6 §2.1,
Luger6 §2.2,
Luger6 §3.3
Propositional logic, Predicate logic, First-order predicate logic, Theorem proving |
| Lossy compression | Lossy data compression |
| Minimax | Luger5 §4.4,
Luger6 §4.4
Minimax, Minimax in AI/games (don't miss link to part 2) |
| Nature of intelligence | Luger5 §17.1,
Luger6 §16.1
Turing test, Chinese room, ELIZA, Turing, A.M. (1950). Computing machinery and intelligence. Mind, 59, 433-460., How Machines Learn (CGP Grey) |
| Naïve Bayes | Naive Bayes classifier, Chain rule |
| Paper prototyping | Paper prototyping |
| Pathfinding | |
| Physical data storage | Elmasri4 §13.1, Elmasri6 §17.1 |
| Precision and recall | Precision and recall |
| Probability | Luger5 §5.2,
Luger6 §5.2
Conditional probability, Joint probability |
| Problem spaces | Luger5 §3.1.3,
Luger6 §3.1.3
State space search |
| Problem spaces, cont'd | Alnilam (game) |
| Project 2 design | |
| Project design work | |
| Prolog | Luger5 §15.1
Prolog, Prolog tutorial |
| Red-black tree deletion cases | |
| Red-black tree implementation cases | Slides on 234/RB insertion cases, RB insertion and deletion with 234 correspondences (English is imperfect but examples are very good), RB insertion (with examples) |
| Red-black trees | Weiss3 §12.2
Red-black tree |
| Relational models | Elmasri4 §5.1,
Elmasri6 §3.1,
Weiss3 §3.1
Relational database, Relation, Examples of CREATE/INSERT |
| SQL | Elmasri6 §4.1,
Elmasri6 §4.3,
Ullman2 §6.1,
Ullman2 §6.5,
Elmasri4 §8.1,
Elmasri4 §8.4
SQL, SQL syntax (SQLite dialect), SQL query semantics |
| Sliding window: LZ77 | LZ77 |
| Stateful comparators | |
| Tries | Trie |
| UI evaluation criteria | Usability testing |
| UI perception and cognition | |
| UI standards and guidelines | Best practices in GUI design, List of UI style guides |
| Unification | |
| User interfaces | User interface, User interface design |
| Using hash tables | unordered_set in C++, HashSet in Java |
| Using maps | Weiss3 §4.8
map in C++, Map in Java |
| Using priority queues | priority_queue in C++, PriorityQueue in Java |
| Writing hash functions | Hash functions, hash in C++, hashCode() in Java |