##Final Project Proposal ###March, Judy, Mathew
####The Big Idea: The main idea of our project is to create a interactive math app that helps students/people understand calculus. The purpose of this project is to allow the user to interact with the Fundamental Theorem of Calculus in a purely visual and geometric way, eliminating equations and allowing the user to build a geometrically intuitive understanding of the Theorem. Our minimum viable product is to take a drawn function, and display its derivative graphically. Our main goal is to take a drawn function, convert it with Open CV, display it’s derivative, and corresponding integral function. Our stretch stretch goal is doing this with vector calculus (3D).
#####Learning Goals:
Judy
Learn to use plotting libraries
Write more readable code
Learn to work in a software team
Be challenged code-wise
March
Work on challenging code
Learn more about user interface
Learn to work effectively with multiple people on a software project
Understand GitHub
Matthew
Focus on UX/UI
Challenging CS problems
Writing better Python
####Implementation Plan: Possible libraries: plot.ly, matplotlib, OpenCV, NumPy
Get line drawn and converted to a function in Python
Get a display of derivatives and integrals from known function in Python
Combine the above two steps
Add interactivity (This could possibly include: The ability to click and drag a point on one line, having everything change accordingly, Sliders, Information bubbles above points of inflection etc.)
Polish code and user interface
Add missing documentation (hopefully this will be minimal).
Iterate on and improve user interface
Time dependent: Add multivariable functionality.
####Project schedule:
4/10 MVP. Discuss UX
4/17 Pretty matplotlib, drawing with openCV, move points with mouse
4/30 Code done.
5/5 Project finished.
####Collaboration plan: Split tasks by function
Code a majority of the time together
Present/explain what we each wrote in the beginning of every meeting
We chose this to be time efficient, but to still understand all aspects of the code
####Risks: Merge conflicts on github cause problems
Open CV not working
Not understanding code other people wrote
Fundamental misunderstanding of calculus (especially nearing 3D calculus).