Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
Assignment – Encrypted Information
Overview
? The objective of the assignment is to submit an interactive Python program that allows the
user to:
– Encrypt/decrypt messages using a Caesar cipher.
– Input the message to be encrypted/decrypted.
– Specify the rotation used by the Caesar cipher.
– Extract statistics about the messages, such as letter frequency, maximum word length.
– Automate the identification of the rotation needed to decipher an encrypted message.
? Your Python program should be accompanied by a short, 1-2 page report, submitted as a
.pdf file. This should discuss your implementation and any design choices. For example, why
you chose to use a specific data structure or how you improved the re-usability of your code.
? 100 marks in total are available:
– 85 marks for the Python program (includes 5 marks for general Python implementation)
– 15 marks for the report
? The deadline is 13:00 on Friday 11th December (GMT). You must upload your
assignment including the program (.py), report (.pdf) and any additional files generated by
or needed to run your program (e.g. .txt files) to Blackboard. You can find the submission
point under Assessment, Submission and Feedback.
? You must show which part of the assignment each section of your code answers by adding
comments showing part and sub-section (e.g. Part 1.1) using the following format :
# PART 1.1 Comment here ...
Note that the order that the answers to the questions appear in the code may be different to
the order they appear in this document so it is important to indicate to the marker where
you have attempted to answer each question.
Some blocks of the code may include the answer multiple questions. Make sure you indicate
this in your comments where applicable. Your comments should tell the reader what your
code does, in addition to indicating which question you are answering.
? This is an individual project. You may discuss the creative approaches to solve your assignment
with each other, but you must work individually on all of the programming. We will
be checking for plagiarism!
1
Helpful hints and suggestions
? Complete all of the exercise sheets first - they have been designed to prepare you for this
assignment.
? You should spend plenty of time planning the flow of your program before you start programming.
Look back at previous exercise sheets to see how to approach larger problems by
breaking them down into smaller ones.
? Remember to think about the readability and reusability of your code. Some questions
you should ask yourself:
– Have I named things sensibly? Could someone pick up my code and understand it?
– Am I repeating lots of code? Can I reuse any?
– Can I simplify the layout of my code to make it more readable?
? You will gain marks for:
– Types: Appropriate use of data types and data structures.
– Comments: Concise, clear and useful comments.
– Naming: Appropriate variable and function names
– Working code: Does the code do what it is supposed to? READ THE QUESTIONS
CAREFULLY to check. Is the program robust, i.e., does it deal correctly with wrong
inputs (user/program interaction).
– Concise, efficient code e.g. use of functions, list comprehensions, imported functions
from Python packages.
– More advanced programming techniques such as use of classes and user-defined libraries
stored as separate .py files.
– Report: Informative report, which explains your thought process and analyses the choices
you made in your code design. You must reference any external code or ideas used.
? Finally, don’t forget to ask for help! You will be able to ask your TA for help and advice
during the weekly drop-in sessions and tutorials.