In the computational projects you will be asked to implement and explore various algorithms described in class. You are free to use whatever software you like to do this, but it is expected that you will be implementing the algorithms as requested and not using built-in functions. For instance, in the Shanks project you will implement baby-step, giant-step to find primitive roots. Many programs, such as gp-pari, have built in functions to perform this, and of course the point is not simply to run these functions. However, built-in functions can be used to test your implementations, and I encourage you to do this.
I will be assigning you randomly (using the unix function sort -R) to groups of 4,4,3,3 (there are 14 students altogether). You can contact each other and work out how you would like to do things together. Please take the group aspect of the project seriously; try to learn from each other and work as a team.
I would like to see a short report (2-4 pages) explaining what you did with the project. The report can be any format you like, but it should address the following topics:
You should submit a printout of your code with the project (this is not counted in the 2-4 pages above), along with sample runs, etc.