Advanced Programming: Artificial Intelligence

Introduction to Artificial Intelligence is an advanced course in computer science for those who have ample mathematical and programming experience. This course surveys some of the common methodologies in artificial intelligence through project work and discussion of algorithms and theory. Students in this class implement computer programs that apply artificial intelligence techniques such as genetic algorithms, neural networks, decision trees and random forests, and others as time or interest warrants. The goal is to not merely use the various algorithms being discussed, but to understand how they work so that improvements to them can be proposed and evaluated. Extensive programming proficiency is required.

Furthermore, discussion of the ethics and the responsible use of these systems is an integral part of the course. Topics to consider include: algorithmic biases, artificial intelligence vs. artificial consciousness, exploring how AI are developed differently in cultures and the ramifications of those differences.

A significant portion of the course is devoted to the understanding of formal logic. Topics include: natural language representation, syntax and semantics, truth tables, resolution, inference, propositional (sentential) logic, first-order (predicate) logic, and ontology construction. Reasoning about uncertain knowledge could be included pending time.

In addition, artificial intelligence’s applicability to various fields is explored in projects. Opportunities for cross-disciplinary work with the arts, historical documents, and scientific, athletic, and medical data are available.

Open to: Juniors and seniors