ANUC1110 – Semester 1 – 2018 Assignment 2
1
ANUC1110-Introduction to Software Systems
Assignment 2- Semester 1 – 2018
Due date: 7:00pm, 29 May 2018
This assignment will count for 15% of the final grade. Below you will find the
specifications.
Instructions:
• This assignment must be done in groups of two.
• Your report must include Assignment Cover Sheet providing the details of this
assignment including student IDs. The report submission includes an electronic
copy uploaded to Wattle and a hard copy handed in to the teacher during the
lecture time in week 14 (29 / 05 / 2018).
• For the program, you are required to commit and push your works to your
created GitLab repo for each task completion. Details of the tasks are in the Mark
distributions sections.
• Late submission of assessment tasks without an extension are penalised at the
rate of 10% of the possible marks available per working day or part thereof. Late
submission of assessment tasks is not accepted after 10 working days after the
due date, or on or after the date specified in the course outline for the return of
the assessment item.
• Plagiarism will attract academic penalties in accordance with the ANU guidelines.
Good luck and enjoy the time you will spend on this assignment
ANUC1110 – Semester 1 – 2018 Assignment 2
2
General specifications:
Students are expected to demonstrate their understanding on the principles of
software decomposition by creating multiple classes and applying complicated data
structures such as Collections and relevant algorithms completion of the Caesar
Cipher Creator.
You are required to:
1) Log in GitLab, create a project named: yourname-assignment2.
2) Set the Visibility Level as Private and then add the teacher, Ray Lau
(u4561496) and Yujia Zhang (u6075459), as Reporter.
3) Open Eclipse, import the Anuc1110-Assignment2 project from your forked
Anuc1110-Assignment 2 project.
4) In Eclipse, create a JavaFx project named Caesar Cipher Creator.
Program specifications:
Caesar cipher is one of the simplest encryption techinques. It was first used by
Julius Casear, who used an alphabet with left shift of three.
(Source: https://en.wikipedia.org/wiki/Caesar_cipher)
For this assignment, you are required to create a Caesar Ciphar Creator by
using the encryption/ decryption principle.
https://en.wikipedia.org/wiki/Caesar_cipher
ANUC1110 – Semester 1 – 2018 Assignment 2
3
➢ Start GUI:
➢ The user can enter the message in the input area. The program should
accept both upper and lower-case letters. The user can directly enter the
message or open it from a text file by clicking File -> Open.
Note: the user should be able to choose the file to open rather than using
absolute path.
ANUC1110 – Semester 1 – 2018 Assignment 2
4
➢ The user can select either Encryption or Decryption. The Encryption should
be selected by default.
➢ A key Number must be entered. This value is the shift amount. A shift of zero
means that no encryption / decryption is performed as each letter is replaced
by itself. A positive number means shift right during encryption and left during
decryption. A negative number means shift left during encryption and right
during decryption. Your program should verify that the key is a valid input
when the Start button is pressed. E.g. if a user enters nothing or non-integer
values, an error message should be displayed.
ANUC1110 – Semester 1 – 2018 Assignment 2
5
➢ All of the encrypted / decrypted message should be displayed in the output
area with the exact corresponding position. All alphabetic characters should
be replaced by their encrypted/decrypted equivalents. Any other characters
(including digits) should be left unmodified.
➢ Given an encrypted message without knowing the Key Number. The app is
able to crack the message and display the decrypted message in the output
area.
ANUC1110 – Semester 1 – 2018 Assignment 2
6
➢ The encrypted / decrypted message can be saved as a txt file.
Note: Again, the user should be able to choose the location to save the file
rather than using absolute path.
ANUC1110 – Semester 1 – 2018 Assignment 2
7
Mark allocations:
Task 1: (2 marks)
• Draw the GUI
Task 2: (16 marks)
• Encrypt / Decrypt the message with given Key Number when “Start” button is
pressed. Appropriate error message / warning should be displayed if Key
Number is empty. (3 marks)
• Crack the encrypted message correctly without using Key Number when the
“Crack” button is pressed. (8 marks)
• Open the file for encryption / decryption / crack. The user should be able to
choose the file to open rather than using absolute path. (2 marks)
• Save the encrypted / Decrypted message. The user should be able to choose
the location to save the file. (2 marks)
• Clear the content when” Clear” button is pressed (1 mark)
Overall: (12 marks)
1) GitLab works: (2 marks)
2) Implementations: (6 marks)
a) Using good data structure and relevant algorithm (2 marks)
b) Explanation on the design for the cracking task (2 marks).
c) The program style and quality of comments (1 mark)
d) Commit and push of your created Gitlab repo for each task completion, for
example, GUI creation, add event handler, … (1 mark)
3) Team work contributions. (1 mark)
a) Clearly demonstration of work load distribution and overall contribution in
percentage
4) Report quality (3 marks)
ANUC1110 – Semester 1 – 2018 Assignment 2
8
Bonus: (5 marks)
1) Use your imagination and make the GUI fancier and nicer (2 marks)
2) Instead of crack the Caesar cipher, you can try to decode other types of cipher,
such as Vigenere Cipher and Modern Cipher (5 marks)
Assignment submissions:
Your submission needs to include the program via GitLab and a report that includes:
1) Assignment Cover Sheet (available on the courses Wattle site).
2) The report that details your project including:
a) Structure of your project and its classes.
b) Report of how each part of your project has been done. For example,
how each button is constructed, how to encrypt/ decrypt the message,
and how to crack the encrypted message without using Key Number.
c) Screen shots of the running program for each major function.
The report is required to be submitted on Wattle by the due date (7:00pm, 29 May
2018 ) and a hard copy of it needs to be handed in to the teacher on the due date in
the classroom. One report per group.
Note: Failed to submit the report (either the electronic or hard copy) will apply 5
mark deduction out of your possible assignment result.
3) If you have used external resources for your assignment, you have to cite the
source in both GUI and your report.