python assignment


Follow strictly the specification.
No unnecessary user interaction
No spurious print statements (prints statements for debugging purposes should be removed/disabled or commented out).
Functions should be (unit) tested if at all possible. Try to write your functions in such way that they can be tested. For code which requires user input or produces screen output, test and document using screen shots.
Implementing bells and whistles will not earn you extra marks! They are merely for your own satisfaction and may to a minor degree help to compensate weaknesses of your program elsewhere. The more code you write the bigger are the chances of mistakes.
Program code should be compact, easy to read and with without graphical embellishments such as starry lines, lines of dashes or equality symbols. Modern IDEs are able to present you code based on its functional blocks by using code folding, syntax highlighting and functional indexing.

The project submission is due before 12:00 noon on the 31 Dec 2017.

Each team member should submit a document stating:

the name of the team they belong to and the names of other members of the team.
the name of the person nominated to submit your team’s project submission.
The roles you have taken on in the team indicating in few points what your major contributions were.
One nominated team member should submit:
A zipped project folder which includes the to run the program (core implementation) and all required additional modules. If you provide an alternative implementation of the program use a prefix main- on the module/file name that runs the program. All testing code should be included in the project folder.
Note, your alternative implementation must not replicate parts of the core implementation (use imports and shared modules between your program versions).
A separate hardcopy.pdf with all program code, evidence of testing and screen shots of your program in action. You could include a sales pitch to sell some of your features to the client but not exceeding half a A4 page.
Does your algorithm correctly solve the problem? In most of these exercises the algorithm has been described in the question, but not always in complete detail and some choices are left to you.
Does the code correctly implement the algorithm? Does your program produce the results expected? Remember to include tests and show how tests can be run.
Is the code syntactically correct? Is your program valid Python, regardless of whether it implements the algorithm?
Is the code beautiful or ugly? Is the implementation clear and efficient, or is it unclear and inefficient? Is the code well structured? Have you made good use of functions?


Visualisation? Not too much please …
by Frank Herrmann – Wednesday, 29 November 2017, 9:57 AM

I am worried about people putting too much emphasis on visualisation. This is not the point of this module and hence we will not be able to actually assess it (i.e. give you any marks for it).

The point of this module is basic python, algorithms and data. This is what you will be marked on. You will have noticed that I am talking a lot about data. Data is not good for human consumption. You have to turn it into information. You must lose data in this transformation due to the aspired to noise and irrelevance reduction. If you look at a chart – you do not see the data. You may see some patterns (generalisation) and you may compare charts with each other (comparison). This is the lazy way of data analysis (or information gathering) or the only way if you cannot think of anything else. The human brain attached to your eye is excellent at generalising and natural at filtering irrelevance.

Please do not expect your end users brain to help you. That is why we have given you a context (the letter from the client). Think what the end client would be interested in in terms of criminal activity and try to facilitate his/her interest by processing the data to answer questions and to provide the appropriate information. I can think of questions like:

Is the crime in my area worse than elsewhere
Which areas are similar in crime patterns
Which is ‘the best area’ nearby
Which is ‘the worse area’ nearby
I have children. What about drugs versus general crime
[I need drugs. Is there sufficient supply in this area]
What is the trend in criminal activity
We have done the histo(text) -> ordered and truncated set of (character, frequency) tuples chart in the first assessment. Why? The histogram of characters in written text is a good signature for the language this text is in. I.e., it can be used to detect which language the text is in for example for categorisation. The data, i.e. the text, is condensed to this information. You do not care much about your actual data, i.e. the text, but the information which language it is in may be important to you in a specific context.

You have done the strong_password(pw) -> int processing in the first assessment. Many have come up with a score – applying a set of criteria to the data, i.e. the password, and scoring for each of the criteria (maybe just true or false). Then they returned an index, i.e. a sum of weighted scores. This transformation turned data, i.e. the password, into a single number (measure of strength). One could have returned the tuple of scores, but it was decided to be irrelevant for the password strength and a single measure would be more appropriate for the context (of forcing an user to choose a strong password).

We will talk about hash functions, which turn a complex object into a simple integer for whatever reason. All our Python processing, turns a complex thing into a simpler thing that may be easier to comprehend or to deal with. Most of this processing is irrevocable. You cannot restore a password from its measure of strength or the text from its character frequency. Hence you discard data which is unnecessary for the questions you are trying to answer.

Whatever you make of this examples I give you here. Make sure you demonstrate the skills you should have acquired in this module so far. That is what we will be marking.


电子邮件地址不会被公开。 必填项已用*标注