The Introduction to Artificial Intelligence course introduces students to the concepts and algorithms at the foundation of modern artificial intelligence. Artificial intelligence systems are impacting our daily lives more everyday. This course gives students
a solid foundation to build upon by diving into the ideas that give rise to technologies like game-playing engines, machine translation, and handwriting recognition. Students will learn how to identify various types of artificial intelligence systems
and even build their own.
This course provides students with all the essential knowledge and skills needed to begin a future in the artificial intelligence workforce. Through hands-on projects, students gain exposure to the theory behind graph search algorithms, classification,
optimization, reinforcement learning, and other topics in artificial intelligence and machine learning as they build their own Python programs. By the end of this course students will have experience using machine learning libraries as well as knowledge
of artificial intelligence principles that enable them to design intelligent systems of their own.
Since this is an advanced course, it is highly recommended that students have experience programming in Python. Students should have taken the Introduction to Computer Science course, Computer Science Principles course, or an equivalent course. We won't
cover the fundamentals of Python as we will need to spend time working with artificial intelligence specific algorithms and libraries.
University of California A-G approved for [C] Mathematics credits.
Course Outline
show details
hide details
-
Introduction to Artificial Intelligence
Artificial Intelligence (AI) is transforming how we live, work, and play. We will define AI and show students how it is used and the social and ethical impacts on society. It is helpful to leverage the environment where a problem exists, such as a game board or understanding road markers. In this unit students will learn what defines Artificial Intelligence, how it is used, possible future uses, and the social and ethical implications of its use in society.
-
Search
Search problems involve an agent that is given an initial state and a goal state, and it returns a solution of how to get from the former to the latter. A navigator app uses a typical search process, where the agent (the thinking part of the program) receives as input your current location and your desired destination, and, based on a search algorithm, returns a suggested path. However, there are many other forms of search problems, like puzzles or mazes. In this unit students will learn about the types of search problems and the algorithms to solve them.
-
Knowledge
Humans reason based on existing knowledge and draw conclusions. The concept of representing knowledge and drawing conclusions from it is also used in AI. Achieving this behavior with computation is a key goal of AI. People know information and facts of the world. How we reason about that information determines the conclusions that we come to. Students will explore the algorithms and techniques that programs can use information to find a solution.
-
Uncertainty
Every minute there are new data sources created and vast oceans of data generated. Despite all of that data we only have a partial knowledge of the world, leaving space for uncertainty. We will never be able to predict with 100% certainty or perform with perfect accuracy. How we manage that uncertainty often determines the quality of our AI driven programs. Students will learn about methods and tools to help AI make optimal decisions given limited information and uncertainty.
-
Optimization
When we have multiple options to solve a problem we have to look towards optimization, or choosing the best option, to make sure that our program works. Students have already encountered problems where they tried to find the best possible option, such as in the minimax algorithm, and in this unit they will learn about tools they can use to solve an even broader range of problems. Students will explore various search algorithms and learn about what situations are optimal to deploy each algorithm.
-
Learning
Machine learning (ML) is the process where we give the computer access to information in the data and let the computer figure out what the patterns are so that it can perform the task on its own. Machine learning comes in a number of different forms and it's a very wide field. Students will explore ML algorithms like supervised learning, nearest-neighbor classification, perceptron learning, reinforcement learning, and neural networks. Their end goal is to build an AI to be able to figure out some function that maps inputs to outputs.
-
Neural Networks
AI neural networks are inspired by neuroscience. In the brain, neurons are cells that are connected to each other, forming networks. Each neuron is capable of both receiving and sending electrical signals. Once the electrical input that a neuron receives crosses some threshold, the neuron activates, thus sending its electrical signal forward. An Artificial Neural Network is a mathematical model for learning inspired by biological neural networks. Artificial neural networks model mathematical functions that map inputs to outputs based on the structure and parameters of the network. In artificial neural networks, the structure of the network is shaped through training on data. In this unit students will learn about neural networks and create their own training models.
-
Language
One of the toughest goals for AI is to understand and generate human language. Up to this point we have had clear criteria and constraints for our AI to work within and well structured data. To understand language we need to create algorithms to understand, interpret and get some sort of meaning out of language. We will discuss the various components of natural language processing and examples like language identification, text classification, and machine translation. Students will combine a structural breakdown of the English language with all the concepts they have learned to tackle this difficult problem.
Summer of Code
see detailed summer schedule
To take any of our courses, students must be familiar with opening a browser, navigating to a website, and joining a Zoom meeting.
Students must have a quiet place to study and participate in the class for the duration of the class. Some students may prefer a headset to isolate any background noise and help them focus in class.
Most course lectures and content may be viewed on mobile devices but programming assignments and certain quizzes require a desktop or laptop computer.
Students are required to have their camera on at all times during the class, unless they have an explicit exception approved by their parent or legal guardian.
Our technology requirements are similar to that of most Online classes.
|
A desktop or laptop computer running Windows (PC), Mac OS (Mac), or Chrome OS (Chromebook).
|
|
Students must be able to run a Zoom Client. |
|
A working microphone, speaker, webcam, and an external mouse. |
|
A high-speed internet connection with at least 15mbps download speed (check your Internet speed). |
This course includes several timed tests where you will be asked to complete a given number of questions within a 1-3 hour time limit. These tests are designed to keep you competitively prepared but you can take them as often as you like. We do not proctor
these exams, neither do we require that you install special lockdown browser.
In today's environment, when students have access to multiple devices, most attempts to avoid cheating in online exams are symbolic. Our exams are meant to encourage you to learn and push yourself using an honor system.
We do assign a grade at the end of the year based on a number of criteria which includes class participation, completion of assignments, and performance in the tests. We do not reveal the exact formula to minimize students' incentive to optimize for a
higher grade.
We believe that your grade in the course should reflect how well you have learnt the skills, and a couple of timed-tests, while traditional, aren't the best way to evaluate your learning.