Prerequisite Topics for CSE 415: Introduction to Artificial Intelligence
If you wish to take CSE 415, you should be familiar with the following topics.
Most, but not all, of these are covered in CSE 373. If you know 80% of these,
you can probably pick up the rest during the course, as needed.
Trees and tree traversal via recursion.
Inorder, preorder, postorder.
Hashing...
Hash tables
hash functions
Many-to-one aspect
Collisions and resolution
Linear Probing
Priority queues
INSERT
DELETE_MIN
Graph and graph representations
Adjacency lists
Adjacency matrices
Graph Algorithms.
Dijkstra's algorithm
Min. Spanning trees
Either Prim's or Kruskal's algorithm
Programming:
Deep and shallow copies of objects and other compound data structures
Tree represented using nested lists
Regular expressions (basic concepts of REs)
Recursive functions, co-recursive functions
Logic:
Basic Boolean algebra and propositional calculus:
AND, OR, NOT, Exclusive-OR, Implies
Quantifiers
Forall x, Exists x, Variable Scope
Discrete Math:
Sets of elements
union, intersection, complement
partitions of a set
Binary relations
reflexive, symmetric, antisymmetric, transitive properties
partial order
equivalence relation
Cartesian products
Functions
Function property of a binary relation
function domain, range
Partial function.
Predicate,
Function properties: surjection, injection, 1-1 corresp.
Countably infinite sets
Power set
Permutations and counting them.
Combinations and counting them.
Proof by Induction
Basis
Induction hypothesis
Inductive step
Some exposure to Probability:
Random variable with finite domain
Joint probability distribution
Conditional probability
Other Math:
Geometric sequences and series, and formula for G.S.
Asymptotic Analysis:
Big O, Omega, Theta definitions and applications
Code examples, including nested loops, recursive functions.
Complexity of standard algorithms such as
Mergesort, Heapsort, Quicksort
Algorithm Design Paradigms
Divide and Conquer
Dynamic Programming
Greedy algorithm
Backtracking Search
Command-line skills (Unix or DOS)
Installing software, such as Python 3.11
Folder navigation, folder creation
Running programs from the command line; path syntax
Archiving and unarchiving files using zip and tar methods