Recent Question/Assignment

ITECH1400 Fundamentals of Programming
Assignment 1 – Sonnets and Doublets
Overview
In this assignment you will have the opportunity to test your Python skills in exploring and manipulating text. Throughout the assignment you are expected to apply the principles of problem solving that we have already discussed in this course.
Timelines and Expectations
Percentage Value of Task: 20%
Due: 5 pm Friday, 30 August 2019 (week 7) Minimum time expectation: 20 hours
Learning Outcomes Assessed
The following course learning outcomes are assessed by completing this assessment:
Knowledge:
K1. Identify and use the correct syntax of a common programming language.
K2. Recall and use typical programming constructs to design and implement simple software solutions.
K4. Explain the importance of programming style concepts (documentation, mnemonic names, indentation).
Skills:
S1. Utilise pseudocode and/or algorithms as a major program design technique.
S2. Write and implement a solution algorithm using basic programming constructs.
S4. Describe program functionality based on analysis of given program code.
Application of knowledge and skills:
A1. Develop self-reliance and judgement in adapting algorithms to diverse contexts.
A2. Design and write program solutions to identified problems using accepted design constructs.
Assignment 1, 2019-17
Assessment Details
Part 1 Sonnets - Background
Sonnets are poems which have the following form (Shakespeare's sonnet 116):
Let me not to the marriage of true minds (A) Admit impediments, love is not love (B) Which alters when it alteration finds, (A)
Or bends with the remover to remove. (B)
O no, it is an ever fixèd mark (C)
That looks on tempests and is never shaken; (D) It is the star to every wand'ring bark, (C)
Whose worth's unknown although his height be taken. (D)
Love's not time's fool, though rosy lips and cheeks (E) Within his bending sickle's compass come, (F) Love alters not with his brief hours and weeks, (E) But bears it out even to the edge of doom: (F)
If this be error and upon me proved, (G)
I never writ, nor no man ever loved. (G)
There are 3 quatrains (group of 4 lines) and a couplet (2 lines) making a total of 14 lines. The rhyming pattern is shown with the letters at the end of each line.
Each line is in iambic pentameter (weak-strong). A standard line of iambic pentameter is five iambic feet in a row: da DUM da DUM da DUM da DUM da DUM
but SOFT | what LIGHT | through YON | der WIN | dow BREAKS
Shakespeare has written some 154 sonnets together with many plays – doubt (Craig & Kinney, 2009; Holmes & Kardos, 2003; James & Rubinstein, 2006; Jarmusch et al., 2013; Rubbo et al., 2008) exists as to whether, the person known to be called Shakespeare, was the actual author of all the work presented under this name.
There is a considerable prize still to be claimed by anyone who can prove or disprove this .
Your Task – explore possible authorship
Even though we have just become familiar with Python, there are three very simple tests that we can apply to authorship - and we have the means, with lists and strings in Python, to implement them:
1. Count the occurrences of each letter4 in the text.
2. Print the number of one-letter, two-letter, three-letter words and so on.
3. Print the number of occurrences of each different word in the text.
The first pass might be to see if there is consistency across all the sonnets.
Use the text from the sonnets and apply these three metrics. (We shall leave the actual plan and algorithm up to you – discuss it with your lecturer/tutor if you wish)
Three possible authors who might have written under Shakespeare’s name are: Francis Bacon, Ben Jonson and Christopher Marlowe. Their works are readily available online.
Part 2: Doublets
Doublets (or word ladders) are often found in magazines and newspapers together with cryptic crosswords and other puzzles.
The idea is very simple: you might be given two words – often they are antonyms – and your task is to create a ladder of words with these two words at the top and bottom of the ladder. For example:
HEAD
HEAL
TEAL
TELL
TALL
TAIL

4 You should find that the letter ‘e’ is the most common letter
(There is a novel called ‘Gadsby’ https://www.gutenberg.org/ebooks/47342
It is a complete novel which does not have one single letter ‘e’ in it – yet, is quite readable.)
The aim is to make the number of words joining HEAD and TAIL as few as possible.
In this assignment you are given a file of some 5700 words together with the pairs of words below (to use as a start and end); you are asked to use your Python skills to find the fewest words that will link them.
Use the following pairs of words:
i. FLOUR-BREAD ii. CHAOS-PEACE iii. TEARS-SMILE iv. WITCH-FAIRY v. BLACK-WHITE vi. SLEEP-DREAM vii. RIVER-SHORE
Then, choose 3 different pairs of words from the file and use these as well.
Submission
You must supply your program source code files and your documentation as a single zip file named as follows:
YOUR-NAME _ YOUR-STUDENT-ID .zip
e.g. Aravind_ADIGA_30331237
You may supply your word processed documentation in either Microsoft Word or
LibreOffice/OpenOffice formats only – no proprietary Mac specific formats, please.
Assignments will be marked on the basis of fulfilment of the requirements and the quality of the work. In addition to the marking criteria, marks may be deducted for failure to comply with the assignment requirements, including (but not limited to):
• Incomplete implementation(s), and
• Incomplete submissions (e.g. missing files), and
• Poor spelling and grammar.
You might be asked to demonstrate and explain your work.
Submit your assignment (all program source files plus your word processed document) to the Assignment 1 Upload location on Moodle before the deadline of Friday of week 7 at 5 pm.
Marking Criteria/Rubric
Sonnets Item Mark
Algorithm in pseudo-code 10
Implementation of algorithm into Python code 10
Demonstration that code works correctly using representative samples 15
Correct Output and Discussion 10
Doublets
Algorithm in pseudo-code 10
Implementation of algorithm into Python code 10
Demonstration that code works correctly using representative samples 15
Correct Output and Discussion 10
Report 10
TOTAL 100
FINAL MARK /20
Feedback
Feedback will be provided in lectures and labs as well as on Moodle
Plagiarism:
Plagiarism is the presentation of the expressed thought or work of another person as though it is one's own without properly acknowledging that person. You must not allow other students to copy your work and must take care to safeguard against this happening. More information about the plagiarism policy and procedure for the university can be found at http://federation.edu.au/students/learning-andstudy/online-help-with/plagiarism.
This is an INDIVIDUAL ASSIGNMENT – and while you may discuss it with your fellow students, you must not share designs or code or you will be in breach of the university plagiarism rules; your code must be your own.
References:
Craig, D. H., & Kinney, A. F. (2009). Shakespeare, computers, and the mystery of authorship. Cambridge: Cambridge University Press.
Holmes, D. I., & Kardos, J. (2003). Who Was the Author? An Introduction to Stylometry. CHANCE, 16(2), 5-8. doi:10.1080/09332480.2003.10554842
James, B., & Rubinstein, W. D. W. D. (2006). The truth will out : unmasking the real Shakespeare (1st U.S. ed.): Regan.
Jarmusch, J., Thomas, J., Brundig, R., Swinton, T., Wasikowska, M., Hiddleston, T., . . . Sony Pictures Home Entertainment (Firm). (2013). Only lovers left alive.
Rubbo, M., St. Vincent Welch, J., Gordon, C., Helpful Eye (Firm), Chili Films., WGBH Educational Foundation., . . . PBS Home Video. (2008). Much ado about something [videorecording]. Alexandria, VA: PBS Home Video,.