Milestone | Date |
---|---|

proposal | March 2 |

draft notebook | April 15 |

final notebook | May 6 |

**Topic**Select an interesting topic relevant to your primary field of study. Do enough preliminary research on your problem to gain confidence that the problem is solvable using the tools available in

*Mathematica*and is at a suitable level. Your topic should also be able to use most of the important features of*Mathematica*including symbolic manipulation, functional programming, numerical computation, plotting and graphics, and typesetting.**Proposal**Prepare a detailed proposal including

- statement of the problem and why it is interesting
- some background material that I might find helpful if unfamiliar with your topic
- outline of intended scope of the project

The proposal should be submitted as a

*Mathematica*notebook and the outline should serve as the starting point for the development of the solution. The proposal and background material can serve as drafts of the abstract and introduction sections.**Design**Think in conceptual terms about the techniques most suitable to your problem before writing a lot of code. What types of data are needed? What types of functions are relevant? How should results be presented? Plan to employ functional programming techniques and to avoid old-fashioned procedural methods (your code should look like

*Mathematica*and not like Fortran or C).**Development**Develop your solution systematically, including special cases and tests that verify that your functions act properly. Improve and revise your functions as needed. Functions should include usage messages, verify that input is acceptable, include default values and options, and error messages. An informed user should be able to apply your code without having to unravel its guts. You should provide functions which display results in any form appropriate to your topic; the reader may wish to look at things at little differently than you.

**Presentation**Your final notebook should be a well-organized and well-documented report of your research, with clearly delineated sections that include some or all of the following: introduction, method, implementation, tests, general results, specific results, conclusions, references. Remove dead ends. Interpret and explain your results and their significance. The symbols and functions should be documented well enough for the reader to use your notebook as a living document rather than just read it as a static report. You should use the notation appropriate to your field and notebook should make an attractive visual presentation as well.

*Return to *syllabus