Please enable JavaScript to use CodeHS

Florida Coding Fundamentals

Description

In this lesson, students are introduced to Karel the Dog and how Karel can be given a set of instructions to perform a simple task.

Objective

Students will be able to:

  • Recognize, explain, and use the commands that Karel can be given. These commands are: move(), put_ball(), take_ball() and turn_left().
Description

In this lesson, students build on their understanding of how Karel the Dog can be given a set of instructions to perform a simple task.

Objective

Students will be able to:

  • Recognize, explain, and use the commands that Karel can be given
  • Debug and rework their code as well as someone else’s code
Description

In this lesson, students will learn how to define and call a function using proper syntax.

Objective

Students will be able to:

  • Define and call functions
Description

In this lesson, functions will be used to teach Karel a new word or command. Using functions allows programs to be broken down into smaller pieces and makes it easier to understand.

Objective

Students will be able to:

  • Understand what functions are, how they are used and how using them improves programs
  • Design and implement their own functions to solve problems
Description

In this lesson, students learn top down design and decomposition as the processes of breaking big problems into smaller, manageable pieces. The functions improve the readability of the code and avoid repeated code.

Objective

Students will be able to:

  • Break a large problem down into smaller, simpler problems
  • Write functions that solve the simpler problems, and use them as building blocks to solve the larger problem
  • Compare programs and identify good vs. poor decomposition
Description

In this lesson, students will learn how to utilize comments in their code to explain what their code is doing. Comments should include preconditions and postconditions. Preconditions are assumptions we make about what is true before a function is called in our program. Postconditions are what should be true after a function is called in our program.

Objective

Students will be able to:

  • Explain the preconditions and postconditions of a function
  • Create clear and readable comments in their code that help the reader understand the code
  • Explain the purpose of comments
Description

In this lesson, students will learn about abstraction. Abstraction is the act of managing complexity by dissociating information and details in order to focus on relevant concepts.

Objective

Students will be able to:

  • Understand abstraction as the different levels of detail and complexity
  • Understand the importance of abstracting away complexity to solve problems more efficiently
Description

In this lesson, students will be introduced to SuperKarel and APIs. SuperKarel includes commands like turn_right() and turn_around() since they are so commonly used. These commands come prepackaged with the SuperKarel library (API).

Objective

Students will be able to:

  • Write programs that use SuperKarel instead of Karel
  • Utilize the new toolbox of commands that SuperKarel provides over Karel
  • Read the documentation to understand how to use an API (SuperKarel is an example of this)
Description

In this lesson, students learn how to use for loops in their programs. The for loop allows you to repeat a specific part of code a fixed number of times.

A for loops is written as follows:

for i in range(4):
    # Code to be repeated 4 times

Objective

Students will be able to:

  • Create for loops to repeat code a fixed number of times
  • Explain when a for loop would be a useful tool
  • Utilize for loops to write programs that would be difficult/impossible without loops
Description

In this lesson, students will learn about conditions and if statements. A condition is a function that returns a true/false answer. Python uses if statements as a way to make decisions and execute specific code. If statements are helpful in writing code that can be used in different situations.

Objective

Students will be able to:

  • Use conditions to gather information about Karel’s world (is the front clear, is Karel facing north, etc)
  • Create if statements to only execute code if a certain condition is true
Description

In this lesson, students will take a deeper look into conditional statements, more specifically if/else statements. If/else statements allow for one thing to be done if a condition is true, and something else otherwise.

We write if/else statements like this:

if front_is_clear():
    # code to execute if front is clear
elif:
    # code to execute otherwise
Objective

Students will be able to:

  • Explain the purpose of an If/Else statement
  • Create If/Else statements to solve new types of problems
  • Identify when an If/Else statement is appropriate to be used
Description

In this lesson, students are introduced to a new type of loop: while loops. While loops allow Karel to repeat code while a certain condition is true. While loops allow for the creation of general solutions to problems that will work on multiple Karel worlds, rather than just one.

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
  • Test their solutions on different Karel worlds
Description

In this lesson, students take a look at all of the control structures. Control structures can be selective, like if and if / else statements and are based on a condition. Other control structures are iterative and allow for repeated code like for loops and while loops. Basically, control structures control the way the commands execute.

Objective

Students will be able to:

  • Identify the different control structures that can be used to modify the flow of control through a program
  • Combine control structures to solve complicated problems
  • Choose the proper control structure for a given problem
Description

Debugging is a very important part of programming. In this lesson, students learn how to effectively debug their programs.

Objective

Students will be able to use debugging strategies to find and fix errors in their code.

Description

In this lesson, students are introduced to algorithms which are step by step instructions that solve a problem. Programs implement algorithms. All algorithms are built using sequencing, selection, and iteration. Karel has control structures for each of these. This lesson is designed to test students’ knowledge of control structures and algorithm design in preparation for upcoming Karel challenges.

Objective

Students will be able to:

  • Analyze an algorithm and explain why it works
  • Use control structures to create general algorithms that work on all Karel worlds
Description

In this lesson, students are introduced to Ultra Karel! Ultra Karel has all the abilities of Super Karel, plus two new functions (paint and color_is) added to the API.

Students will explore the Ultra Karel API and use Ultra Karel’s ability to paint the grid world to create digital images. Students will create generalized algorithms that solve Ultra Karel problems for multiple worlds.

This lesson is the first time students will use functions that accept parameters as inputs.

Objective

Students will be able to:

  • Use Ultra Karel commands to paint Karel’s world
  • Call functions that accept parameters as inputs
  • Explain the relationship between a function and a parameter
  • Create generalized Ultra Karel algorithms that correctly solve multiple Karel worlds
  • Identify differences between the Super Karel API and the Ultra Karel API
Description

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

Objective

Students will be able to:

  • Prove their knowledge of control structures, functions, decomposition, and comments through a multiple choice quiz
Description

In this lesson, students will synthesize all of the skills and concepts learned in the Karel unit to solve increasingly challenging Karel puzzles.

Objective

Students will be able to:

  • Define a problem in their own words and plan out a solution to the problem
  • Break a large problem down into smaller pieces and solve each of the pieces, then use these solutions as building blocks to solve the larger problem
  • Utilize the proper control structures to create general solutions that solve multiple Karel worlds
  • Write clear and readable code using control structures, functions, decomposition, and comments
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

This hands-on lab empowers students to personalize their computer experience by exploring display, sound, and storage settings, while also teaching them valuable troubleshooting skills. Students will learn to navigate their operating system and discover resources for further customization.

Objective

Students will be able to:

  • Identify their computer’s operating system
  • Explore and configure basic display, sound, and storage settings
  • Troubleshoot minor configuration issues
  • Identify resources for finding additional information about their system
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 continue to compare and contrast different operating systems. Students learn how operating systems use file extensions to determine how to view different data types and how some extensions are only compatible with specific operating systems. Additionally, students learn about processors and the difference between a 32-bit processor and a 64-bit processor.

Objective

Students will be able to:

  • Compare and contrast file systems of different operating systems
  • Explain the role of the processor in a computer system
  • Explain the difference between a 32-bit and 64-bit processor and the impact it has on the operating system
Description

In this lesson, students will learn how to differentiate between laptops and tablets. Through brainstorming, activities, and discussions, students will explore the functionalities, strengths, and weaknesses of each device to make informed decisions about their own technology needs.

Objective

Students will be able to:

  • Identify key differences between laptops and tablets
  • Analyze the strengths and weaknesses of each device type
Description

In this lesson, students learn about the different types of software. Through interactive exercises, students explore how different software can be used in the workplace and our every day lives. Students also learn about single and cross-platform software.

Objective

Students will be able to:

  • Explain the different types of software (productivity, collaboration, business) and the purpose of each.
  • Explain the benefits and challenges of single and cross-platform software.
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 system administration concepts and its impacts through a multiple choice quiz
Description

In this lesson, students will explore the language of computers, including programming languages, variables, and data types.

Objective

Students will be able to:

  • Identify different types of programming languages and their hierarchical structure
  • Demonstrate an understanding of how to use variables
  • Differentiate between various data types, including integers, floating points, Strings, and Booleans
Description

In this lesson, students will explore how computers use the binary number system to store and communicate information. Through hands-on activities, they will learn how sequences of 0s and 1s represent data in a computer, understanding the fundamental concept of binary code. This foundational knowledge will enable students to grasp how computers interpret complex information and the importance of secure data encoding in cybersecurity.

Objective

Students will be able to:

  • Explain the significance of binary in computer communication
  • Encode and decode messages using binary representation
  • Understand the role of transistors in storing and processing binary information
Description

In this lesson, students will be introduced to the basic concepts and components of the internet, including its history and the meaning of protocols. Students will discuss internet innovations and reflect on how the internet is used in their everyday lives.

Objective

Students will be able to:

  • Understand the basic concepts of the internet
  • Understand networks and how they are connected
  • Understand that a protocol is an agreed-upon method of communication
Description

In this lesson, students will explore the importance of protocols and relate how they use them in their lives.

Objective

Students will be able to:

  • Discuss the necessity of protocols
  • Explain how protocols help with communication
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.

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 is meant by cybersecurity and explore a few news worthy cyber attacks. They will also discuss the Internet of Things and the increase in connected devices.

Cybersecurity is the protection of computer systems, networks, and data from digital attacks. Increased connectivity via the Internet of Things and reliance on computer devices to send and store data makes users more vulnerable to cyber attacks.

Objective

Students will be able to:

  • Define cybersecurity and its impact
  • Determine the types of personal information and digital resources that need to be protected
  • Describe trade-offs of implementing specific security safeguards
  • Describe how the Internet of Things makes people more vulnerable to cyber attacks
Description

In this lesson, students will learn about The CIA Triad. The CIA Triad is a widely-accepted security measure that should be guaranteed in every secure system. It stands for Confidentiality, Integrity, and Availability.

  • Confidentiality is the protection of information from people who are not authorized to view it.
  • Integrity aims at ensuring that information is protected from unauthorized or unintentional alteration.
  • Availability is the assurance that systems and data are accessible by authorized users when and where needed.
Objective

Students will be able to:

  • Identify what the CIA triad is and how it relates to cybersecurity
  • Identify which part of the CIA triad has been broken in a given scenario
Description

In this lesson, students will learn how basic encryption and decryption works. There is a need for secrecy when sending and receiving personal information. Encryption and decryption are used to protect personal information.

Objective

Students will be able to:

  • Explain the need for encryption and how basic encryption and decryption works
  • Relate encryption with how it affects the CIA Triad
  • Describe the limitations of cryptographic methods.
Description

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

Description

In this project, students will learn about steganography and how it is used to encrypt data. Students will develop their own encryption algorithm to hide a message in an image by manipulating the hexadecimal color codes of an image.

Objective

Students will be able to:

  • Define steganography and explain how it is used in cryptography
  • Use steganography to encrypt a message in an image by manipulating the hexadecimal color code of pixels
Description

In this lesson, students are introduced to the concept of data and its applications. Students will learn about different types of data, how data is collected and used in technology, and the importance of data privacy.

Objective

Students will be able to:

  • Differentiate between data, information, and knowledge
  • Evaluate the benefits and risks of sharing personal information online
  • Reflect on how data can be used to improve personal understanding and decision-making
Description

In this lesson, students are introduced to the basic operations and features of spreadsheets. Through a hands-on activity, students will explore how to use spreadsheets to organize and analyze data. They will learn about concepts such as rows, columns, cells, ranges, operations, and functions.

Objective

Students will be able to:

  • Define key spreadsheet terms such as rows, columns, cells, ranges, operations, and functions
  • Use common spreadsheet functions such as SUM and AVERAGE
Description

In this lesson, students will learn how to sort and filter a spreadsheet.

Objective

Students will be able to:

  • Sort a spreadsheet by a column from least to greatest or greatest to least
  • Filter a spreadsheet based on a selected condition
  • Understand when and how to use a filter or sort their data in order to help them with data analysis
Description

In this lesson, students learn how to apply statistical measures (mean, median, and mode) to a dataset in order to gain insights.

Objective

Students will be able to:

  • Use the AVERAGE() formula in Google Sheets to find the average of a range of values
  • Use the MEDIAN() formula to find the median value in a range of values
  • Use the MODE() formula to find the mode of a range of values
  • Describe what each of the statistical measures above says about the data
  • Develop keyboarding skills by entering and manipulating data in a spreadsheet, performing calculations on various datasets, and drawing comparisons
Description

In this lesson, students will learn how to create visualizations based on Google Sheets data.

Objective

Students will be able to:

  • Identify the best chart to use for different types of information
  • Use a spreadsheet to create data visualizations
Description

In this lesson, students are introduced to the concept of models in data analysis. Students will explore how models can simplify complex data, identify patterns, and make predictions. This lesson emphasizes the importance of critical thinking and understanding the limitations of models.

Objective

Students will be able to:

  • Understand the concept of a model and its role in data analysis
  • Understand how models can be used to predict future outcomes
  • Identify real-world problems that could benefit from modeling
  • Make predictions based on data trends
Description

In this lesson, students launch their data storytelling project! They will explore how to identify questions that can be answered with data, brainstorm their research topic, and consider the types of information they’ll need.

Objective

Students will be able to:

  • Differentiate between statistical and non-statistical questions
  • Brainstorm research topics based on their interests and curiosity
  • Identify the types of data that would be needed to answer a given research question
Description

In this lesson, students will learn how to use data to support and add to a story. The data story will combine visuals with a compelling narrative to help audiences understand the importance of the data being explained. Students will work on collecting and analyzing data. They will also create a visualization using a spreadsheet program or a data visualization platform of their choice.

Objective

Students will be able to:

  • Critically examine and reflect on various data visualizations and infographics
  • Collect data using an existing data set, research, or surveys
  • Analyze data to turn the values into meaningful conclusions
  • Create a visualization that will aid in telling their data story
Description

In this lesson, students will learn how to use their data to support and add to a story. The data story will combine visuals with a compelling narrative to help audiences understand the importance of the data being explained.

Objective

Students will be able to:

  • Create a visually appealing infographic that displays important data visualizations
Description

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