Skip to content
Open
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
c1abc6e
Update README.md
Caravetta Apr 6, 2015
f27d708
Update README.md
Caravetta Apr 6, 2015
9cdc649
Update README.md
Caravetta Apr 6, 2015
cf1c4c5
Update README.md
Caravetta Apr 6, 2015
66d168c
Update README.md
Caravetta Apr 6, 2015
2e434d3
Update README.md
Caravetta Apr 7, 2015
58d00fc
Update README.md
Caravetta Apr 7, 2015
862a7be
Update README.md
Caravetta Apr 7, 2015
86a7a9e
Update README.md
norman2005 Apr 7, 2015
f02c28b
Brian Update
carlsonb99 Apr 7, 2015
60631b4
Brian Update 2
carlsonb99 Apr 7, 2015
4942721
Merge pull request #1 from ShuddaWuddaCdr/carlsonb99-patch-1
carlsonb99 Apr 7, 2015
c5ee796
Update README.md
carlsonb99 Apr 7, 2015
d339551
Update README.md
norman2005 Apr 7, 2015
5021b14
Update README.md
Caravetta Apr 7, 2015
635bc1a
Update README.md
Caravetta Apr 7, 2015
d6e28e7
Update README.md
Caravetta Apr 7, 2015
0a8c3d5
Update README.md
Caravetta Apr 7, 2015
1369f1c
Update README.md
Caravetta Apr 7, 2015
9ab78d7
Update README.md
Caravetta Apr 7, 2015
611406d
Update README.md
Caravetta Apr 7, 2015
caa4b28
Update README.md
Caravetta Apr 7, 2015
b40d7b2
Update README.md
norman2005 Apr 7, 2015
aa09409
Update README.md
norman2005 Apr 7, 2015
3595b1f
Update README.md
norman2005 Apr 8, 2015
e82a6e2
Update README.md
Caravetta Apr 8, 2015
82ad9d0
Update README.md
Caravetta Apr 8, 2015
10d48b2
Update README.md
Caravetta Apr 8, 2015
0ba93e8
Update README.md
Caravetta Apr 8, 2015
65dfa54
Update README.md
carlsonb99 Apr 8, 2015
dc1ce1e
Update README.md
Caravetta Apr 8, 2015
350fc1f
Update README.md
Caravetta Apr 8, 2015
bc9db1c
Update README.md
Caravetta Apr 8, 2015
17311e6
Update README.md
Caravetta Apr 8, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 76 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,81 +1,105 @@
# FP4-proposal
Project Proposal is due 2015-04-08 at 8am

Produce a plan for your final project, and prepare an in-class presentation.

Ask questions, as always, [on piazza!][piazza]

## Written Proposal Instructions

Teams will submit ONE written proposal, with sections that each member has done individually detailing their proposed contributions. The submission will be on github, as a pull request of this very file. Below is a template proposal report.

You should be proposing something that you have high confidence that you can achieve, and the proposal should project that confidence.
The proposal should be no longer than necessary, but long enough to include critical detail. Three pages is appropriate. Diagrams are welcome.

Remember, you can do some neat [formatting things with Markdown.][markdown]

## In-Class Presentation Instructions
Teams will each deliver an in-class presentation. **Presentations will be Wednesday, April 8** (and Friday, April 10 as necessary). The presentation material is due on April 8 by 9 am for everybody. [See piazza for full schedule.][piazza]

Your team will have two minutes to present. Create presentation with two or three slides. Make the slides in google drive, and share the public-viewable link at the bottom of this report. The day of presentations, I'll have the list of links on the display computer, so each team can simply click their link and begin.

(Template follows. You may delete this line and all above it. Please edit the following template to create your report.)

# Project Title: title here (10 words maximum)
# Project Title: Lambda (λ)
### Problem Statement
Describe your problem, and why it is interesting.
Regular computer calculators are clunky and aren't expressive enough. Let us break free from that and create a mathematical engine that is simple while being expressive.

* The current problem we see with most computer calculators is that the user needs to put everything into the calculator one digit at a time, but why not type it in just as if you were writing it on paper.
* This problem is interesting because looking at it there is the possibility to create a powerful tool that can be easily expanded due to the ability to create high level functions and layers of abstraction in the racket environment.

### Problem Analysis
Explain what approaches from class you will bring to bear on the problem. Be explicit and succinct.
* We plan to make different layers of abstraction so that the code can be very easily built on.
* We also plan to build objects that allow us to link the key words to their respective procedures.
* The high order procedures that we have covered in class such as filter and map will be used to handle searching and limiting the data structures.

### Data set or other source materials
If you will be working with existing data, where will you get those data from? (Dowload it from a website? access it in a database? create it in a simulation you will build....)

How will you convert that data into a form usable for your project?

Do your homework here: if you are pulling data from somewhere, actually go download it and look at it. Explain in some detail what your plan is for accomplishing the necessary processing.

If you are using some other starting materails, explain what they are. Basically: anything you plan to use that isn't code.
* The only data that is needed for this program is the data that is given by the user.
* The data that the user has supplied to the program is then sent through a parser that breaks it apart and passes down to the handler to be processed.

### Deliverable and Demonstration
Explain exactly what you'll have at the end. What will it be able to do at the live demo?

What exactly will you produce at the end of the project? A piece of software, yes, but what will it do? Here are some questions to think about (and answer depending on your application).

Will it run on some data, like batch mode? Will you present some analytical results of the processing? How can it be re-run on different source data?

Will it be interactive? Can you show it working? This project involves a live demo, so interactivity is good.
* The goal is to have a program that is simple , powerful and easy to build upon. Simple in terms that it allows the user to enter their expression without the need of worrying about what buttons to press or what order it is needed to be entered. The power of the program will come from the ease at which the program can be expanded on to add new math functions.
* During the demonstration the goal is to let the programs ease of use be the focal point. To do this people will be able to come to the system and take it for a spin by trying out their favorite math expression.
* Also at the demonstration, an example of how to add functionality to the program will be shown so that users can get a sense of how simple it is for them to build on the platform.

### Evaluation of Results
How will you know if you are successful?
If you include some kind of _quantitative analysis,_ that would be fantastic.
* We are able to input controlled math expressions that have known results that we have calculated by hand.
This gives us the ability to check the validity of the computing code.
* The plot functionality can be a test by giving expressions to both the code and a graphing calculator to check
and make sure both sources match.
* The parsing of user input will be able to be tested by seeing if the proper key words are applied to expression
in the proper order.

## Work Plan and Schedule
Explain how you will go from proposal to finished product. Write your general plan here.
There are three deliverable milestones to explicitly define, below. The nature of deliverables depend on your project, but may include things like processed data ready for import, core algorithms implemented, interface design prototyped, etc.

You will be expected to turn in code, documentation, and data (as appropriate) at each of these stages, so take care in writing concrete steps for your schedule.
## Work Plan and Schedule
The work for the project will be split equally between all three members. The schedule will be made up of our own mini milestones. This will allow us to make sure each component is progressing so that it will meet the larger milestones that have been put in place.

| | task | state |
|---|------|-------|
| 1 | GUI | in progress |
| 1.1 | Create GUI Skeleton | in progress |
| 1.2 | Link GUI to | not started |
| 1.3 | Finalize GUI| not started |
|2| User Input Parser | in progress |
| 2.1 | Basic Parser Skeleton | in progress |
| 2.2 | Plot/Graph Keyword Support Added | not started |
| 2.3 | Derivative Keyword Support Added | not started |
| 2.4 | Simplify Keyword Support Added | not started |
| 3 | Keyword Linking Table | in progress|
| 3.1 | Keyword Object Structure | in progress |
| 3.2 | Keyword Object List | not started |
| 3.3 | HOF to Add/Call Keyword Procedures | not started |
|4| Keyword Procedures | not started |
|4.1| Plot/Graph Keyword Procedure | not started |
|4.2| Derivative Keyword Procedures | not started |
|4.3| Simplify Keyword Procedures | not started |

In this general plan, and in the deliverables below.

### First Milestone (04-13)
What exactly will be turned in on this day?
* The complete GUI layout will be complete and ready to be hooked to the back end processing code.
* The parsing of user input will be complete and functional.
* The lookup table needed to link the user input to the processing procedures will be complete.

### Second Milestone (04-21)
What exactly will be turned in on this day?
* Create procedure needed for the plot/graph keyword.
* Create procedure needed for the derivative keyword.
* Create procedure needed for the simplify keyword.
* Add more keywords/procedures as long as time permits.

## Group Responsibilities
Here each group member gets a section where they, as an individual, detail what they are responsible for in this project. Each group member writes their own Responsibility section. Include the milestones and final deliverable.
Below is a breakdown of what each person is in charge of during the project. This will be added to as we add more features to Lambda ( λ )

### Susan Scheme
will write the....
### Joshua Caravetta
##### First Milestone:
* Will complete the table needed to link the user input to the back end processing procedures.
* Also will help Brian on completing the parser for the user input.

### Leonard Lambda
will work on...
##### Second Milestone:
* Creating procedures for keywords

### Brian Carlson
##### First Milestone:
* Parser for user input (extracting procedure keywords and mathematical expression)

##### Second Milestone:
* Creating procedures for keywords

### Norman Mutunga
##### First Milestone:
* Design a user friendly GUI for Lambda ( λ ) providing an input window
* Provide Compute Button for the output of the processed procedure
* Provide a Canvas where the output will be displayed
* Will also give a hand with the parser for the user input.

##### Second Milestone:
* Creating procedures for keywords

## Proposal Presentation Link
insert your google presentation public link here, so with one click it will open up in the browser and you can present.
[**Lambda**][Goat-Lambda]

<!-- Links -->
[piazza]: https://piazza.com/class/i55is8xqqwhmr?cid=453
[markdown]: https://help.github.com/articles/markdown-basics/
[Goat-Lambda]:https://docs.google.com/presentation/d/16Rdq3k_QRaX8tFefR1sQdzLVkyQ6EENQuHVDwc9Axak/edit#slide=id.gad3b04a0b_0_7