Reference no: EM132601974
ITECH1400 Foundations of Programming - Federation University
Assignment - Caesar Ciphers & Turtle Graphics
Learning Outcome 1: Identify and use the correct syntax of a common programming language.
Learning Outcome 2: Recall and use typical programming constructs to design and implement simple software solutions.
Learning Outcome 4: Explain the importance of programming style concepts (documentation, mnemonic names, indentation).
Skills
1. Utilise pseudocode and/or algorithms as a major program design technique. S2. Write and implement a solution algorithm using basic programming constructs.
2. Describe program functionality based on analysis of given program code.
Application of knowledge and skills
1. Develop self-reliance and judgement in adapting algorithms to diverse contexts.
2. Design and write program solutions to identified problems using accepted design constructs.
Part one - Caesar Ciphers
In this part you are to develop a Python application that will encrypt text from a file and also, given the key, decrypt text from a file. We shall use an easy cipher.
Shift ciphers, also known as Caesar ciphers, are obtained as follows:

Now the word COAL becomes FRDO - in this case, we have encrypted using a key of 3.
In the encryption mode, your application should ask the user for a filename which contains the plain text and the key to use for encryption. The decryption process is similar, but this time, the filename contains the encrypted text and when we give the key your application should return the original text (the arrows, shown above, go the other way).
Ideally your application should be able to handle single words, sentences, paragraphs and even whole books2.
You need to demonstrate your application and show that it is working correctly by using tests that you design.
Part two - Your Name in Turtle Graphics
Turtle graphics is built into the Python language and there are many resources freely available3. Here are some sample images:

The requirement here is that you use the Turtle graphics to write your name - the name that appears on your student ID card. (If you have any queries ask your lecturer/tutor.)
Although you must use Python 3 in this assignment, you have creative licence in doing this application - if you are unsure, please ask your lecturer/tutor.
It is suggested that you develop your code starting from pseudo-code and then incrementally make it better. You are also asked to keep a journal; it is useful in confirming ownership of your work and, in case you don't reach your final goal it demonstrates your journey. The journal can consist of hand-written notes, diagrams, drawings, code-fragments, screen-shots and so on - put your journal in an Appendix - these pages are not counted in your report.
Attachment:- Foundations of Programming.rar