PROGRAMMING BASICS
SPRING 2020
FINAL PROJECT: REFLECTIVE CODE + DESIGN CRITIQUE (20 points)
Due Sunday, April 19, by 11:59 PM
Upload to Blackboard with your single page application files
For the final project, you are asked to submit 1) a single-page application of your design, and 2) a reflective code + design critique of your submission. Your critique/reflection should address each of the following questions. Each student should submit a separate critique, regardless of group size.
1. (2 points) In your own words, explain what your single-page application is and how it works. Be specific. What kind of functionality does it have? How do your JavaScript code, HTML, and CSS interact with each other? Are there other assets (like data sets, images, etc.) that your project uses, and if so, what purpose do they serve?
2. (2 points) Draw a sketch of what you hoped your single-page application would look like, before you began working on it. Include that sketch. To what extent were you successful in achieving this vision? In what ways did your final submission deviate from that original vision?
3. (2 points) Adopt a neutral perspective, imagining you are a user viewing the project for the first time. What works well about the project, overall? What does not work well? Why?
4. (2 points) Reflect on the way you constructed the application. Does your application construction make sense, in terms of code structure? Do you think you used code patterns that were appropriate for the task at hand? Why or why not?
5. (2 points) Choose one functional code pattern in your project – such as a procedure for manipulating data, enabling interactivity, or any other functionality – and reflect on its construction. Your pattern may be general or specific. Why did you adopt this approach? Do you think your approach could have been modified to be achieved through code that is more elegant and/or efficient? Why do you think this?
6. (2 points) Choose one code pattern (it may be the same or different as the one you chose in the previous question), and show a different way of writing that pattern that achieves the same result. (This could be a selection of several lines of code that you then collapse into a single line of code, or vice versa, for example.) Compare your alternative code pattern with the original. Is your alternative more or less efficient than the original? Is it more or less elegant than the original? Why or why not?
7. (2 points) More generally, what are some alternative ways you might create this same application, using different code patterns? Are those alternatives “better” or “worse” than your chosen approach, from a design perspective? Justify your response.
PROGRAMMING BASICS
SPRING 2020
8. (2 points) Choose one code pattern that surprised you, either in terms of how difficult (or easy) it was to implement or in terms of something new that you learned from it. Describe that code pattern here. What was surprising about it? Why was that surprising? What did you learn from that?
9. (2 points) What about the application could be improved, in terms of code construction, visual layout, and functionality? Describe at least 2 things and be specific.
10. (2 points) As you worked on the final project, you likely encountered situations where you thought about implementing some feature or functionality but realized you did not have the necessary knowledge to make that feature possible. Reflect on one of these situations, and describe what you wanted to achieve. What were the gaps in your knowledge? What do you still need to learn, in order to implement that feature in your project?