CS 111

Fall 2016

Introduction to Computer Science

HW04: Caesar cipher

Due: Monday, 09/26 at 23:55

If you are pair programming, do NOT start coding without your partner. You should read the assignment first, feel free to think about it, but do not actually start coding. Also, please read pair programming guidelines before your first meeting.

The Caesar cipher is a very simple way of creating coded messages. The original cipher, attributed to Julius Caesar, involves shifting every letter in a plaintext message 3 positions further down in the alphabet to get the corresponding ciphertext message. For example, a Q in the plaintext message would be shifted by three postions to become a T in the ciphertext. A plaintext message of "YAK AND ZEBRA" would be transformed to the ciphertext message "BDN DQG CHEUD". Note that letters near the end of the alphabet wrap around to the beginning (e.g., Y + 3 = B). You can, of course, perform a Caesar cipher transformation using other values than 3 for the shift. "YAK AND ZEBRA" with a shift of 4, for example, becomes "CEO ERH DIFVE".

In this assignment, you will write a function that implements the Caesar cipher. This will give you some practice encapsulating a collection of operations into a Python function.

Your task

Write a program that:

Your caesar function should look like this:

def caesar(shift, plaintext): '''Returns ciphertext obtained by transforming every letter in the plaintext by a Caesar cipher by the specified shift. Non-letter characters should remain unchanged in the ciphertext.''' [Your code goes here] return [something]

A typical session with your completed program might look like this:


prompt$ python3 caesar.py
What is your plaintext? follow the elk
What shift do you want to use? 3
Your ciphertext is: iroorz wkh hon
prompt$

A little help

Start early, have fun, and ask questions.