Prepared by: Dr Nandini Sidnal Moderated by: Dr Ghassan Kbar Oct, 2018
Assessment Details and Submission Guidelines
MN404 – T1 2020
Fundamentals of Operating Systems and Programming
End to End Encryption – What’s App
Purpose of theassessment (withULO Mapping)
This assignment assesses the following Unit Learning Outcomes; students should beable to demonstrate their achievements in them:a. Describe the role of Operating Systems (OS) and its different subsystems incontrolling computer hardwareb. Demonstrate competency in the use of a command line interface to operate andperform simple OS administrationc. Apply principles of abstraction and problem solving in an object-orientedprogramming languaged. Apply knowledge of programming constructs in developing computer programse. Create programs based on incremental development processes of designing,coding, testing and debugging.
30% of the total assessments
Week 10 laboratory class – To submit the video presentation of the algorithm.Week 11 laboratory class – To submit video of the program Demonstration along withthe document
• All work must be submitted on Moodle by the due date along with a title Page.• The assignment must be in MS Word format, 1.5 spacing, 11-pt Calibri (Body) fontand 2.54 cm margins on all four sides of your page with appropriate sectionheadings.• Reference sources must be cited in the text of the report, and listed appropriatelyat the end in a reference list using IEEE referencing style.
• If an extension of time to submit work is required, a Special ConsiderationApplication must be submitted directly through AMS. You must submit thisapplication within three working days of the assessment due date. Furtherinformation is available at:http://www.mit.edu.au/about-mit/institute-publications/policies-proceduresand-guidelines/specialconsiderationdeferment
• Academic Misconduct is a serious offence. Depending on the seriousness of thecase, penalties can vary from a written warning or zero marks to exclusion fromthe course or rescinding the degree. Students should make themselves familiarwith the full policy and procedure available at: http://www.mit.edu.au/aboutmit/institute-publications/policies-procedures-and-guidelines/PlagiarismAcademic-Misconduct-Policy-Procedure. For further information, please refer tothe Academic Integrity Section in your Unit Description.
MN404 Fundamentals of Operating Systems and Programming Page 2 of 6Prepared by: Dr Nandini Sidnal Moderated by: Dr Ajay Sharma May, 2020Academic Integrity:For assignments, students are encouraged to consult each other, the lecturer, tutor or anyoneelse for that matter. However, the assistance offered or accepted should not go beyond a discussionof the problem and a sketch of a solution. But in your assignment, do not use any written materialfrom the discussion/website/book. If you can reconstruct the discussion and complete the solution onyour own, then you have learned the material (and that is the objective of this course!).Assignment 2 SpecificationWith the development of this application and the course, it gives the students a help tounderstand the value of encryption and decryption in the technical elements. Actually, it giveslearning to, how web application uses encryption and their need to implement it. The assignmentenables the student not only to learn the concept and importance of End to End encryption but alsoto implement it for real-time communications. It enables the students to apply principles ofabstraction and problem solving in an object-oriented programming language Further it empowersthe students to apply knowledge of programming constructs in developing end to end encryptionand decryption for real time communications.Assignment description:End-to-end encryption is a system of communication where the only people who can read themessages are the people communicating. No eavesdropper can access the cryptographic keysneeded to decrypt the conversation—not even a company that runs the messaging service.End-to-end encryption transforms messages into unintelligible chunks of data as soon as auser presses send. From there, the message isn’t reconstituted into something understandableuntil it reaches the receiver’s device. For example, the chats using WhatsApp communicationsare not stored in plaintext on WhatsApp’s servers. Nor is the company able to decrypt users’ messagesto access them since it does not hold the encryption keys. So, WhatsApp will be unable to becompelled to hand over messaging data — even if served with a warrant by authorities demandingaccess. Thus, providing safe communications.In this assignment the students shall code programs for encryption and decryption based onincremental development processes of designing, coding, testing and debugging. This assignmentinvolves the following tasks:1) To Design and develop an algorithm or a detailed flow chart to encrypt and decrypt themessages that are being communicated.a) The message shall constitute all the printable characters on the keyboard.b) Any encryption algorithm such as substitution, reverse cipher etc. may be used by thestudents.2) To convert the algorithm to a python program and test for various cases.3) Analyse and report the performance of the code written in terms of time taken to encryptand decrypt and for the accuracy of the message communicated.4) A GUI (optional) may be designed to feed in and display the encrypted and decryptedmessages.MN404 Fundamentals of Operating Systems and Programming Page 3 of 6Prepared by: Dr Nandini Sidnal Moderated by: Dr Ajay Sharma May, 20205) The program has to display the encrypted messages along with the time to encrypt anddecrypt the messages.6) The program should show the successful encryption and decryption for at least ten (10)messages being communicated.The assignment report has to include the following sections:• User Requirements:o Include all the user (assignment) requirements here.o For example: the input message, key to encrypt, encryption method, time required forencryption and decryption, encrypted msg to be displayed etc.• AnalysisAnalysis often requires the programmer to learn some things about the problem domainand that information the user will have to provide. Also, it should specify what the programis going to do. In this case the problem domain would be the logic used to encrypt anddecrypt as per the algorithm. The user shall provide the messages to be communicated.• Design:The design phase has to describe how the program is going to do the desired task. Thisusually involves writing an algorithm or a flow chart in fact, algorithms are more oftenwritten in a somewhat stylized version of English called pseudocode.Although there are no precise rules governing the syntax of pseudocode, in your pseudocodeyou should strive to describe the essential elements of the program in a clear and concisemanner. Note that this pseudocode closely resembles Python code, so the transition to thecoding step should be straightforward. This phase has to be completed and recorded in aform of 4-5 min video explaining the logic of the algorithm and has to be uploaded by week10.• Implementation Phase:In this phase the complete code in python without any syntax and semantic errors must becompleted. The complete code with proper indentation has to be pasted here along withsample inputs and outputs.• Testing: Only thorough testing can build confidence that a program is working correctly.Testing is a deliberate process that requires some planning and discipline on theprogrammer’s part. It would be much easier to turn the program in after the first successfulrun to meet a deadline or to move on to the next assignment. But your grade, your job, orpeople’s lives might be affected by the slipshod testing of software.Once all the errors are debugged, set of all possible inputs are to be provided. Eventhough the range of the input numbers on a computer is finite, testing all of the possiblecombinations of inputs would be impractical. So, the challenge is to find a smaller set ofinputs, called a test suite, from which we can conclude that the program will likely be correctfor all inputs. The number and type of input samples have to cover all possible cases ofvalidity checks of encryption and decryption.MN404 Fundamentals of Operating Systems and Programming Page 4 of 6Prepared by: Dr Nandini Sidnal Moderated by: Dr Ajay Sharma May, 2020In summary:The program has to perform the following:• Read the text to be communicated along with date of birth that could be used as a key toencrypt and decrypt the messages. Add all digits of your date of birth to compute thedistance to be used for encryption and decryption.• Display both the encrypted and decrypted text messages.Submission Guidelines:Your assignment should be completed according to the General Guidelines for Presentationof academic work. Your submission should contain the following:The assignment Word file that will be submitted shall include:a) Links to 2 videos to be included in the word document along with following details:i) Video 1 – 3 min explaining the logic used in the algorithm to encrypt and decrypt and keygeneration.ii) Video 2- 4 min demonstration of the program along with demonstration of various testcases of the programb) Algorithm/flow chartc) Complete program in Python without syntax errors (cut and paste the complete code).d) Must include appropriate and sufficient comments in the source code.e) Screen shots of initial compilation results with syntax errors.f) Troubleshooting the syntax errorsg) Sufficient screen shots showing all possible outputs obtained. The file name must have yourstudent ID as part of its name.1) Documentation should follow the standard submission guidelines as below:a) Front page – indicating your name and student ID, teaching staff (Lecturer’s and tutor’s name),a statement of what has been completed and acknowledgement of the names of all assistedyou.b) List of references used (IEEE style) – Reference sources must be cited in the text of the report,and listed appropriately at the end in a reference list. Only IEEE referencing style is acceptablefor this assignment.2) The assignment must be submitted using Moodle. The page numbers of the assignment must beclear on each page. The report document must be checked for similarity through Moodle/Turnitinwhile submitting it. Please refer to the study skills unit staff (CoL)if you need further assistance.3) A video not more than 3 min of explaining the algorithm has to be uploaded before week 10 onMoodle.4) Another video (not more than 4 min) The demonstration of the working of the completeassignment has to uploaded along with assignment word file before week11.Marking Guide
Sections to beincluded in theAssignmnet
Description of the sections
Submission Part A
MN404 Fundamentals of Operating Systems and Programming Page 5 of 6Prepared by: Dr Nandini Sidnal Moderated by: Dr Ajay Sharma May, 2020
User requirementsAnalysis PhaseDesign PhaseAlgorithm orFlowchartVideo linkTo be submittedbefore week 10
To cover all requirements mentioned in theassignment along with any relevant assumptionsmadeVideo – 3 min explaining the logic used in thealgorithm to encrypt and decrypt and keygeneration.The link to watch the video to be included in theword file that has the user requirements, analysisand algorithm. The name of the word file of theassignment to have (MIT XXXXXX Part A.doc)
5 Marks5 Marks10 Marks10 Marks
Submission Part BImplementationPhaseProgramTesting PhaseLink to VideoTo be submittedbefore Friday –week 11
Error free, well commented Python program forthe algorithm without any discrepancy betweenthe program and the algorithm.4 min demonstration of the program along withdemonstration of various test cases of theprogram.The link to watch the video to be included in theword file that has the complete python codewith test cases considered. The name of theword file of the assignment to have (MIT XXXXXXPart B.doc)
10Marks10Marks(Relevant andcritical 5 testcases)5Marks
Minimum of 4 references used along with intextcitation
Early submission (algorithm+ program+ 2 videolinks in week 10)
MN404 Fundamentals of Operating Systems and Programming Page 6 of 6Prepared by: Dr Nandini Sidnal Moderated by: Dr Ajay Sharma May, 2020Rubrics
Good ( C )
Hasprovidedcomplete setof userrequirements
Hasprovidedall of theuserrequirements
Hasprovidedmost of theuserrequirements
Has providedsome userrequirements
Has not providedthe requirements
Analysis Phase(Analysis of theProblem domain, allpossible inputs andoutcomes of theprogram areidentified andpresented)
Analysis iscompleteand optimal
Analysiscarriedout is verygood
Analysiscarried out ismoderate
Sufficientanalysis is notcarried out
No analysis iscarried out
Design Phase(The algorithm/Flowchart)Logic used in thealgorithm/flowchart with highdegree of clarity.Considered allpossible code flows.
Optimalalgorithmwith allpossiblecode flowsareconsidered
Very goodlogic andallrequiredcode flowsareconsidered
Good logicand somecode flowsareconsidered
Some logic andfew code flowsare considered.
Relevant Logic notconsidered.
Good codebut with notcompletesolution
Poor coding andincompletesolution
All possibletest casesconsidered.Unit andintegratedtest casesconsidered
Most ofthe testcasesconsidered.Integratedcases only
Consideredtest casesare notadequate
Few test casesare considered
No test cases
Exceptionaldemonstration of thecompleteprogramlogic andtest cases
Very goodDemonstration ofthecompleteprogramlogic andtest cases
Gooddemonstration of theprogramwith sometest cases
The post Fundamentals of Operating Systems and Programming appeared first on My Assignment Online.