IFB104 Building IT Systems

IFB104 Building IT SystemsSemester 2, 2019Assignment 1, Part B: Broken Tiles(4%, due 11:59pm Sunday, September 8th, end of Week 7)OverviewThis is the second part of a two-part assignment. This part is worth 4% of your final gradefor IFB104. Part A which preceded it was worth 21%. This part is intended as a last-minuteextension to the assignment, thereby testing the maintainability of your code from Part A andyour ability to work under time presssure. If you have a neat, clear solution to Part A youwill find completing Part B easy. For the whole assignment you will submit only one file,containing your combined solution to both Parts A and B, and you will receive one grade forthe whole 25% assignment.MotivationOne of the most common tasks in “Building IT Systems” is modifying some existing code.In practice, computer programs are written only once but are subsequently modified and extended many times during their operational lifetime. Code changes may be required in response to internal factors, such as the need to correct design flaws or coding errors, or external factors, such as changes in consumer requirements.A common situation is where some new feature must be added to an existing program. Thisis the scenario simulated in this part of the assignment. This task requires you to extend yoursolution to Part A of the assignment by adding an additional feature. It tests:• Your ability to work under time pressure; and• The quality and clarity of your code for Part A, because a well-written solution toPart A will make completing this part of the assignment easy.GoalIn Part A of this assignment you were required to develop a program which could follow instructions, encoded as a randomly-generated Python list, to draw a pattern of differentlyshaped tiles that precisely filled a rectangular area. However, one of the frustrations of “tessellation” using real ceramic tiles is that they can become cracked or broken, spoiling the pattern. In this part of the assignment you will simulate this annoying, but realistic, situation.Specifically:• For each of your four different types of tiles you must develop a “broken” version;and• You must draw a broken tile for any instruction in the pattern that ends with an ‘X’.To complete this additional task you must extend your solution to Part A. No additional Python template file is supplied for this part. As per Part A, your Part B solution must work forany randomly-generated pattern that can be returned by the provided function random_pattern.IFB104 Building IT SystemsSemester 2, 2019Illustrative exampleTo illustrate the requirement we’ll continue our example from the Part A instructions. Recallthat we developed a solution which drew four kinds of tiles celebrating the first Moon landing. To meet the extended requirements of Part B we therefore developed additional code todraw “broken” versions of the four tiles, each with multiple cracks and a large triangular section missing, exposing the grey surface underneath. (To save ourselves effort we used thesame Python code to deface all four tiles, but you can use a different pattern of cracks foreach tile type.)One of these “broken” tiles must be drawn in place of the corresponding intact tile for anyinstruction that ends with an ‘X’. For instance, consider the following data set, generated bycalling function random_pattern.[[‘C4’, ‘C5’, ‘O’],[‘J5’, ‘X’],[‘G7’, ‘H7’, ‘O’],[‘I1’, ‘J1’, ‘O’],[‘G3’, ‘X’],[‘D2’, ‘O’],[‘G6’, ‘O’],[‘I2’, ‘I3’, ‘O’],[‘I5’, ‘O’],[‘J2’, ‘O’],[‘F1’, ‘F2’, ‘O’],[‘B3’, ‘B4’, ‘O’],[‘J3’, ‘J4’, ‘X’],IFB104 Building IT SystemsSemester 2, 2019[‘E5’, ‘F5’, ‘E6’, ‘F6’, ‘O’],[‘H6’, ‘O’],[‘C1’, ‘X’],[‘E7’, ‘F7’, ‘X’],[‘D7’, ‘O’],[‘C3’, ‘O’],[‘B7’, ‘O’],[‘C6’, ‘D6’, ‘O’],[‘J6’, ‘O’],[‘A4’, ‘X’],[‘H3’, ‘O’],[‘I4’, ‘O’],[‘A6’, ‘O’],[‘B6’, ‘X’],[‘A1’, ‘X’],[‘A5’, ‘O’],[‘A2’, ‘X’],[‘J7’, ‘X’],[‘A3’, ‘O’],[‘E1’, ‘O’],[‘G4’, ‘H4’, ‘G5’, ‘H5’, ‘O’],[‘B5’, ‘O’],[‘E2’, ‘O’],[‘D3’, ‘E3’, ‘D4’, ‘E4’, ‘X’],[‘C2’, ‘O’],[‘C7’, ‘O’],[‘B1’, ‘B2’, ‘O’],[‘D1’, ‘O’],[‘F3’, ‘F4’, ‘O’],[‘A7’, ‘O’],[‘G1’, ‘H1’, ‘G2’, ‘H2’, ‘O’],[‘I6’, ‘I7’, ‘O’],[‘D5’, ‘O’]]In this case we have been very unlucky and 11 of our tiles are broken in the pattern generated, including one of each shape. For instance, the second tile in the pattern, which is a smallone at location J5, is broken. The tall tile at locations J3 and J4 is also broken, as is the widetile at locations E7 and F7. Also broken is the big tile spanning locations D3, E3, D4 and E4,and so on. The resulting pattern drawn on the grid is as shown overleaf in this case.IFB104 Building IT SystemsSemester 2, 2019Your task is to add code to your solution to “break” your tiles from Part A in a similar way,whenever they are marked with an ‘X’. (This may seem heartbreaking given the effort youhave already expended drawing the tiles in Part A. Mercifully, the likelihood of breaking atile is set to only 8% in the provided code template, so your overall pattern won’t be too badly damaged in general.)Requirements and marking guideTo complete this task you are required to extend your Part A tessellation.py file byadding code so that as well as drawing the pattern of tiles and the legend, you show any tileswith an ‘X’ in their broken form.Your submitted solution for both Parts A and B will consist of a single Python file. YourPart B extension must satisfy the following criteria. Marks available are as shown.1. Drawing broken tiles (2%). All four types of tiles can be drawn in “broken” form,with a realistic image of damage on top of the original image. The damage to eachtile must be drawn using basic Turtle graphics shapes and must be of a reasonable degree of complexity, involving several lines and not, for instance, just one or twostraight lines. The “damage” must be obvious and must cover the majority of thetile’s surface.IFB104 Building IT SystemsSemester 2, 20192. Tiles marked with an ‘X’ are broken (2%). Your program must draw a broken version of a tile for every instruction that ends with an ‘X’. All other tiles (those endingwith an ‘O’) must be drawn in their unbroken form.You must complete the assignment using basic Turtle graphics and maths functions only.You may not import any additional modules or files into your program other than those already included in the given tessellation.py template. In particular, you may not useany image files in your solution.Development hints• It should be possible to complete this task merely by adding code to your existing solution, with little or no change to the code you have already completed. In particular,the “damage” to your tiles can be drawn on top of the original image.• If you are unable to complete the whole task, just submit whatever part you can getworking. You will receive partial marks for incomplete solutions. Try to ensure thatyour program runs when submitted, even if it is incomplete.PortabilityAn important aspect of software development is to ensure that your solution will work correctly on all computing platforms (or at least as many as possible). For this reason you mustcomplete the assignment using standard Turtle graphics, random number and mathsfunctions only. You may not import any additional modules or files into your program otherthan those already imported by the given template file. In particular, you may not import anyimage files to help create your drawings or use non-standard image processing modules suchas Pillow/PIL.Security warning and plagiarism noticeThis is an individual assessment item. All files submitted will be subjected to software plagiarism analysis using the MoSS system (http://theory.stanford.edu/~aiken/moss/). Seriousviolations of the university’s policies regarding plagiarism will be forwarded to the Scienceand Engineering Faculty’s Academic Misconduct Committee for formal prosecution.As per QUT rules, you are not permitted to copy or share solutions to individual assessmentitems. In serious plagiarism cases SEF’s Academic Misconduct Committee prosecutes boththe copier and the original author equally. It is your responsibility to keep your solution secure. In particular, you must not make your solution visible online via cloud-based codedevelopment platforms such as GitHub. Note that free accounts for such platforms areusually public. If you wish to use such a resource, do so only if you are certain you have aprivate repository that cannot be seen by anyone else. For instance, university students canapply for a free private repository in GitHub to keep their assignments secure(https://education.github.com/pack). However, we recommend that the best way to avoid being prosecuted for plagiarism is to keep your work well away from the Internet!IFB104 Building IT SystemsSemester 2, 2019DeliverableYou must develop your solution by completing and submitting the provided Python 3 filetessellation.py as follows.1. Complete the “statement” at the beginning of the Python file to confirm that this isyour own individual work by inserting your name and student number in the placesindicated. We will assume that submissions without a completed statement are notyour own work!2. Complete your solution by developing Python code to replace the dummy tessellate function. You must complete your solution using only the standard Python 3modules already imported by the provided template. In particular, you must not useany Python modules that must be downloaded and installed separately because themarkers will not have access to these modules. Furthermore, you may not import anyimage files into your solution; the entire image must be drawn using Turtle graphicsdrawing primitives.3. Submit a single Python file containing your solution for marking. Do not submit multiple files. Only a single file will be accepted, so you cannot accompany your solutionwith other files or pre-defined images. Do not submit any other files! Submit onlya single Python 3 file!Apart from working correctly your program code must be well-presented and easy to understand, thanks to (sparse) commenting that explains the purpose of significant code segmentsand helpful choices of variable and function names. Professional presentation of your codewill be taken into account when marking this assignment.If you are unable to solve the whole problem, submit whatever parts you can get working.You will receive partial marks for incomplete solutions.How to submit your solutionA link is available on Blackboard under Assessment for uploading your solution file beforethe deadline (11:59pm Sunday, September 8th, end of Week 7). You can submit as manydrafts of your solution as you like. You are strongly encouraged to submit draft solutions before the deadline as insurance against computer or network failures. If you are unsure whether or not you have successfully uploaded your file, upload it again!Students who encounter problems uploading their Python files to Blackboard should contactthe IT Helpdesk (ithelpdesk@qut.edu.au; 3138 4000) for assistance and advice. Teachingstaff will not answer email queries on the weekend the assignment is due, so ensure that youhave successfully uploaded at least one solution by close-of-business on Friday, September6th.
Australian Expert Writers


Recent Completed and delivered Papers

# Topic title Subject Area Academic Level Pages delivered
Writer's choice
1 hour 32 min
Wise Approach to
2 hours 19 min
1980's and 1990
2 hours 20 min
pick the best topic
2 hours 27 min
finance for leisure
2 hours 36 min