KotlinCS 124 LogoJava

Practice with Strings

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!

Rot-13 Part 0: Understanding the Problem
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.

// Breaking Down Rot-13

Rot-13 Part 1: Character Mapping
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.

// Remapping Each Character

Rot-13 Part 2: Breaking Down the String
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.

// Breaking a String Into Characters

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

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

// Putting it All Together

Rotate Right
Rotate Right

If you are enjoying Strings, rotation, and modular arithmetic, and haven’t had enough yet—here is a practice problem that you might enjoy!

CS People: Shafi Goldwasser
CS People: Shafi Goldwasser

Remarkably few women have won the Turing Award, the highest award given for contributions to computer science. (Often considered the Nobel Prize of computing.) Shafi Goldwasser is one of them.

She received the award in 2012 “for transformative work that laid the complexity-theoretic foundations for the science of cryptography and in the process pioneered new methods for efficient verification of mathematical proofs in complexity theory.” Her work underlies the foundations of our modern data society, including algorithms that you use every day when you chat, browse, shop, and engage online. Here’s a short (if somewhat poorly done) official video describing her contributions:

More Practice

Need more practice? Head over to the practice page.