Weeks 14-15: Final Project#

Self-Directed Project Expanding on Any of the Previous Labs
Last updated June 16, 2022

00. Content #

Mathematics

  • You decide!

Programming Skills

  • You decide!

Embedded Systems

  • You decide!

0. Required Hardware #

  • You decide!

Copy the file `student_info.py` into the folder you are working in, then run this cell to put your name and email into this document.

from student_info import show_info
show_info()

1. Make a Plan #

You have learned a lot of new strategies and tools this semester. This assignment is your chance to show off some of your skills. This can be done individually or in groups. You are free to design your own project, or adapt one of the suggestions below. There are just a few hard rules:

  1. Your project must be original: it can’t be something which you have already done, or following an existing tutorial. Your project should not do the same thing another group is doing.

  2. Your project must use at least one of the mathematical concepts introduced this semester.

  3. Your project must involve some kind of data measurement and data analysis.

  4. Your project must use code, either on the computer or the microcontroller.

So long as your project meets the above requirements, it is suitable for this assignment. Here are a few suggestions you can use if you wish; you don’t have to do one of these, and you are welcome to change any of these as well.

  1. Build a heart rate monitor which runs on battery power, displaying a plot of your pulse on an OLED screen. Include a routine to figure out your heart rate in real time, displaying the result in BPM on the screen.

  2. Build a slouch detector, a wearable device which will notify you if your posture changes.

  3. Build a stopwatch and timer which you can activate hands-free, using an ultrasonic sensor.

  4. Write an interactive calculus test, with randomized questions. Have it automatically grade the results, and give a summary of how well the user did on each subject in the test.

  5. Build a range finder, which will tell you how far you are from a tall building or mountain by letting the user enter the object’s height and the angle between the horizon and its top. Include error bounds on the answers.

Exercise 1 (20 pts)#

Answer the following questions. Before moving on with the assignment, confirm with your instructor that your plan meets the requirements of the assignment.

  1. Describe your project. What is your goal? If you find you don’t have enough time to complete the project, how will you limit its scope?

  2. What mathematical concepts or strategies will you need to complete this project?

  3. What is the data involved in your project? How will you analyze it? What sources of error will influence your data?

  4. What programming techniques will you apply to manage your code? What strategies will you use?

  5. Who are the members of your group? How will you divide the work? What parts will each group member be responsible for?

Write Answers for Exercise 1 Below

2. The Rubric #

Exercise 2 (70 pts)#

You will be graded on the following rubric. Include everything you produced as part of your project below so that it can be graded. Make sure code is correctly formatted and each document is described.

Category

Meets all expectations

Meets most expectations

Does not meet expectations

Documentation (25 points)

(25) From the documentation is is clear how your project can be used, how it was made, and how it can be modified.

(10) Some parts of the documentation are unclear, but all the most important parts of the project have a clear description.

(0) There are large parts which are unexplained, or which have an incorrect explanation.

Mathematical sophistication (15 points)

(15) There is at least one part of the project which relies on a mathematical concept introduced this semester, and it is applied and described correctly.

(5) There is a mathematical technique used, but there is a significant error in how it is described or applied.

(0) No mathematical techniques were applied, or the techniques were applied in an inappropriate way.

Data management (15 points)

(15) Data are collected and described accurately. Data support the conclusions made in the project. Errors are accounted for and addressed.

(5) Errors in data are not considered, or data are described inaccurately, or data are interpreted inaccurately.

(0) No data are involved in the project, or there are serious errors in how the data are used.

Coding practices (15 points)

(15) Code is well-organized using functions, classes, and modules when appropriate. The choices made in designing the code were justified in writing. There are comments and docstrings provided which make the code easier to read.

(5) The code is hard to read in some places, but it is still clear that some careful thought was put into the code structure. There are a couple places where a comment or docstring would be appropriate, but were not provided. There may be some edge cases which are not handled correctly.

(0) Code is hard to read, or does not behave as intended.

Write Answers for Exercise 2 Below

3. Reflection #

Exercise 3 (10 pts)#

Write a three-paragraph reflection on the assignment. What parts went well? What could be improved if you had more time to work on it? What difficulties arose which you did not expect? What advice would you have for someone who is beginning a project like yours?

Write Answers for Exercise 3 Below