辅导案例-ICP2036 A2
ICP2036 A2 - TESSELLATION Page 1 of 6 SCHOOL OF COMPUTER SCIENCE Module: ICP2036 Department: School of Computer Science Module credit: 10 Organiser: Prof. Jonathan C. Roberts Assessment 2 - Pattern tessellation creator Description In this assessment you will develop a Processing program that demonstrates tessellations. The tessellations must be determined from a smaller part that repeats. This part is named a tile, which then will be repeated over the view output. In our case, our input tile will be a grid, and the output will be a larger grid, which will then be displayed. Background Such tessellations are often known mathematically as Wallpaper Patterns. By changing the pattern within the Tile, and also adapting how the tiles are mapped onto the main grid, you can alter the final design. Simple patterns are created by regular mappings, while more complex patterns can be created by alternating the mappings. Tessellations can employ different mathematical and geometric transformations. In the examples in Figures 1,2 and 3 I use a simple Translate function to copy the points of the Tile. But other transformations can be used, such as mirror, rotate, translate-and-rotate, shift-and-scale, etc. In the 2D plane, mathematicians have discovered that there are 17 kinds of symmetry patterns (known as 17 wallpaper groups). The example in Figure 1 shows a 5x5 Tile, that is made from a binary grid 0’s and 1’s (showing a 4x4 set of 1’s). Figure 2 is another regular mapping, and shows a different pattern. It also is possible to map different coloured Tiles (see Figure 3), use several Tiles, even non regular mappings. (Note, in these examples, I have added a thin white line between the rectangles, so to make it clear that they are individual squares – but in your output, you may wish to remove this line!) Contribution of this assessment This assessment contributes to 30% of the overall module mark. Tasks & Requirements (in summary) 1) You will write a program that will implement a clearly written algorithm to make the patterns, it will use a suitable model (storing the data), it will have a suitable interface to allow the user to change and manipulate the tiles and patterns. Your program should be able to display several different patterns, controlled by the tiles. 2) You will write a report You will show that you have thought about the algorithm, planned and used at least one Critical Thinking Sheet with your report. And demonstrate that you have reflected over your work. 3) You will create a video (screen recording) of your program running ICP2036 A2 - TESSELLATION Page 2 of 6 SCHOOL OF COMPUTER SCIENCE Tasks & Requirements for the program Your program must have a Tile data structure (consisting of individual points), that is then mapped across the larger Grid data structure, that is then displayed to the user as a pattern on the screen. You will need to consider the size of the Tile, and the size of the output, and how you can provide the interaction. You will need to think how the small Tile is mapped onto the larger output display, and consider how to add colours. Your program should be interactive, such to allow the user to change the patterning on the tile; and control how it is repeated over the domain. You should explore different tessellation styles. You should explore the number of Tiles; perhaps have two tiles, and then alternate each tile to make repeating patterns. For example, Figure 4 shows different tile arrangements that may make some beautiful patterns. Explore how to make the patterns complex and beautiful. You should explore how to make a usable interface that will control the patterns. Think about colour, and how to make the tiles/output colourful. You should think carefully about implementation, and consider using the Model View Controller (MVC) pattern. • Where the View is the main screen that is tessellated with repeated tiles. • The Controller allows the tiles to be changed by the user. This could be that the user clicks on a small tile part to change its colour. Then a new pattern is generated. • The Model holding your data needs to both hold a Tile, and the whole Data. You could explore how to save the patterns to file. You could explore multiple tiles. You could investigate non rectangle tiles (e.g., equilateral triangles and regular hexagon tiles also can be used to create regular tessellations). You should think about: • Display and layout of the pattern • Efficiency of calculation • User interface controls, such as how the user determines the tile, how the mapping is made across the pattern • How to efficiently add colour, and enable colour to be re-coloured the tile is changed. • Different tessellations. ICP2036 A2 - TESSELLATION Page 3 of 6 SCHOOL OF COMPUTER SCIENCE Figure 1. Example output of a very simple tessellation program. Showing a 5x5 Tile, and a 500x500 output grid. The Tile has been tessellated using a regular tessellation strategy to fill the whole grid. Figure 2. By adapting the Tile, different patterns can be created. Figure 3. Colours could make it interesting. 5x5 Tile Output grid 500x500 points ICP2036 A2 - TESSELLATION Page 4 of 6 SCHOOL OF COMPUTER SCIENCE Figure 4. Example of some different mappings to arrange the tiles. Tasks & Requirements for the report Your program will have an accompanying brief report (about 2 or 3 pages). The brief report (in Word or pdf format) should include the following information: Description. • A description of what you have implemented, explain your algorithms and any key code discussed. An explanation of the functionality of your tool (it would be good to annotate your screen shot to help you describe the functionality). • At least one screen shot of your pattern. A critical reflection • You should reflect on what you have achieved (what works well, and what does not work so well). • The use of Critical Thinking Sheets were used, and how they were useful. • This must be a “balanced critical reflection” on your work. I.eg., discuss any limitations with your code and how you could overcome those limitations. Tasks & Requirements for the video Accompanying your implementation, you need to create a screen recording of your program running. It needs to show your code running from the start, and presents you making different patterns. Submission procedure (1) Code as a ZIP, that contains everything to run the program. (2) Code in a PDF file– that will go through TurnItIn. This is a concatenation of all your code into one pdf. (3) Report of your work (with sections above) (4) Scan of your critical reflection sheet(s). (5) Movie file of your program running, and showing your functionality. ICP2036 A2 - TESSELLATION Page 5 of 6 SCHOOL OF COMPUTER SCIENCE Plagiarism and Unfair Practice Plagiarised work will be given a mark of zero. Remember when you submit you agree to the standard agreement: This piece of work is a result of my own work except where it is a group assignment for which approved collaboration has been granted. Material from the work of others (from a book, a journal or the Web) used in this assignment has been acknowledged and quotations and paraphrasing suitably indicated. I appreciate that to imply that such work is mine, could lead to a nil mark, failing the module or being excluded from the University. I also testify that no substantial part of this work has been previously submitted for assessment. Late Submission Work submitted within one week of the stated deadline will be marked but the mark will be capped at 40%. A mark of 0% will be awarded for any work submitted 1 week after the deadline. For extensions, use Bangor’s extension request.
Marking Scheme Please remember that marks are provisional until they are confirmed by a board of examiners. The code, a pdf of all code, and report are to be uploaded to Blackboard by the deadline. If you use an archive, please only use ZIP. The marking will take into consideration the five tasks and completeness, correct use of Processing, correctness of code, method used (e.g. efficiency of method), beauty/neatness of code and critical discussion of such points in the report. Mark ranges: >80, exceptional Tessellation program. Clear demonstrable understanding use of Processing. Excellent design of the interface and the tool clearly demonstrates an exceptional understanding of Processing. Outstanding development of the tessellations and manipulation of the tile. Superb use of push/pop and exceptional use of colour scale. Overall an exceptional and well-designed tessellation program that demonstrates a wide range of functionality that includes an exceptional and well thought through User Interface that provides good interaction capability. The report is exceptional and provides a comprehensive and clear critical analysis of the work performed. An exemplar solution that could be used to demonstrate good practice of development to colleagues. >70, good implementation that demonstrates a good understanding of the tessellation challenge. It works well, and the user can change the values of the aggregation model. The report is comprehensive and makes a good critical analysis of the work. Overall a very good solution to this assignment. The program itself manipulates the tiles model well, adds comprehensive interaction capability and provides a well-structured report that includes a good critical analysis of the work provided. Overall a creative design and novel layout. >60, a good implementation that demonstrates a good understanding of the tessellation assessment. The code works effectively and the user can change the tile pattern, and some aspects of the output design. Some limitations may exist in the work, such as: maybe the program does not provide many different tessellation designs or the mappings are simple, however a good attempt made, and although there may be some limitations with the program a comprehensive report (with an excellent and well critiqued section) is included. ICP2036 A2 - TESSELLATION Page 6 of 6 SCHOOL OF COMPUTER SCIENCE > 50, appropriate demonstration of the challenge. Some attempt has been made to plot the tiles and some attempt has been made to make the system interactive. Maybe full interactive functionality is not provided, however the student demonstrates that they understand the processes required to achieve the assignment and understand some of the challenges and some of the issues in displaying the tessellated points. Even with these limitations the report is well presented, and their achievements are well criticised and discussed. Limitations to the work are clearly presented in the report and the student clearly understands what they have achieved and the limitations thereof. Overall, maybe some flaws, but a reasonable submission. >40, threshold performance. Demonstrates some understanding of commands and some idea of some of the tessellation and demonstrates that a simple tessellated set of points has been attempted. Little attempt has been made over making the plotting area interactive, and while the report is limited it does include some discussion of some of the issues, and provides a basic critique of the work submitted. <40 below threshold performance, with little demonstration of knowledge of the challenges. Little thought has been made over this assessment, and understanding is confused. Feedback details Description Timeframe Formative (On-going) Verbal Feedback – Verbal feedback will be available by request at each lab session. It is suggested that you keep a written note of this feedback to aid in your personal development. Instant Summative (Post Assessment) Written Feedback – Written feedback will be made available through blackboard. To access your written feedback see the comments section of your assignment submission. 3-4 weeks