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:
      • 📖 Reading list
  • 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
  • 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
  • Wed, Feb 19 Lecture: Semantic networks and what is in a link
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
  • Wed, Apr 09 Lecture: Definite clause grammars
    • Topics:
      • DCGs
      • Prolog I assigned
    • Preparation:
      • 📖 DCGs notes
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:
      • 📖 Minimax notes
  • 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:
      • 📖 Tabling notes
Apr-28 - May-04
  • Assignments:
  • Mon, Apr 28 Lecture: ASP and ASP Chef
    • Topics:
      • Answer set programming
      • Using ASP Chef
    • Preparation:
      • 📖 ASP notes
    • 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