-
Notifications
You must be signed in to change notification settings - Fork 31
Individualized Portfolio Building
This is an individual project (not a team-based project). You will be finding a dataset of information online and analyzing the data looking for insights within the data in a non-standard way. By the end of the course, you will be expected to visualize the data in an unconventional way (see the D3 website or the Information is Beautiful website for ideas). To complete this task we will be using JavaScript (using the p5js library).
By the project deadline, you will have created a portfolio of unconventional visualizations of the dataset(s) you are working with. There will be multiple opportunities and tools learned that you must include, and some that you might include. Your portfolio of work must demonstrate all of the success criteria noted at the bottom of this document.
In this course we will be learning p5js which is a JavaScript-based library that allows you to quickly and easily get graphics onto the screen. p5js is the language used in the ICS2O/ICD2O course; however, the focus of this course is very different (data analysis instead of animations/art/game creation).
Brainstorm and create a plan for:
- What dataset you have found and will work with for the course, and
- Why you chose this dataset, and
- What insights you are hoping to propagate from the data.
Discuss the plan with your teacher based on the deadline(s) provided by your teacher.
It is highly suggested that you build a GitHub account and post your work there (or something similar like GitLab, Bitbucket, etc.). This will help with portfolio building and demonstrating your understanding of the use of industry standard tools. This is not a requirement, but a suggestion.
Throughout the course, the following topics might be covered. Anything marked with a ^ is directly connected to curriculum and will be assessed in the portfolio projects:
- ICS3U review
- Perlin Noise
- HTML DOM
- Classes/Objects (using the constructor function) ^
- UML Class Diagrams ^
- Formal Documentation ^
- Reading Files ^
- Portfolio - Project 01 (includes all the above concepts)
- Inheritance ^
- Regular Expressions
- APIs (Wordnik) ^
- RiTa ^
- Portfolio - Project 02 (includes all concepts since Project One)
- Recursion ^
- Sorting ^
- Searching ^
- Portfolio - Project 03 (includes all concepts since Project Two)
Details about Project One, Two, and Three will be provided in class.
Throughout the semester, based on agreed-upon timelines, you and your teacher will have meetings to go through your work. During these meetings, you will be having an interactive discussion with your teacher about your work in a one-on-one manner where you demonstrate your knowledge of the success criteria. Be prepared to answer follow-up questions.
If you have any sources or images you need to cite, follow these directions.
- Create a CITATIONS.txt file to hold your citations.
- Cite your sources using IEEE format.
- If used, cite any images used as hyperlinks in your code.
The Overarching Learning Goal(s) for this include 📙 Data Structures and Algorithms.
| Success Criteria | Look Fors |
|---|---|
| 📙 I can use integer division in computer programs. | To be co-created. |
| 📙 I can use resultant remainders in computer programs. | To be co-created. |
| 📙 I can complete type conversions. | To be co-created. |
| 📙 I can read from, and write to, an external file (i.e. database, API, text file, binary file, etc.). | To be co-created. |
| 📙 I can decompose a problem into modules, classes, or abstract data types using an object-oriented design methodology (using classes, methods, etc. using UML, etc.). | To be co-created. |
| 📙 I can create a modular program that is divided among multiple files. | To be co-created. |
| 📙 I can apply the principle of reusability in program design (use of inheritance, and polymorphism). | To be co-created. |
| 📙 I can use one-dimensional arrays of compound data types (i.e. objects) | To be co-created. |
| 📙 I can compare the efficiency of sorting algorithms, using run times and computational complexity analysis. | To be co-created. |
| 📙 I can compare the efficiency of linear and binary searches, using run times and computational complexity analysis. | To be co-created. |
| 📙 I can design a simple and efficient recursive algorithm. | To be co-created. |
| 📙 I can create fully documented program code according to industry standards. | To be co-created. |
| 📙 I can work independently, using support documentation, to resolve syntax issues during software development. | To be co-created. |
Reevaluation Opportunity: For each of the success criteria above, a second follow-up evaluation may be performed based on the initial evaluation, at the teacher's discretion. This may include the use of tests/quizzes in lieu of a discussion with the teacher.