|draft notebook||April 14|
|final notebook||May 5|
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.
Prepare a detailed proposal including
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.
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).
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.
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.
Some of the projects will be presented in class during the final week of the semester. Time to show off!
Return to syllabus