Please enable JavaScript to use CodeHS

Indiana Topics in Computer Science

Description

In this lesson, students will reflect on the concepts that will be covered in this course.

Objective

Students will be able to:

  • Understand the concepts that will be covered in this course
Description

In this lesson, students learn about the basic history of video games and the industry. Students will reflect on how video games evolved with technological improvements and changes to game design and development in the early years of the industry.

Objective

Students will be able to:

  • Describe the basic evolution of video games
  • Explain how technology improvements evolved the video game industry
  • Describe early users of video games and how the industry became more mainstream
  • Explain the primary reason for the video game industry crash in the early 1980s and how it was revived
Description

In this lesson, students dive deeper into common elements that all fun games possess.

Objective

Students will be able to:

  • Explain common elements that are present in most fun games.
  • Identify how common elements manifest in familiar games.
Description

In this lesson, students will be introduced to the JavaScript code syntax they will be using for the Game Development content in this course.

Objective

Students will be able to:

  • Understand the differences between let vs var vs const, console.log vs print and println, start vs main
  • Write code using the updated syntax
Description

In this lesson, students will be introduced to the concept of using timers to animate their graphics.

Objective

Students will be able to:

  • Explain in their own words how animation works
  • Create animation in programs using the setTimer function
  • Explain what a callback function is
Description

In this lesson, students will get more time practicing with timers as they learn how to stop their timers when a specific condition is met.

Objective

Students will be able to:

  • Create programs with timers to create increasingly challenging animations
  • Stop animation timers when a condition is met using stopTimer() function
Description

In this lesson, students learn about the logic required to implement their own collision detection functionality in their graphics animations.

Objective

Students will be able to:

  • Understand when objects “collide” with the canvas walls and other objects.
  • Write their own collision detection logic.
Description

In this lesson, students learn how to detect and take action upon a mouse click event.

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 learn how to extend mouse events to make interactive animations using the movement and dragging motion of the mouse.

Objective

Students will be able to:

  • Explain how events are different from timers.
  • Create interactive programs that use events to respond to the mouse moving
Description

In this lesson, students will learn how to use keyboard keys to control events. Keyboard events capture when the user presses keys on the keyboard. This allows students to write programs that take input from the keyboard to change what is happening in the program.

Objective

Students will be able to:

  • Explain how events are different from timers.
  • Create interactive programs that use events to respond to the keyboard input.
Description

In this lesson, students review content with a 25 question End-of-Unit Quiz.

Objective

Students will be able to:

  • Prove their knowledge of various concepts in animation through a multiple choice quiz
Description

In this lesson, students will learn about various software development life cycle models and tools that can be used at different stages of the process.

Objective

Students will be able to:

  • Identify different software development models
  • Describe tools used during the software development life cycle
  • Explain how tools can help developers collaborate
Description

In this lesson, students go through the game development life cycle as they create their own game.

Objective

Students will be able to:

  • Understand the steps in the Software Development Life Cycle
  • Understand the steps in the prototype Development Model
  • Describe their game concept and their plan for its development
  • Work together as a team to develop a game
  • Give and receive meaningful feedback
  • Implement changes due to feedback and comments given from peers
  • Program a working prototype of a game
Description

In this lesson, students explore the impacts of being online. Students reflect on social media use and their digital footprint as well as learn how to identify and respond to cyberbullying.

Objective

Students will be able to:

  • Analyze the impact of social media and technology use on the lives of teenagers
  • Explain how one’s digital footprint can impact their future employment options
  • Analyze their own digital footprint and explain how they can maintain a positive digital footprint
  • Define cyberbullying
  • Explain how to respond to cyberbullying
  • (Optional) Choose the best privacy settings to protect their digital footprint and prevent cyberbullying
Description

In this lesson, students explore the complex world of data collection. Students learn about the types of data that companies collect and what they do with it. Students also consider the ethics of data collection by working through a scenario about location tracking in school. Lastly, students learn about privacy within the context of law.

Objective

Students will be able to:

  • Explain why companies collect data and what they do with it
  • Analyze the benefits and consequences of data collection that may or may not be evidence to users
  • Consider the ethics of data collection with relation to privacy concerns
  • Define personally identifiable information
  • Explain personal data collection in the context of the law (GDPR, CCPA, and privacy policies)
Description

In this lesson, students will learn about and discuss information literacy. Information literacy is having the ability to find information, evaluate information credibility, and use information effectively.

Objective

Students will be able to:

  • Evaluate the accuracy, relevance, comprehensiveness, appropriateness, and bias of electronic information resources
  • Evaluate quality of digital resources for reliability
  • Reflect on the growth of artificial intelligence in terms of trustworthy content
  • Explore and use search engine keywords and special characters to refine search results
Description

By the end of this lesson, students should have a better understanding of cyberethics, responsible internet use, and the impact of copyright and licenses on the digital world. They should also be more aware of the potential consequences of unethical online behavior.

Objective

Students will be able to:

  • Identify the difference between ethical hacking and malicious hacking
  • Discuss the principles of cyber ethics, focusing on responsible online behavior.
  • Discuss potential legal consequences of unethical online behavior
  • Debate intellectual laws and the beneficial and harmful effects that these laws have on innovation
Description

In this lesson, students learn about the importance of personal data security and explore different forms of authentication and browser security settings. Students then consider the tradeoffs between ease of use and security when implementing different authentication methods.

Objective

Students will be able to:

  • Explain password best practices
  • Define authentication terms: passphrase, multifactor authentication, 2FA, biometric authentication, password managers
  • Evaluate different forms of authentication
  • Explain how to use privacy settings on their browser to enhance security
  • Consider the tradeoffs between usability and security measures
Description

In this lesson, students are introduced to the core concepts of cybersecurity, focusing on the importance of protecting information and devices in the digital world. Students will explore key vocabulary terms, security frameworks, and the potential risks associated with the Internet of Things (IoT).

Objective

Students will be able to:

  • Define basic cybersecurity terminology
  • Explain the importance of information security and the CIA Triad (Confidentiality, Integrity, Availability)
  • Analyze how the AAA Security Framework (Authentication, Authorization, and Accounting) helps protect online information
  • Identify potential security risks associated with the Internet of Things (IoT) devices.
Description

In this lesson, students complete a summative assessment of the module’s learning objectives.

Objective

Students will be able to:

  • Prove their knowledge of basic cybersecurity concepts and its impacts through a multiple choice quiz
Description

In this lesson, students will learn how to make the most basic python program- one that displays text on the screen. Students will learn how to print in python using the print statement. They will also learn how to use quotations, apostrophes, and strings.

Objective

Students will be able to:

  • Print text in Python
Description

In this lesson, students will be reintroduced to the concept of variables, which store information in a program to be used later. Students will also learn about three different variable types- strings, integers, and floating point numbers.

Objective

Students will be able to:

  • Define Python variables and types
Description

In this lesson, students revisit user input. They learn how to request user input as both strings and integers, learn where the input is stored, and learn how to convert strings and integers.

Objective

Students will be able to:

  • Incorporate user input into their programs
  • Convert between variable types
Description

In this lesson, students will learn about using mathematical operators in their Python programs. They will work through multiple examples to get comfortable with operator precedence and using different types of operators.

Objective

Students will be able to:

  • Describe the different mathematical operators that can be used in their 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 be able to perform string operations in order to concatenate values together.

Objective

Students will be able to:

  • Use mathematical operators with strings
Description

In this lesson, students revisit the concept of comments. Comments are helpful because they allow programmers to leave notes about the program they are writing.

Objective

Students will be able to:

  • Incorporate comments into their programs in order to make them more readable
Description

In this lesson, students review content with a 20 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, we learn about Functions. Functions let us break our program into different parts that we can organize and reuse however we like. Functions are the main building block of complex Python programs.

Objective

Students will be able to:

  • modularize their programs with functions
Description

In this lesson, we dive deeper into the concept of functions by exploring how to use parameters.

Objective

Students will be able to:

  • Effectively use parameters to customize functions in their programs
Description

In this lesson, we explore where variables exist and what the difference is between a local and global variable.

Objective

Students will be able to:

  • describe the different namespaces with regards to variables and functions
Description

In this lesson, students explore functions with return values and deepen their understanding of and ability to use functions.

Objective

Students will be able to:

  • remove complexity from their programs by abstracting with functions
  • generalize their functions with parameters
  • chain functions together using return values
Description

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

Objective

Students will be able to:

  • Prove their knowledge of functions and exceptions through a multiple choice quiz
Description

In this lesson, students will learn about and practice using tuples. A tuple is a heterogenous, immutable data type that stores an ordered sequence of things that can be accessed using indices.

Objective

Students will be able to:

  • create and store information in tuples
  • explain the characteristics of a tuple
Description

In this lesson, students will learn about their second data structure, lists. A list is a mutable, heterogeneous data type that stores an ordered sequence of things.

Objective

Students will be able to:

  • understand and explain the characteristics of a list
  • use lists to store and recall information
Description

In this lesson, students will learn how lists can be iterated over in a similar way to strings.

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, in general, are like functions that can be called on objects. Students have seen previously how string methods are called on strings. In this lesson, students will learn about the various list methods that can be called on lists!

Objective

Students will be able to:

  • apply useful list methods to alter and access information about a list
Description

In this lesson, students will learn how 2d lists are stored and how to use indexing and slicing to extract specific items from a list of lists.

Objective

Students will be able to:

  • Use 2d lists to store information in rows and columns
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

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 are introduced to the field of Artificial Intelligence. Students explore the definition of intelligence and the different types of artificial intelligence in computers.

Objective

Students will be able to:

  • Define Artificial Intelligence
  • Explain the difference between predictive and generative AI
Description

In this lesson, students will learn more about the types of AI and dive deeper into the three most popular machine learning algorithms.

Objective

Students will be able to:

  • Describe the difference between narrow and general AI
  • Describe the general machine learning process
  • Describe the similarities and differences of supervised, unsupervised, and reinforcement learning algorithms
  • Train and test a supervised learning model
  • Experience reinforcement learning
Description

In this lesson, students will learn about different subsets of Artificial Intelligence, specifically machine learning and neural networks.

Objective

Students will be able to:

  • Understand the differences between the concepts of AI, machine learning, and neural networks
  • Explain how machine learning is different from a traditional programming
  • Explain the fundamental concepts of how a neural network works
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 how datasets can be biased and the impact that they have.
Description

In this lesson, students are introduced to TensorFlow and the basics for creating a Neural Network in TensorFlow.

Objective

Students will be able to:

  • Access and run Python commands from the TensorFlow library in a Colab environment
  • Create and modify basic Neural Network models using TensorFlow
Description

In this lesson, students will learn about convolutional neural networks in order to create an image prediction model. Students will have the opportunity to apply these to a TensorFlow model to make predictions about images.

Objective

Students will be able to:

  • Understand what a convolutional neural network is and how it differs from other models they have already seen.
  • Create a basic image classification model using TensorFlow
  • (optional) Understand how convolutions and max pooling are created and how they simplify the model
Description

In this lesson, students will learn about what key characteristics make up a good training dataset and explore the impact of using a biased dataset on a face-recognition model.

Objective

Students will be able to:

  • Explain how a biased dataset can impact the quality of a model
  • Understand the qualities that make up a good training dataset
Description

In this lesson, students will learn about tokenizing text to be used in Natural Language Processing models. They will then use that along with embedding layers to create text sentiment models.

Objective

Students will be able to:

  • Explain what tokenization is and why it is important to machine learning
  • Explain how embedding layers are used to create text-based machine learning models
Description

In this lesson, students will learn about recurrent neural networks (RNN) and apply it to create a text-generating model using unsupervised input data.

Objective

Students will be able to:

  • Explain the basics of how an RNN works and why it would be used
  • Create a text-generating model that uses unsupervised data
Description

In this lesson, students will demonstrate their knowledge to create a final TensorFlow model. Students can choose from one of the starter projects or choose a project of their own.

Objective

Students will be able to:

  • Independently create a machine learning model by combining concepts taught in previous units.
  • Create an AI interface to interact with the machine learning model