#### Data Modeling 1 : `10/03/2022`

#### Static : `09/30/2022`

#### Encapsulation : `09/29/2022`

#### Constructors : `09/28/2022`

#### Objects, Continued : `09/27/2022`

#### Introduction to Objects : `09/26/2022`

#### Compilation and Type Inference : `09/23/2022`

#### Practice with Collections : `09/22/2022`

#### Maps and Sets : `09/21/2022`

#### Lists and Type Parameters : `09/20/2022`

#### Imports and Libraries : `09/19/2022`

#### Multidimensional Arrays : `09/16/2022`

#### Practice with Strings : `09/15/2022`

#### null : `09/14/2022`

#### Algorithms and Strings : `09/13/2022`

#### Strings : `09/12/2022`

#### Functions and Algorithms : `09/09/2022`

#### Practice with Functions : `09/08/2022`

#### More About Functions : `09/07/2022`

#### Errors and Debugging : `09/06/2022`

#### Functions : `09/02/2022`

#### Practice with Loops and Algorithms : `09/01/2022`

#### Algorithms : `08/31/2022`

#### Loops : `08/30/2022`

#### Arrays : `08/29/2022`

#### Compound Conditionals : `08/26/2022`

#### Conditional Expressions and Statements : `08/25/2022`

#### Operations on Variables : `08/24/2022`

#### Variables and Types : `08/23/2022`

#### Welcome to CS 124 : `08/22/2022`

# Practice with Strings

Java

Created By: Geoffrey Challen

/ Updated: `2022-08-11`

Welcome back!
Our next lesson is entirely focused on one problem: encryption.

We're going to modify the normal lesson flow.
We'll start with the homework problem *at the top*.
If you'd like to just go at on your own, go for it!
And, if you'd like a bit of help, we'll break it down piece-by-piece below.

Let's get to it!

Show how to complete the homework problem above. Feel free to cover multiple approaches!

## Rot-13 Part 0: Understanding the Problem

Let's break down this problem into smaller pieces, and spend a few moments just orienting ourselves and figuring out what to do.
We won't write test cases *yet*, and instead save them for the smaller pieces that we're about to create.

Provide an overview of our algorithm and what we need to do.
Discuss remapping each character.
**This explanation should be language-agnostic!**

Interactive Walkthrough

Click on an icon below to start!

## Rot-13 Part 1: Character Mapping

Now that we have a sense of what the different pieces are, let's look at one of the core challenges: remapping each character.
We'll also write some simple test cases for our helper method.

Implement and test character remapping.

Interactive Walkthrough

Click on an icon below to start!

## Rot-13 Part 2: Breaking Down the String

At this point we've identified how to remap individual characters.
Next we need to review how to break the input `String`

*into* individual characters.

Provide an overview of our algorithm and what we need to do.
Discuss remapping each character.

Interactive Walkthrough

Click on an icon below to start!

## Rot-13 Part 3: Putting it All Together

Now that we have our building blocks, let's integrate everything together!

Discuss integrating multiple methods together.
Probably not ideal, but it's what we'll do this time.

Interactive Walkthrough

Click on an icon below to start!

Show how to complete the homework problem above. Feel free to cover multiple approaches!

## Rotate Right

If you are enjoying `String`

s, rotation, and modular arithmetic, and haven't had enough yet—here is a practice problem that you might enjoy!

Show how to complete the homework problem above. Feel free to cover multiple approaches!

## More Practice

Need more practice? Head over to the practice page.