CS383: Artificial Intelligence

Instructor: William Hunter McNichols

Lectures: Tuesday/Thursday 11:30am-12:45pm

Location: SOM 137

Course Description

The field of Artificial Intelligence (AI) has been the birthplace for many revolutionary industry trends over the last couple decades. Tech startups and large technology companies alike are constantly using new techniques from this field in order to create more sophisticated software and products. As this trend continues it is becoming increasingly important for computer scientists to understand the fundamentals of AI and the techniques that have spawned from it.

This course aims to give students a high-level understanding of the prominent AI topics that are being employed in industry today. It will provide an introduction to each topic, an overview of its supporting algorithms, and examples of products powered by the technology. Particular emphasis will be had on Machine Learning and developing hands-on practical skills with this technology. Upon completion of this course, students will obtain a wider scope of understanding about modern AI trends in software technology and develop an intuition for how this software works.

Prerequisite Courses/Knowledge

Students will need a fundamental understanding of data structures and programming fundamentals. Graph and tree data structures will be used in particular. Programming assignments in this class will be done using Python. Strong programming background in at least one programming language is required and it’s strongly recommended you have some Python experience before starting.

A mathematical foundation in statistics is expected through completion of COMPSCI 240, although we will review key concepts as needed. Knowledge of linear algebra and multi-variable calculus is not strictly necessary but will deepen understanding of course material.

Course Objectives & Learning Outcomes

Upon completion of this course, students will have a foundational understanding of AI and an understanding of modern technologies that have spawned from this field. They will understand a wide range of topics that are under the umbrella category of AI and develop an intuition about the inner-workings of these topics.

To develop a deep fundamental understanding of these techniques students will be able to demonstrate a working knowledge of a handful of key algorithms. Examples include (but are not limited to), search algorithms (BFS, DFS, A*, Minimax); machine learning regression and classification algorithms (SVM, KNN); and neural network training algorithms (Perceptrons, Backpropagation).

Students will also gain hands-on experience in implementing these concepts in a programming language to build ‘intelligent’ software. With both theoretical and practical exposure to these wide-ranging concepts, students will be informed and knowledgeable about how to further deepen their skills and knowledge of Artificial Intelligence.

Textbooks/Materials/Resources

The following textbook is not required, but a helpful resource for deepening the understanding of in-class lectures and for continued learning on the subject matter. Either the 4th or 3rd edition of the book is sufficient: