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' Law Luger5 §5.4, Luger6 §5.4
Bayes theorem
Bayesian inference Luger5 §9.3, Luger6 §9.3
Bayesian inference
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
SQL cont'd
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, queue.PriorityQueue in Python
Writing hash functions Hash functions, hash in C++, hashCode() in Java