Please enable JavaScript to use CodeHS

GACE CS Exam Prep

This is an online professional development course to help prepare teachers for the Georgia Assessments for the Certification of Educators Computer Science (GACE CS) exam. It covers 100% of the competencies designated for the exam.

Overview & Highlights

Level
Elementary School, Middle School, High School
Number of Lessons
147

Overview of Lessons

To view the entire syllabus, click here or click to explore the full course.

Welcome to the CodeHS GACE Prep Course!

Welcome to the CodeHS GACE Prep Course

Introduction to Programming in Java with Karel the Dog

Introduction to Programming With Karel

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

More Basic Karel

Students learn more about Karel and Karel's world. Students learn about walls in Karel's world, the directions Karel can face, and how to identify a location in Karel's world using streets and avenues. In these exercises, students will begin to see the limitations of Karel's commands. Students will need to apply Karel's limited set of commands to new situations. For example, how can we make Karel turn right, even though Karel does not know a turnRight command?

Java Programs and the Run Method

This lesson introduces the run method, which is the place where the program starts running. Students will also learn to write full java program, instead of just writing commands. In the the program below, SquareKarel is the name of the class. When we say extend Karel, it means this is a Karel program like the ones we have already written. ``` public class SquareKarel extends Karel { public void run() { putBall(); move(); turnLeft(); } ```

Karel Can't Turn Right

Students will learn how they can create their own commands for Karel by calling and defining methods. Methods allow programmers to create and reuse new commands that make code more readable and scalable.

Methods in Karel

Methods are used to teach Karel a word or command. Using methods allows students to break down their programs into smaller pieces and make it easier to understand.

Top Down Design and Decomposition in Karel

In this lesson, students learn about Top Down Design and Decomposition. Top Down Design is the process of breaking down a big problem into smaller parts.

Commenting Your Code

In this lesson, students learn how to style their programs by including comments. Comments allow students to leave notes on their program that makes it easier for other to read. Comments are written in plain English. Commenting Your Code Example: ``` /* * multi-line comments */ // single line comments ```

Super Karel

In this lesson, students are introduced to Super Karel! Since commands like `turnRight()` and `turnAround()` are so commonly used, students shouldn't have to define them in every single program. This is where SuperKarel comes in. SuperKarel is just like Karel, except SuperKarel already knows how to turnRight and turnAround, so students don't have to define those methods anymore. To use SuperKarel instead of Karel, the class that students write extends SuperKarel instead of Karel: ``` public class MyProgram extends SuperKarel { } ```

For Loops

In this lesson students learn how to use for loops in their programs. The for loop allows students to repeat a specific part of code a fixed number of times. For loops are written like this: ``` for(int i = 0; i < 4; i++) { // Code to be repeated 4 times } ```

While Loops in Karel

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

If Statements

In this lesson, students learn about the conditional statement "if". Code within an "if statement" will only execute IF the condition is true. ``` if (frontIsClear()) { // Code to be executed only if front is clear } ```

If/Else Statements

In this lesson we take a look at more conditional statements, more specifically if/else statements. If/else statements let us do one thing if a condition is true, and something else otherwise. We write if/else statements like this: ``` if(frontIsClear()) { // code to execute if front is clear } else { // code to execute otherwise } ```

Control Structures Example

In this lesson we take a look at control structures. Some control structures allow us to ask questions: if, if / else statements. Other control structures allow us to repeat code like for loops and while loops. Basically, control structures allow us to control the way the commands execute.

More Karel Examples and Testing

In this lesson, we review more lesson in Karel and get extra practice with control structures. Students will continue to see different ways that the if, if/else, while, and for loops affect their code and what Karel can do.

How to Indent Your Code

In this lesson, we review how student should indent their code to make it easier to read. Indenting helps to show the structure of the code.

Unit 1 Quiz

This lesson is a summative assessment of the unit's learning objectives.
What is Computing?

History of Computers

*When was the first computer made? What did it look like, and what was it used for?* In this lesson, students will explore the creation and evolution of computing machines that now permeate our day-to-day life. **Note:** This course was updated on October 7, 2020. You can find the original material in the Supplemental Module titled "Original Material: What is Computing?"

Computer Organization

How are computers organized? What are the main components of a computer? In this lesson, we will explore how different organizational structures of computers interact with each other to make computers functional.

Software

What kinds of software do computers use and need? In this lesson, the topic of software is broken down into types of software, how they interact, and the specific functions of the different types of software.

Hardware

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.

Future of Computing

Where is computing headed? What is Artificial Intelligence and what are the potential impacts that this might have on our world? In this lesson, students learn about Artificial Intelligence and how the landscape of computing might change in the future. Students will discuss how these future developments might impact our society.

Ethical and Social Implications of Computing

What is Computing? Quiz

Digital Information

What is Code?

Intro to Digital Information

Number Systems

Encoding Text with Binary

Pixel Images

Hexadecimal

Octal Numbers

Pixel Colors

Data Compression

Lossy Compression

Cryptography

Digital Information Quiz

Data

Getting Started with Data

In this lesson, students will learn how computers are used to collect, store, manipulate, and visualize data in order to answer questions and gain knowledge of the world.

Visualizing and Interpreting Data

In this lesson, students will learn about the impact of visually representing data to make information easier to analyze and use.

Using Spreadsheets with Data

Data Collection & Limitations

In this lesson, students learn how computers can be used to collect and store data. They learn best practices for interpreting data that is presented. Data visualizations can be very helpful in recognizing patterns and answering questions, but can also be used to mislead if skewed or full of bias.

Simulation

Data Quiz

The Internet

Welcome to the Internet

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.

Internet Hardware

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

Internet Addresses

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

DNS

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

Routing

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

Packets and Protocols

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.

Cybersecurity

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.

The Impact of the Internet

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.

Creative Credit & Copyright

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.

The Internet Quiz

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

What is Cyber?

Impact of Cyber

The CIA Triad

Privacy and Security

Hacking Ethics

Databases

Common Security Problems

Environmental Controls

Digital Certificates

Data and Licenses

Cybersecurity Quiz

Intro to System Administration

Start Here

Operating Systems Software

Comparing Operating Systems

Software and Applications

Browser Configuration

System Admin Quiz

IT Infrastructure

Start Here

Internal Components

Peripheral Devices

Network Devices

Storage Options

Network Options

Network Communication

IT Infrastructure Quiz

Creative Development

Intro to Design Thinking

Prototype

Test

Collaboration in Computer Science

Collaboration in Computer Science

Whiteboarding

Pair-Programming

Pop Coding

Storytelling through Code

Debugging in Java

Basic Debugging in Java

Debugging Tools

Debugging Techniques

Common Java Errors

Common Compiler Errors

Java Outside of CodeHS

Basic Java

Programming Languages

Organizational Techniques

Printing in Java

Variables and Types

User Input

Arithmetic Expressions

Casting

Mid Unit Quiz

Booleans

Logical Operators

Comparison Operators

If Statements

For Loops

While Loops

Nested Iterations

Loop-and-a-Half

Short-Circuit Evaluation

DeMorgan's Laws

String Types

Basic Java Quiz

Methods

Java Methods

Methods and Parameters

Methods and Return Values

String Methods

Exceptions

Methods Quiz

Classes and Object-Oriented Programming

Intro to Classes and Objects

Classes vs. Objects

Using a Class as a Client

Writing Classes

Writing Classes and Instance Methods

Getter and Setter Methods

Method Overloading

Local Variables and Scope

Key Terms for Classes

Objects vs. Primitives

Inheritance

Classes and OOP Quiz

Data Structures

What are Data Structures

Introduction to Arrays

Using Arrays

2D Arrays

Traversing 2D Arrays

HashMaps, Stacks, and Queues

Data Structures Quiz

Algorithms and Recursion

What is an Algorithm?

In this lesson, students will learn about the basics of algorithms, how they are used in programming, and how algorithms exist in their daily life outside of computer science.

Linear Search

In this lesson, students are exposed to the first classic Search algorithm, Linear Search. Students will learn how to code Linear Search, and understand the use and limitation of this algorithm.

Binary Search

In this lesson, students learn another algorithm for searching, Binary Search. Students will compare Binary Search to Linear Search, and discuss the reasons why they might need multiple ways to search a list.

Selection Sort

In this lesson, students learn the basics of sorting. As learned in the previous lesson, Binary Search is a useful search method, but it's limited by the fact that the lists it searches need to be sorted. In this lesson, students learn that Selection Sort is one way they can sort lists in order to effectively use Binary Search.

Insertion Sort

Student learn a new sorting method, Insertion Sort. As learned in the previous lesson, Binary Search is a useful search method, but it's limited by the fact that the lists it searches need to be sorted. In this lesson, students learn that Insertion Sort is another way they can sort lists in order to effectively use Binary Search.

Recursion

In this lesson, student learn the concept of recursion. Recursion is the idea that functions can call themselves *within* the function. This creates an iterative process that allows functions to iterate without using for or while loops, but only conditional statements. Students will practice using recursion, and model it with real world scenarios.

Mergesort

Students will learn about a third sorting algorithm, Merge sort. Merge sort uses recursion to break down lists into sublists, and sorts those sublists until the entire list is sorted. Students will compare Merge sort to other sorting methods that they've learned.

Informal Code Analysis

Random and Pseudorandom Numbers

Algorithms and Recursion Quiz

This lesson is a summative assessment of the unit's learning objectives.
Preparing for the Exam

Mock Exam

Competency/Standard-Based Quizzes

Flashcards - Quizlets

Final Task

Congratulations!

156
Videos
75
Exercises
85
Offline Handouts

Standards

GACE CS Exam Prep is aligned with the following standards

Standards Framework View Alignment
Georgia Assessments for the Certification of Educators View (100%)