Advanced Programming: Artificial Intelligence

Advanced Programming: Artificial Intelligence is an advanced course in computer science for those who have ample mathematical and programming experience.

The first two mods of the course survey 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, 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 the optional third mod, students apply their work and understanding from the previous mods to independent projects of their own design. Students can choose to dig deeper into AI or take this opportunity to pursue cross-disciplinary work. Examples of such work include: image analysis and creation with the arts, textual analysis of historical documents, applying AI to issues in social justice, and data mining of scientific, athletic, and/or medical (or other) datasets. Additional topics will be taught as needed to support student work.

Min-Max Credit Hours: 2.0-3.0