Please enable JavaScript to use CodeHS

Introduction to Artificial Intelligence (2021)

Description

Through examples, students are introduced to the field of Artificial Intelligence. Students explore the definition of intelligence and determine if programs are capable of thinking intelligently.

Objective

Students will be able to:

  • Define Artificial Intelligence
  • Explain what makes a program intelligent
Description

In this lesson, students learn about the different subsets of Artificial Intelligence.

Objective

Students will be able to:

  • Define different types of Artificial Intelligence programs.
  • Describe and differentiate machine learning algorithms.
Description

In this lesson, students discuss important ethical issues related to the development of Artificial Intelligence, and debate the necessity of Artificial Intelligence in modern society.

Objective

Students will be able to:

  • Articulate their position on ethical issues in AI.
  • Explain the dangers of biased data.
Description

In this lesson, students research an ethical issue that currently impacts the field of Artificial Intelligence. Students will create a presentation that outlines the different arguments tied to this ethical issue, and take a stance of their own.

Objective

Students will be able to:

  • Articulate in depth about an ethical issue in Artificial Intelligence
  • Take an educated stance on an ethical issue in Artificial Intelligence
Description

In this lesson, students learn how Artificial Intelligence is used to enhance gaming systems.

Objective

Students will be able to:

  • Explain how Artificial Intelligence is used in gaming
  • Identify initial and transition states in a Finite State Machine
  • Explain how search trees are used to improve gameplay
Description

In this lesson, students will build a working Tic Tac Toe game. Students may also learn new concepts in Python depending on their previous skill level.

Objective

Students will be able to:

  • Create a working Tic Tac Toe game
  • Use 2D arrays, Lists, Iteration, and Boolean Expressions in a program
Description

In this lesson, students will develop a random non-player character (NPC) to play against a user. Students will also evaluate the quality of their NPC, and whether it’s suitable for use in gameplay.

Objective

Students will be able to:

  • Create a random NPC
  • Evaluate the quality of their NPC
Description

In this lesson, students will learn how search trees are used to improve the quality of non-player characters. Students also learn the role that recursion plays in implementing search trees, and how they can implement recursion in their own programs.

Objective

Students will be able to:

  • Define recursive functions
  • Identify the base and recursive case in a recursive function
  • Articulate the role recursion plays in search trees
Description

In this lesson, students will learn how to implement minimax, a search tree algorithm used to create realistic non-player characters, in their own Tic Tac Toe game.

Objective

Students will be able to:

  • Define minimax
  • Identify the base and recursive case in the minimax algorithm
  • Implement minimax in a working program
Description

In this lesson, students learn how to limit the depth and breadth of their minimax algorithm, making the non-player character more realistic. Students will evaluate the pros and cons of implementing these changes, and how they can be used in other searching contexts.

Objective

Students will be able to:

  • Define alpha-beta pruning
  • Implement alpha-beta pruning and depth into minimax algorithms
  • Articulate the importance of implementing alpha-beta pruning on search efficiency
Description

In this lesson, students will implement minimax from scratch without guidance. Students will take an existing game and improve it by adding the minimax function and create a game of their own.

Objective

Students will be able to:

  • Implement minimax
  • Create a working game using minimax
Description

In this lesson, students expand their understanding of the natural language processing subset of AI and learn about the different types of chatbots. Students are introduced to the Turing test and use this to evaluate the quality of popular chatbots.

Objective

Students will be able to:

  • Identify the different types of chatbots
  • Explain the meaning of the Turing test and evaluate if a chatbot passes the Turing test
Description

In this lesson, students explore rule-based chatbots by programming their own!

Objective

Students will be able to:

  • Apply multiple programming structures to create a rule-based chatbot
  • Evaluate the benefits and limitations of rule-based chatbots
Description

In this lesson, students explore pattern-matching chatbots. Students interact with an example, and then they apply their programming skills to write a pattern-matching chatbot that helps troubleshoot common computer problems.

Objective

Students will be able to:

  • Evaluate the benefits and limitations of pattern-matching chatbots.
  • Apply their programming knowledge to create a pattern-matching chatbot.
Description

In this lesson, students learn how chatbots use sentiment values. Students also learn how to import files into their program and how to manipulate the data so that it can be used in their program.

Objective

Students will be able to:

  • Explain how chatbots use sentiment values to increase their effectiveness.
  • Import data files into their programs.
  • Manipulate the data so that it can be accessed and used in their programs.
  • Use dictionaries to store key, value sentiment pairs.
Description

In this lesson, students learn how AI-powered chatbots work. Students use the chatterbox library to create their own AI-powered chatbot programs.

Objective

Students will be able to:

  • Explain how an AI-powered chatbot works.
  • Create an AI-powered chatbot by using the chatterbox library.
Description

In this lesson, students synthesize all they have learned about chatbots by making their own AI-powered informational chatbot. Students brainstorm their chatbot type, write their program, and go through a user-testing phase before developing their final product.

Objective

Students will be able to:

  • Apply their programming knowledge to create an informational AI-powered chatbot from scratch.
  • Apply user sentiment to an AI-powered informational chatbot.
  • Use user testing to enhance and fine tune their chatbots.
Description

Students will get an introduction to how linear regression is used to create a predictive model, used in Machine Learning supervised learning. They will explore an example of data from which a linear regression model can be made.

Objective

Students will be able to:

  • Explain how linear regression models can be used to predict or estimate an outcome
  • Approximate a linear regression model by hand and assess its accuracy
Description

Before developing a linear regression model, it must be determined that a dataset has a linear correlation. In this lesson, students examine the correlation between two variables in a dataset. After computing the correlation coefficient, students determine if the variables have positive, negative, or no correlation. To ensure that their models provide meaningful findings, students also determine the causation of the correlated data and if the relationship is non-spurious.

Objective

Students will be able to:

  • Determine the strength of the relationship between two variables based on the value of their correlation coefficient
  • Determine if a dataset has a linear correlation
  • Indicate the causation of two variables
Description

In this lesson, students develop a linear regression model using the LinearRegression module from Sklearn, a Python machine learning library.

Objective

Students will be able to:

  • Create a linear regression model using Sklearn’s LinearRegression module
  • Determine the correlation coefficient and line of best fit using the linear regression model
  • Make a scatter plot to visualize data in a dataset and display the calculated line of best fit
Description

In this lesson, students dig deeper into how to create a more effective linear regression model by fitting a model using training data and using the remaining data as testing data. By dividing the data into training and testing subsets, students create a model that doesn’t overfit the training data and can make correct predictions when given new data.

Objective

Students will be able to:

  • Split a dataset into training and test data sets
  • Fit a linear regression model using training data
  • Evaluate the performance of a linear regression model using testing data
Description

In this lesson, students develop a multivariable linear regression model, a linear regression model that determines the relationship between multiple independent variables. Rather than calculating the exact correlation coefficient for each variable, students use an optimizing algorithm called gradient descent to compute an approximation.

Objective

Students will be able to:

  • Create a multivariable linear regression model using Sklearn’s LinearRegression module
  • Determine approximate correlation coefficients using gradient descent
Description

In this lesson, students develop a logistic regression model, using Sklearn’s LogisticRegression module, to solve classification problems. Machine learning classification problems identify two or more categories under which data in a data set fall.

Objective

Students will be able to:

  • Identify a classification problem
  • Create a logistic regression model using Sklearn’s LogisticRegression module
  • Convert qualitative data into binary data, as required by the logistic regression model
  • Scale data to normalize the range between different variables in a dataset
  • Use conditional statements to label binary data values
Description

In this lesson, students learn about unsupervised learning and clustering. More specifically, students use centroid clustering, a type of clustering that determines the similarity of data points based on their closeness to the centroid, or center, of a cluster.

Objective

Students will be able to:

  • Differentiate between supervised and unsupervised learning
  • Explain the k-means algorithm
  • Perform centroid clustering using Sklearn’s KMeans algorithm
Description

Throughout this module, students learned how to program both supervised and unsupervised learning models. In this final project, students choose from a provided list of datasets and develop a chosen machine learning model. At the end of the project, students present their findings and assess the accuracy of their model.

Objective

Students will be able to:

  • Choose a dataset for their project
  • Determine which machine learning model is best to use on their dataset
  • Implement their chosen machine learning model and fit it to their dataset
  • Analyze and present the results their model produces
  • Assess the accuracy of a machine learning model