Students will design, plan, and implement a medium- to large-scale final project involving financial literacy. Students can work individually, or with a partner.
Students will be able to...
- Design, plan and implement a larger project
- Use computing as a tool for financial analysis
- Understand that the software design cycle is an ongoing, reflective process
- Program an application that reads and writes data from and to CSV (Comma Separated Value) files
- printable project spec
- editable project spec
- Students should each have their final project plan organizer and final project development plan
This project will be significantly larger in scope than any of students' previous assignments, so there will be more design and planning than before. More importantly, though, rather than be given a well-defined specification, students will be setting the requirements for the project by coming up with an idea, fleshing out the details, and defining the steps necessary to complete their program. Emphasize with the students that they must complete all of the steps in order for their project to be successful. Half of the grade will be based not on how well their program works, but on how well you completed the design and planning process.
The project includes these applied design phases:
- Understanding Context - Conduct user centred research to understand design opportunities and barriers
- Ideating - Establish point of view, generate and prioritize ideas, analyze competing social, ethical, and sustainability considerations; list out user stories and features
- Prototyping - Choose an appropriate form, scale, and level of detail for prototyping multiple ideas; analyse the design for the life cycle, and construct prototype, making changes to tools, materials, and procesures as needed; record iterations of prototyping
- Testing - Identify feedback, develop an appropriate way to test prototype, collect feedback and critically evaluate design and makes changes; iterate or abandon design idea
- Making - Task project management processes (task management schedule) to work collaboratively to coordinate production, ensuring that your software goals are met
- Sharing - Share progress; design an how to promote product with end-users; critically reflect on design thinking and processes, identify new design goals and future work
Clarify with the students that the Testing phase here refers to testing the prototype design, and not seeing if program code works.
Reference: BC Computer Programming 11 - Curricular Competency
In phase 3, students will complete a Final Project Spec, and in phase 4 students will complete a Final Project Schedule. Students are expected to keep the spec and plan up-to-date and make adjustments as requirements change, or as tasks or features get re-prioritized. Encourage students to update the spec and plan documents to reflect the current state of their project, and ask them to check in with you or TEALS volunteers often to make sure things are on track. The project handout asks students to do three check-in's with you. You can make adjustment to this requirement as you see fit.
In our course so far, students know how to use the console to get input from a user, and to display output. In an actual financial application, a GUI (graphical user interface) is often used to make it easy for a client to use the software. However, when a scientist or financial analyst is focussed on crunching numbers and analyzing results, they sometimes prefer skipping the graphical interface, and working with data that is create/provided in a simple text format. One popular input data format is the CSV (comma separated file) that can be created by a spreadsheet program like excel. It is also common practice in business applications to interface data with a program like Excel, which is why the CSV format is convenient.
Python has a built in CSV parser library that we can use. Students should first try these exercises as practice: https://realpython.com/python-csv/
Students may also find learning about formatting the output, such as displaying numbers in 2 decimal places, would also be helpful in this project: https://realpython.com/python-formatted-output/
Emphasize with students that their program must be well-written, well-documented, and readable. Writing code with good style is always a good idea, but in a project of this size and scope, following style guidelines will help students keep their thoughts organized and make it easier to keep track of their progress.
- Day 1 - project introduction, team formation (if working with partner)
- Day 2-3 - prototyping and testing
- Day 4-6 - project implementation
- Day 7 - project sharing and presentation day: This can be done by asking students to present their project or orgranizing a gallery walk