Lingjie's Drawing App Peer Review

by Lingjie Wang

27 Feb 2016

Jasmine’s drawing app is quite creative and beautiful. The program does have an entirely graphical user interface, and it allows the user to select between three modes of drawing planets, drawing stars and clearing screen. When in draw planets mode, the mode name and instructions are clearly displayed in the screen, and the user can click wherever in the screen to draw a planet with random fill color. When in draw stars mode, the mode name and instructions for dragging to draw lines and pressing different keys to change line color and size are also clearly displayed. And when the user clicks the “clear screen” button, the drawing on screen disappears. Then if the user clicks “draw stars” button again, the mode will be successfully changed to draw stars. I’m not sure if it also works for clicking “draw planets” button after clicking “clear screen” button, since it seemed to work for a few times but sometimes I still needed to click “Run” to re-run the program for re-starting drawing. I think she’s done a great job generally and carefully met all the requirements for the app, and the program is fairly flexible for the user to draw different shapes with different colors and sizes. What I love her program most actually is her apparent careful choice of colors. Whichever mode and color the user chooses to draw, the whole picture is beautiful as the colors are harmonious.

For the code, Jasmine also has done a good job. The program has 5 modules including the main module, and she also has utilized several functions that can be applied to different situations easily. Also, she’s created several turtle objects to finish different tasks such as drawing background, drawing planet and changing colors and sizes, which helps to increase readability. Also, I think she’s made great use of the screen object, particularly the myscreen.tracer() and myscreen.update(), which have efficiently improved the running velocity of the program. For instance, each time the user clicks the screen under draw planets mode, the planet will show up immediately as the turtle drawing it does not need to show the whole process of drawing a new circle. Also, each function is well-commented so that its purpose is clear, and the modules are well-organized. I’ve also noticed her reflection about the planets still showing on the screen when switched to the draw stars mode, and I think this also happens the other way around. I’m guessing if it’s related to the myscreen.onclick(f1) when f1 also contains a myscreen.onclick(f2), but I’m also not sure.

For the milestones, Jasmine has clearly listed all her initial milestones and final milestones, and she has achieved her goals. Her final milestones involve more than her initial ones, and apparently her final program includes more and better work than described in the milestones, such as the .onkey() linked to both functions for changing colors and functions for changing sizes.

Compared with my program, Jasmine’s has more modules and functions to increase readability, and I believe the pictures drawn from her program are prettier than mine as I did not pay specific attention to the whole harmony of colors and shapes. Also, her program’s structure of changing mode is different from mine, as I kept break the link between clicky functions and relink while she has far less .onclick(). I believe both can work and she can eventually make her program run perfectly. I think she really pushed herself far (which can be seen from the use of .tracer() and .update() for screen object) and I’ve learned a lot from her work. We both did a great job!

Lingjie Wang is a first year master student studying Statistics and Operations Research Find Lingjie Wang on Twitter, Github, and on the web.