3.1: Logic Programming
Read this article on logic programming. Make sure you understand the differences between abductive logic, metalogic, constraint logic, concurrent logic, and inductive logic, higher-order logic, and linear logic programming.
Watch the first lecture on logic and compare it to the reading above. In this lecture, you will learn about the syntax and semantics of propositional logic, boolean functions, satisfiability, and binary decision trees. You will need to know the difference between conjunctive and disjunctive normal forms. Then, watch the second lecture to learn about first-order logic. Finally, watch the third lecture, which presents modal logic. Make sure you know the differences between propositional, first-order, and modal logic.