Jan-13 - Jan-19
- Assignments:
- Wed, Jan 15 Lecture: Class cancelled (out of town)
Jan-20 - Jan-26
- Assignments:
- Mon, Jan 20 Lecture: Course organization, topics, and structure
- Topics:
- Broad framing of AI beyond only contemporary LLMs
- Course objectives: theoretical, practical, research, and programming
- Major themes: Azure, ConceptNet, logic programming, SAT/SMT
- Preparation:
-
📖
Course organization notes
- Extra Resources:
- Wed, Jan 22 Lecture: Pre-history of artificial intelligence
- Topics:
- Origins of AI in automated mathematics, theorem proving, and related early work
- Preparation:
-
📖
History and present state of Artificial Intelligence
Jan-27 - Feb-02
- Assignments:
- Mon, Jan 27 Lecture: AI from the 1940s to the 1980s: the strands together
- Topics:
- Early developments and foundational systems
- How separate research strands began to converge
- Preparation:
-
📖
Early developments and highlights
- Wed, Jan 29 Lecture: Expert systems and AI winters
- Topics:
- Expert systems
- The AI winters of the 1980s and 1990s
- Preparation:
-
📖
Expert systems and winters notes
Feb-03 - Feb-09
- Assignments:
- Student paper presentation assignment: Assigned on Mon, Feb 03
- Mon, Feb 03 Lecture: Student presentation assignment
- Topics:
- Classic AI paper selection
- Presentation expectations
- Preparation:
- Wed, Feb 05 Lecture: Introduction to miniKanren
- Topics:
- Core miniKanren ideas and first relational programming examples
- Running relations and understanding simple goals
Feb-10 - Feb-16
- Assignments:
- Azure pre-learning modules: Assigned on Mon, Feb 10
- miniKanren I: Assigned on Wed, Feb 12
- Presentation evaluation: Assigned on Wed, Feb 12
- Mon, Feb 10 Lecture: Predicate Logic as a Programming Language; declarative arithmetic
- Topics:
- Instructor example paper presentation on Kowalski
- Predicate logic as a programming language
- Declarative arithmetic
- Preparation:
- Wed, Feb 12 Lecture: Licklider papers and communication with computers
- Topics:
- Man-Computer Symbiosis / The Computer as a Communication Device
- Joseph presentation
- miniKanren I assigned and peer evaluations introduced
- Preparation:
Feb-17 - Feb-23
- Assignments:
- Presentation evaluation: Assigned on Mon, Feb 17
- Presentation evaluation: Assigned on Wed, Feb 19
- Mon, Feb 17 Lecture: General Problem-Solving Program
- Topics:
- Chris presentation on Newell, Shaw, and Simon
- Search and problem solving in early AI
- Preparation:
- Wed, Feb 19 Lecture: Semantic networks and what is in a link
- Topics:
- Jonathan presentation on Woods
- Foundations for semantic networks
- miniKanren I due
- Preparation:
Feb-24 - Mar-02
- Assignments:
- Presentation evaluation: Assigned on Mon, Feb 24
- Mon, Feb 24 Lecture: Theorem proving and the resolution principle
- Topics:
- Brysen presentation on Robinson papers
- Automated theorem proving
- Resolution principle
- Preparation:
-
📖
Theorem Proving on a Computer / A Machine-oriented Logic Based on the Resolution Principle
- Wed, Feb 26 Lecture: Languages and grammars
- Topics:
- Languages, grammars, and formal structure
Mar-03 - Mar-09
- Assignments:
- Mon, Mar 03 Lecture: No class (Spring Break)
- Wed, Mar 05 Lecture: No class (Spring Break)
Mar-10 - Mar-16
- Assignments:
- miniKanren II / Dyck languages: Assigned on Mon, Mar 10
- Final Project: Assigned on Wed, Mar 12
- Mon, Mar 10 Lecture: Pattern matching and functions over syntax
- Topics:
- Match patterns
- BNF grammar and evaluation-semantics rules
- Functions over programming-language syntax
- Wed, Mar 12 Lecture: Final project announcement and in-class description
- Topics:
- Full project description explained in class
- System integration expectations
Mar-17 - Mar-23
- Assignments:
- Mon, Mar 17 Lecture: Functional evaluators
- Topics:
- Evaluation as interpretation
- Building evaluators over syntax
- Wed, Mar 19 Lecture: Program synthesis techniques
- Topics:
- Synthesis ideas from relational and logic programming
Mar-24 - Mar-30
- Assignments:
- Mon, Mar 24 Lecture: microKanren small-step semantics
- Topics:
- Student presentation on microKanren evaluation semantics
- Operational behavior of the core language
- Wed, Mar 26 Lecture: Program staging
- Topics:
- Functional program staging
- Improvements obtained by staging
Mar-31 - Apr-06
- Assignments:
- Mon, Mar 31 Lecture: Staging relational interpreters
- Topics:
- Staged miniKanren
- Relational interpreters under staging
- Preparation:
-
📖
Staging relational interpreters
- Wed, Apr 02 Lecture: Neural networks, learning, and backpropagation
- Topics:
- Feed-forward neural networks
- Learning and backpropagation
Apr-07 - Apr-13
- Assignments:
- Mon, Apr 07 Lecture: Prolog introduction
- Topics:
- Prolog basics
- Related Power of Prolog videos
- Preparation:
- Extra Resources:
- Wed, Apr 09 Lecture: Definite clause grammars
Apr-14 - Apr-20
- Assignments:
- Prolog Assignment 1: Assigned on Wed, Apr 16
- Mon, Apr 14 Lecture: Minimax and alpha-beta pruning
- Topics:
- Game-tree search
- Alpha-beta pruning
- Preparation:
- Wed, Apr 16 Lecture: Declarative debugging, voice cloning, and TTS
- Topics:
- Declarative debugging techniques
- Voice cloning and text-to-speech
- Prolog I due
Apr-21 - Apr-27
- Assignments:
- Mon, Apr 21 Lecture: No class (Easter)
- Wed, Apr 23 Lecture: Levenshtein distance, tabling, indexing, and dif/2
- Topics:
- Levenshtein distance
- Tabling and indexing
- Using dif/2
- Preparation:
Apr-28 - May-04
- Assignments:
- Mon, Apr 28 Lecture: ASP and ASP Chef
- Topics:
- Answer set programming
- Using ASP Chef
- Preparation:
- Extra Resources:
- Wed, Apr 30 Lecture: Final project presentations
- Topics:
- Final project presentations
- Final project due
May-05 - May-11
- Assignments:
- Mon, May 05 Lecture: Final project presentations
- Topics:
- Continuation of final project presentations