Please enable JavaScript to use CodeHS

Oklahoma Advanced Programming

Description

We learn about some of the applications of computer programs.

Objective

Students understand why programming is a useful skill, and can explain ways in which programs are being used today. Students will be able to analyze the positive and negative effects of programs and communicate their findings to their classmates.

Description

In this lesson, students will learn how to print messages out onto the console using the Python command print.

Objective

Students will be able to:

  • Write a Python program by typing commands with proper syntax
  • Write a program that prints out a message to the user
Description

In this lesson, students learn how to assign values to variables, manipulate those variable values, and use them in program statements. This is the introductory lesson into how data can be stored in variables.

Objective

Students will be able to:

  • Explain what variables are and what they are used for
  • Use the different types of variables in Python
  • Distinguish between declaring, initializing and assigning variables
  • Create their own variables with proper naming conventions
  • Print out the values stored in variables
Description

In this lesson, students learn how they can allow users to input information into their programs, and use that input accordingly.

Objective

Students will be able to:

  • Create programs that ask the user for input
  • Store user input in variables and print it back to the user
  • Choose the proper input function to use depending on the type of information needed
Description

In this lesson, students learn about the different mathematical operators they can use to perform mathematical computations and create useful programs that compute information for the user.

Objective

Students will be able to:

  • Describe the different mathematical operators we can use in programs
  • Create programs that use basic math to compute useful things
  • Create programs that take in user input, do simple computations with the input, and produce useful output
Description

In this lesson, students will learn the basics of creating graphics objects. Graphic creation relies on setting the type, shape, size, position, and color on the artist’s canvas before adding to the screen. Using geometric concepts, multiple graphic objects can be created in Python.

Objective

Students will be able to:

  • Create graphical Python programs that draw shapes on the canvas
  • Locate points on the graphics canvas using (x, y) coordinates
Description

In this lesson, students are introduced to a way input can be taken from the user’s mouse using the mouse clicked method.

Objective

Students will be able to:

  • Describe how events are different than timers
  • Use mouse click events to create programs that respond to user clicks
Description

In this lesson, students review content with a 15 question Unit Quiz.

Objective

Students will be able to:

  • Prove their knowledge of basic coding concepts through a multiple choice quiz
Description

In this lesson, students will learn more about boolean values. Booleans refer to a value that is either true or false, and are used to test whether a specific condition is true or false.

Objective

Students will be able to:

  • Create boolean variables to represent meaningful yes/no values
  • Print out the value of a boolean variable

Enduring Understandings

This lesson builds toward the following Enduring Understandings (EUs) and Learning Objectives (LOs). Students should understand that…

  • EU 4.1 Algorithms are precise sequences of instructions for processes that can be executed by a computer and are implemented using programming languages. (LO 4.1.1)
  • EU 5.5 Programming uses mathematical and logical concepts. (LO 5.5.1)
Description

In this lesson, students will learn about logical operators. Logical operators allow students to connect or modify Boolean expressions. Three logical operators are and, or, and not.

Objective

Students will be able to:

  • Describe the meaning and usage of each logical operator: or, and, and not.
  • Construct logical statements using boolean variables and logical operators
Description

In this lesson, students learn how to use comparison operators. Comparison operators let students compare two values.

Objective

Students will be able to:

  • Explain the meaning of each of the comparison operators (<, <=, >, >=, ==, !=)
  • Create programs using the comparison operators to compare values
  • Predict the boolean result of comparing two values
  • Print out the boolean result of comparing values
Description

In this lesson, students learn about if statements as a way to make decisions and execute specific code depending on the validity of a condition.

Objective

Students will be able to:

  • Explain the purpose of if statements
  • Create their own if statements to selective choose which code is executed in their programs
Description

In this lesson, students will learn in greater detail about for loops. For loops in Python are written and executed in the same manner as Karel exercises, except now students will explore modifying the initialization statement, test statement, and increment statements of the loops.

Objective

Students will be able to:

  • Create for loops in Python
  • Explain the purpose of for loops
  • Utilize for loops to avoid typing out repeated code
  • Use the loop counter i inside the for loop code to do something different on each iteration
Description

In this lesson, students will explore in more detail how they can modify the initialization statement, test statement, and increment statement in a for loop.

Objective

Students will be able to:

  • Explain the different parameters of the range function (starting value, ending value, and incrementer)
  • Create for loops that iterate differently than the basic for loop structure (ie count by twos or count backwards)
Description

In this lesson, students will learn how to create for loops to solve increasingly challenging problems by using nested for loops and branching control structures.

Objective

Students will be able to:

  • Explain the purpose of for loops
  • Create for loops to solve increasingly challenging problems
  • Create nested for loops
Description

In this lesson, students will learn how random numbers can enhance a program and be used in combination with various control structures.

Objective

Students will be able to:

  • Explain why random numbers are a useful part of computer programs
  • Create random values in a program
  • Utilize the DOCS for the Random Numbers function in order to learn how to generate random values
Description

In this lesson, students will explore while loops and Python variables. This combines the ideas of creating variables, updating variables throughout a loop, and determining the correct ending condition.

Objective

Students will be able to:

  • Explain the purpose of a while loop
  • Create while loops to repeat code while a condition is true
  • Utilize while loops to solve new types of problems
Description

In this lesson, students review content with a 15 question Unit Quiz.

Objective

Students will be able to:

  • Prove their knowledge of control structures through a multiple choice quiz
Description

In this lesson, students learn about functions and parameters in the context of Python which builds on their prior knowledge of working with functions in Karel. This lesson focuses specifically on defining and calling functions, and passing simple, single parameters to functions.

Objective

Students will be able to:

  • Explain the purpose of functions
  • Define their own Python functions
  • Utilize (call) their Python functions to solve simple problems
  • Define and call functions that take in parameters as input
Description

In this lesson, students will work with and will define and call their own functions that take in multiple parameters as input and print out output.

Objective

Students will be able to:

  • Explain the purpose of functions
  • Define their own Python functions
  • Utilize (call) their Python functions to solve simple problems
  • Define functions that take in multiple parameters as input, and use print statements for output
Description

In this lesson, students continue working with multiple parameters that create graphics as output which is very useful, since creating several different graphical objects involves writing the same code over and over again (set the size, set the color, set the location, etc).

Objective

Students will be able to:

  • Explain the purpose of functions
  • Define their own Python functions
  • Utilize (call) their Python functions to simplify their graphics programs
  • Identify repeated code that can be simplified with functions and parameters
  • Define functions that take in multiple parameters as input, and create graphics as output
  • Pass parameters of the correct number and type to their defined Python functions
Description

In this lesson, students learn about return values so they can write functions that do some work and send the result back or use later in the program.

Objective

Students will be able to:

  • Explain the purpose of returning a value from a function.
  • Define functions that return values.
  • Create programs that define and call functions with return values and store the result for later use.
Description

In this lesson, students work with and define functions with return values and more than one parameter.

Objective

Students will be able to…

  • Explain the purpose of returning a value from a function.
  • Create functions that return values.
  • Create programs that call functions with return values and use the return values to solve a higher-order problem.
Description

In this lesson we explore the scoping of a variable, which is where the variable is “defined” or where it exists.

Objective

Students will be able to:

  • Identify the scope of a variable
  • Identify which variables are in scope at a given point in a program
Description

In this lesson, students explore Python’s way of handling errors with exceptions.

Objective

Students will be able to:

  • create programs that can gracefully handle exceptions
  • continue to function when an error is raised
Description

This lesson is a summative assessment of the unit’s learning objectives.

Objective

Assess student achievement of the learning goals of the unit

Description

Students will learn how indexing can be used to specify a specific character in a string based on location.

Objective

Students will be able to:

  • use indexing in order to find a specific character in a string
Description

Students will learn how slicing allows them to select multiple string values at once from a given string.

Objective

Students will be able to:

  • use slicing to select a set of values from a string
Description

In Python, strings have the property of “immutability” which means they cannot be mutated or changed. You can assign strings to variables, and reassign new strings to the same variable, but individual characters within a string cannot be reassigned.

Objective

Students will be able to:

  • explain what immutability is and how this applies to strings in Python
Description

In this lesson, students will look at the use of for loops with strings. Since both string indices and for loops index at zero, the len value can be used to go through strings in a for loop. Indicies don’t need to be explicitly used. The syntax for character in my_string can be used to go through a for loop one character at a time.

Objective

Students will be able to:

  • iterate over characters in a string using for loops
Description

In this lesson, students will see how the in keyword can be used in an if statement to see if a particular letter or substring is in a string.

Objective

Students will be able to:

  • use the in keyword to check if a character is in a string
Description

In this lesson, students will learn about string methods. Methods are basically functions that you call on objects and can be used to alter our strings in different ways.

Objective

Students will be able to:

  • use various string methods to alter string values
Description

In this lesson, students review content with a 20 question Unit Quiz.

Objective

Students will be able to:

  • Prove their knowledge of strings through a multiple choice quiz
Description
  • A tuple is a heterogenous, immutable data type that stores an ordered sequence of things.
  • Heterogenous means that a single tuple can store different types
  • You can access pieces of a tuple using indices
  • You can find the length of a tuple using len
  • You can concatenate tuples with other tuples
Objective

Students will be able to:
* Create and store information in tuples.
* Explain the characteristics of a tuple.

Description
  • A list is a mutable, heterogenous data type that stores an ordered sequence of things.
  • You can convert lists to strings, and strings to lists.
  • You can iterate over lists like you can with strings.
  • A tuple can be stored as one thing in a list.
  • A list can be stored as one thing in a tuple.
Objective

Students will be able to:
* Understand and explain the characteristics of a list.
* Use lists to store and recall information.

Description
  • A list is a mutable, heterogenous data type that stores an ordered sequence of things.
  • You can convert lists to strings, and strings to lists.
  • You can iterate over lists like you can with strings.
  • A tuple can be stored as one thing in a list.
  • A list can be stored as one thing in a tuple.
Objective

Students will be able to:
* Understand and explain the characteristics of a list.
* Use for loops to go through items in a list.

Description
  • Methods are like functions that you call on objects
  • List Methods can be called on lists
Objective

Students will be able to:
* Apply useful list methods to alter and access information about a list.

Description

We learn what simulations are, how they are used, and we simulate gravity and Conway’s Game of Life.

Objective

Students will be able to:
* Explain how simulations can be used to simulate real-life events.
* Create a basic computer science simulation

Description

In this lesson, students will see how dictionaries differ from other data structures and why they are useful.

Objective

Students will be able to:

  • Use dictionaries to structure data
Description

SWBAT complete a 15 question unit quiz.

Objective

SWBAT complete Unit Quiz.

Description

How do computers store and manipulate information? In this lesson, students learn how computers abstract complicated information into manageable chunks that they can then store and manipulate.

Objective

Students will be able to:

  • explore and explain abstraction and the different ways that we can represent digital information.
Description

In this lesson, students will learn what a number system is, the difference between the decimal number system and the binary number system, and how to convert between decimal and binary.

Objective

Students will be able to:

  • Represent numbers in different number systems
  • Understand how to convert between the decimal and binary system
Description

In this lesson, students will learn what a number system is, the difference between the decimal number system and the binary number system, and how to convert between decimal and binary.

Objective

Students will be able to :

  • Understand the binary system
  • Encode various types of information using binary
Description

In this lesson, students will learn how computers break down images into concrete values that can be stored. Students will learn how images are represented digitally using pixels.

Objective

Students will be able to:

  • Understand how images can be encoded as data
Description

In this lesson, students will learn about the hexadecimal number system, and how it is useful in storing digital information. They will also learn how to convert numbers from the hexadecimal system to binary and vice versa.

Objective

Students will be able to:

  • Understand how to convert between the hexadecimal and binary system
Description

In this lesson, students will learn how the RGB encoding scheme allows us to encode colors as numeric data. It defines the amount of red, green and blue light in a pixel.

Objective

Students will be able to:

  • Encode colors
  • Encode color images as data
Description

In this lesson, students will learn how to include images in their programs and manipulate their pixels using WebImage. Students will learn how image filters manipulate stored pixel data.

Objective

Students will be able to:

  • Include images in their programs
  • Manipulate the stored pixel data arbitrarily
Description

In this lesson, students will learn how computers shrink digital information, to make storage of pictures, videos, and text more efficient.

Objective

Students will be able to:

  • have a basic understanding of how data can be compressed.
Description

In this lesson, students will what lossy compression is, the benefits and disadvantages of using this kind of compression, and where using lossy compression is appropriate.

Objective

Students will be able to:

  • understand different types of compressions, and the benefits and drawbacks to each.
Description

In this lesson, students learn how computers encrypt and decrypt information. Students learn the difference between asymmetric and symmetric encryption.

Objective

Students will be able to:

  • Explain what cryptography is and how it is used
  • Analyze an encryption and determine if it is weak or strong
  • Explain the difference between an easy and hard problem in computer science
  • Explain the difference between algorithms that run in a reasonable amount of time and those that do not run in a reasonable amount of time
  • Explain the difference between solvable and unsolvable problems in computer science
  • Explain the existence of undecidable problems in computer science
Description

This lesson is a summative assessment of the unit’s learning objectives.

Objective

Assess student achievement of the learning goals of the unit

Description

In this lesson, students will have a high-level discussion about what the internet is and how the internet works. The topics of anonymity and censorship will also be discussed.

Objective

Students will be able to:

  • Understand what the internet is
  • Understand how the internet works
  • Discuss the issue of anonymity
  • Understand the legal and ethical concerns surrounding internet censorship
Description

In this lesson, students will explore the hardware that makes up the internet and the characteristics of that hardware that define our experience on the internet.

Objective

Students will be able to:

  • Discuss and answer questions about the hardware that powers the internet
Description

In this lesson, students will explore how internet hardware communicates using Internet Addresses and the Internet Protocol.

Objective

Students will be able to:

  • Discuss the necessity of internet protocols
  • Recognize the hierarchy of elements in an IP address
Description

In this lesson, students learn what a URL is and what happens when they visit a URL.

Objective

Students will be able to:

  • Describe the process that occurs when typing in a URL, from sending a request and response over the Internet to viewing a webpage
Description

In this lesson, students will explore the DNS system and how it maps human readable domain names into actual accessible IP addresses.

Objective

Students will be able to:

  • Understand the DNS system and how it works
  • Recognize the DNS system as an abstraction
Description

In this lesson, students explore how messages get from one address on the internet to another.

Objective

Students will be able to:

  • Explain how computers communicate using routers
  • Explain what considerations are made when choosing a route
  • Discuss how routers are fault-tolerant because of redundancy
Description

In this lesson, students learn about the last piece of the puzzle for how the Internet works: Packets and Protocols. All information sent over the internet is broken down into small groups of bits called packets. The format for creating and reading packets is defined by open protocols so that all devices can read packets from all other devices.

Objective

Students will be able to:

  • Explain the packet process and how protocols (TCP/IP and HTTP) are vital to the exchange of information on the Internet
  • Explain the HyperText Transfer Protocol
Description

In this lesson, students will explore different computing models—sequential, parallel, and distributed computing—by analyzing how tasks are processed. They will complete hands-on activities to compare the efficiency of these models and discuss their advantages and challenges.

Objective

Students will be able to:

  • Define sequential, parallel, and distributed computing.
  • Compare the efficiency of different computing models in performing tasks.
  • Analyze the trade-offs in complexity, speed, and error detection.
Description

In this lesson, students will discuss the ways that the protocols that we have discussed can be exploited, and some methods of protection that we have. We learn about the impact of cybercrime and how we can combat cyber attacks with cybersecurity. Cryptography is the cornerstone of secure communication.

Objective

Students will have an understanding of why cybersecurity is necessary, and some practical measures that they can take themselves to improve their security on the internet.

Description

In this lesson, students are presented with different ways that the Internet impacts their lives. The Internet affects the way that people communicate (emails, social media, video chat) and collaborate to solve problems. It has revolutionized the way that people can learn and even buy things. Because the Internet is present in almost every facet of people’s lives, there are severe ethical and legal concerns that derive from the Internet.

Objective

Students will be able to:

  • Analyze the different ways that the Internet impacts their lives by learning about how the Internet contributes to collaboration, communication, etc
  • Evaluate whether the Internet has a more positive or negative effect on their community by citing examples from the lesson
  • Explain what the digital divide is and articulate their own opinions related to it
Description

In this lesson, students will learn what copyright laws are and how to avoid copyright infringement. They will explore why copyright laws are important and how they protect the creators.

Objective

Students will be able to:

  • Explain what copyright laws are and why they are important
  • Find images they are legally allowed to use in their projects
  • Accurately attribute images they find and want to use
Description

In this lesson, students learn about the different types of software licenses as well as the different methods of installing software based on the application’s architecture.

Objective

Students will be able to:

  • Explain the different types of software licenses
  • Explain the different delivery methods and architecture models of installing software
Description

This lesson is a summative assessment of the unit’s learning objectives.

Objective

Assess student achievement of the learning goals of the unit

Description

What is hardware? How does hardware work?

In this lesson, hardware is broken down into the different physical components of computers and how they contribute to the function of the computer as a whole.

Objective

Students will be able to:

  • Understand and identify the physical components of a computer & their roles in computer functionality
Description

In this lesson, students will learn and explain the purposes and use of various peripheral types. They will classify the peripherals as input or output devices and explore different ways of installing them on a laptop or PC.

Objective

Students will be able to:

  • Explain the purposes and uses of various peripheral types
  • Classify common types of input/output device interfaces.
  • Explain how to install common peripheral devices to a laptop/PC
Description

In this lesson, students will learn about the basic functions and types of operating systems. Students will also explore the process for upgrading and updating operating systems.

Objective

Students will be able to:

  • Explain the purpose of operating systems
  • Identify the main types of operating systems
  • Analyze the upgrade and installation process for operating systems
Description

In this lesson, students delve deeper into the differences between the three main operating systems. They learn how operating systems store and manage files and the differences and similarities in each system’s interface.

Objective

Students will be able to:

  • Compare and contrast the interface of Mac, Windows, and Linux operating systems
  • Explain how operating systems use file systems to manage data
Description

In this lesson, students will learn about the importance of application security and what they can do to protect applications once they have been installed on a device.

Objective

Students will be able to:

  • Explain the importance of application security
  • Explain the multiple methods for protecting software
Description

In this lesson, students will learn what data science is, what a data scientist does, and the different types of questions that can be asked about data. Students will learn that statistical questions include computations or finding a relationship or pattern.

Objective

Students will be able to:

  • Recognize and formulate statistical questions
  • Think critically about data and its sources
Description

In this lesson, students will learn about the data cycle and apply the first two steps of asking questions and considering data. Students will start a mini-project that spans through the rest of the module by asking a statistical question about a field of interest and gathering and structuring the data. They will also learn about and consider both quantitative and qualitative data.

Objective

Students will be able to:

  • Explain and apply the data cycle
  • Consider data as either quantitative or qualitative
  • Structure data into tables of rows and columns
Description

In this lesson, students will learn the basics of Python programming in the context of data science. This includes how to define and use variables and lists, how to use comparison and logical operators, and the importance of knowing the different data types used in Python.

Objective

Students will be able to:

  • Use the basics of Python in the context of data science
  • Define and use variables and lists
  • Use comparison and logical operators
  • Understand the importance of the different data types used in Python
Description

In this lesson, students will learn about Python modules and libraries and how to implement and use them within the editor.

Objective

Students will be able to:

  • Import and use Python modules and libraries
  • Explain the importance of documentation
  • Read and use documentation
Description

In this lesson, students will learn how to create a use a Pandas Series. They will also learn and explore measures of central tendency including the mean, median, and mode.

Objective

Students will be able to:

  • Create a Series using the Pandas library
  • Compute the mean, median, and mode of a Series
  • Decide whether the mean, median, or mode is the best measure of central tendency for a specific dataset
Description

In this lesson, students will expand their statistical knowledge to include the spread of a dataset. They will learn about and apply measures of spread including standard deviation, variance, range, and interquartile range.

Objective

Students will be able to:

  • Use functions to compute the standard deviation and variance of a Series
  • Use variables, functions, and operators to determine the range and interquartile range of a Series
  • Use functions to plot a boxplot and histogram
  • Understand what the measures of spread mean for a dataset
Description

In this lesson, students will learn how to create a data frame using the Pandas library. They will also learn and use functions to explore a data frame further including which data types are included, the shape of the data frame, the descriptive statistics of the data in each column, and more.

Objective

Students will be able to:

  • Create a data frame using Pandas
  • Explore a data frame using key functions
Description

In this lesson, students will learn how to filter a data frame by selecting and displaying only specific columns. They will also learn how to filter rows displayed by using conditionals. Lastly, students will learn how to change the index used in a data frame and set it to a column of their choice.

Objective

Students will be able to:

  • Filter a data frame by displaying specific columns
  • Filter a data frame using conditionals
  • Set and reset the indices of a data frame
Description

In this lesson, students will define and use functions, along with values in a dataset, to calculate and create new columns of data.

Objective

Students will be able to:

  • Define and use functions
  • Use existing data values to create new columns of data
Description

In this lesson, students will practice collecting, explaining, and presenting the important data and details of their mini-project.

Objective

Students will be able to:

  • Interpret meaning from data
  • Extrapolate and present important details from a dataset
Description

In this lesson, students review content with a 15 question end-of-module quiz.

Objective

Students will be able to:

  • Demonstrate their understanding of Python, Pandas, and data science basics
Description

In this lesson, students will be introduced to the module project. They will take a look at how the data is used in the business world to improve aspects of the business as well as predict future outcomes.

Objective

Students will be able to:

  • Explain the benefits of data analytics in the business world
Description

In this lesson, students will learn how to import large datasets. They will also learn how to filter a dataset using index-based selection (iloc) and label-based selection (loc).

Objective

Students will be able to:

  • Import a large dataset using a CSV file
  • Filter a dataset using iloc and loc
Description

In this lesson, students will learn how to conditionally filter a dataset using label-based selection (loc) and comparison operators.

Objective

Students will be able to:

  • Filter a dataset using conditions and loc
Description

In this lesson, students will learn the importance of data cleaning and how to do it. Data cleaning deals with fixing or removing incorrect or missing values.

Objective

Students will be able to:

  • Use functions to explore the completeness of a dataset
  • Decide whether to drop, fix, or replace missing or incorrect data
  • Perform imputation which is the process of fixing or removing incorrect or incomplete data within a dataset
Description

In this lesson, students will learn about the importance of data visualization when telling a data story. Students will be using a variety of charts, graphs, images, and other common data visualizations to help to bring meaning and understanding to otherwise complex data.

Objective

Students will be able to:

  • Recognize and define the most common types of data visualizations
  • Debug programs that include data visualizations such as pie charts and bar graphs
Description

In this lesson, students will learn about univariate data and how to visualize and compare datasets using line and bar charts.

Objective

Students will be able to:

  • Plot and interpret a data visualization using a line graph
  • Plot and interpret a data visualization using a bar chart
Description

In this lesson, students will learn how to determine the quality of a dataset. They will explore a few raw datasets to access their quality and completeness.

Objective

Students will be able to:

  • Use functions to determine a dataset’s completeness
  • Use functions and a library to check a dataset’s validity and accuracy
Description

In this lesson, students will practice aggregating data by using different sort and group functions and parameters.

Objective

Students will be able to:

  • Group and sort datasets and reflect on the results
  • Sort by multiple columns and analyze and interpret the results
Description

In this lesson, students will practice combining data by using different concatenation and merging techniques.

Objective

Students will be able to:

  • Concatenate two datasets
  • Explain different merge/join methods and determine which method is best given a scenario
  • Use merge/join functions to combine two datasets
Description

In this lesson, students will work on their module projects by gathering and combining data from multiple sources. They will check the quality of the datasets as well as clean, combine and sort them.

Objective

Students will be able to:

  • Assess the quality of data sources and data sets
  • Clean and combine multiple datasets
Description

In this lesson, students will learn different types of bias that can be present and affect data analytics. They will also take time to analyze and interpret their project datasets.

Objective

Students will be able to:

  • Explain and recognize different types of bias that can be present during data analysis and interpretation
Description

In this lesson, students will work on their module projects by creating a business report.

Objective

Students will be able to:

  • Create and present a business report based on data analysis and interpretation
Description

In this lesson, students review content with a 10 question end-of-module quiz.

Objective

Students will be able to:

  • Demonstrate their understanding of data aggregation
Description

In this lesson, students will explore the concept of intelligence, engaging with various resources to make their own determination on the level of intelligence of AI models.

Objective

Students will be able to:

  • Define intelligence as it will be used in this course
  • Describe the Turing Test, its uses, and where it falls short
  • Engage with various resources to gauge the intelligence level of AI tools
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