“It’s part of the history of the field of artificial intelligence that every time somebody figured out how to make a computer do something—play good checkers, solve simple but relatively informal problems—there was a chorus of critics to say,”that’s not thinking“… Practical AI successes, computational programs that actually achieved intelligent behavior, were soon assimilated into whatever application domain they were found to be useful in, and became silent partners alongside other problem-solving approaches, which left AI researchers to deal only with the”failures," the tough nuts that couldn’t yet be cracked." (McCorduck 2004)

This course surveys the field of artificial intelligence and its two main threads: symbolic/knowledge-based and statistical/machine-learning approaches. We will pay special attention to how AI systems reflect and reify not just the knowledge of their creators, but also their values and implicit biases. In recent years we have seen a proliferation of AI systems that filter news feeds, hyper-target advertisements, act as personal assistants, determine apartment rental rates, and even attempt to identify suspected terrorists or decide parole terms and sentencing. Whenever we build an AI system, we choose how to represent the world and the problem we want to solve, and this decision must consider ethics as much as the performance of the resulting algorithm. On the positive side, if AI systems can encode values, then we can also use them to creative or socially beneficial ends! AI systems can generate novel stories and works of art, provide compelling opponents in games, and personalize education for individual learners.

This course will engage with active research in deep learning, computational creativity, video game AI, natural language understanding, and the ethics of AI. Students will learn the core principles of AI with worked examples, writing programs in Prolog and Python to apply the techniques shown in lectures and readings. We will also critically analyze commercial and research AI projects to understand how they function (building smaller versions on the way), the extent to which they are successful at their stated aims, how they fit into the history of AI, and what they say about their creators and society at large.

Objective

Students will finish the course with an appreciation of the ethical, social, and historical aspects of artificial intelligence, as well as concrete experience building small AI systems in two radically different programming environments. Automated algorithmic decision-making is only becoming more pervasive, and this course should prepare students to observe, critique, create, and (potentially) counteract such systems.

Format

Each day’s lecture will be broken up into three main topics. The morning schedule will generally follow this pattern:

Each day will have a reading along with a programming assignment. There will also be a final project comprising either a larger AI programming project or a research paper deeply or broadly exploring some AI system(s), topic(s), or technique(s). This final project may be tackled alone or in a group of no more than 3 students.

Coursework will be submitted via GitHub, and on the first day we will ensure that all students have an account with the service. An understanding of version control is vital for working on software projects in teams, and this will also give us a persistent record of project work suitable for use in portfolios or to share with family and friends.

Topics

This course will move very quickly. Each week we will consider four or five topics. Each topic stands as a milestone in a particular tradition, and most remain active research areas—in fact, each would justify a three-week course on its own!

Project ideas

References

McCorduck, Pamela. 2004. Machines Who Think: A Personal Inquiry into the History and Prospects of Artificial Intelligence. AK Peters Ltd.