Meetings
The class meets regularly on Tuesdays and Thursdays 14:30-15:55 Pacific in 127 Kerckhoff. Unless you have extenuating circumstances, the meetings are mandatory. Most class meetings involve working on exercises and projects. Some meetings will involve live instruction, which is posted on the Schedule overview page.
Course structure
In this course, we provide you with two design challenges. First, you will design and build a spectrophotometer. After completing that project, you will tackle the more challenging project of designing and building a pulse oximeter. We provide basic specifications and most construction materials for these devices, and it is your job to implement the specification and demonstrate a working prototype.
At the beginning of the term, you will complete a series of exercises to bring you up to speed using the Arduino platform and interfacing with Arduino using Python-based tools. After that, you work on design projects.
You can work at your own pace, but it is your responsibility to have your exercises, projects, and writeups completed according to the due dates on the Schedule overview page. You are working independently, and the course staff is here to help you, but it is your responsibility to keep your projects moving with a good time line.
Course communications
Please use the course Ed page for all communication related to course material. All course announcements will be made using Ed, so please set your alerts appropriately. While the course staff will address student questions, we strongly encourage students to answer and to engage in discussions on the Ed page.
For private matters, such as extension requests, contact the course staff directly using email.
Equipment
We will be using shared equipment and components in the lab. It is your responsibility to keep everything in good shape and to keep the lab neat.
Submission of exercises and project write-ups
Each project write-up and exercise must be submitted as a file upload to Gradescope for the appropriate assignment. Exceptions are follow-along exercises that you demo in person to a member of the course staff, in which case a text submission indicating that you did so suffices. Please zip the file submissions with the following file naming convention. The files names are lastname_firstname_faexercise_##.zip for follow-along exercises and lastname_firstname_diyexercise_##.zip for do-it-yourself exercises, where ## is the two-digit exercise number, .e.g., 06 or 14. For the projects, the file names are lastname_firstname_spectrophotometer.zip and lastname_firstname_pulseox.zip. If you use bzip2 or gzip, you should use the appropriate suffixes. Note that upon submission, Gradescope may automatically unzip your file. This is fine and not a problem.
Exercises
Each exercise falls into one of three classes.
Thinking exercise
Follow-along exercise
Do-it-yourself exercise
Thinking exercises
In a thinking exercise, you do not need to build anything. They typically are thinking questions or back-of-the-envelope calculations. You do not need to submit anything for thinking exercises; they are for you to ponder on your own and maybe discuss with your classmates and TAs.
Follow-along exercises
In a follow-along exercise, you follow instructions for setting up your board and the code. These are meant to provide an active reading experience as you read through the course materials. When you submit a follow-along exercise, the following must be included in the ZIP file.
A photo or photos of your board/breadboard.
A brief movie of your circuit functioning. (In lieu of a brief movie, you may show your circuit functioning to a member of the course staff and indicate that you did that in your submission.)
If you demonstrate your circuit to a member of the course staff in class, you may instead simply make a text submission indicating that you demoed in person.
Do-it-yourself exercises
In a do-it-yourself exercise, you apply techniques covered in the course materials and in the follow-along exercises to make your own circuit. These exercises are meant to help you build the expertise you need to complete the projects. When you submit a do-it-yourself exercise, the following must be included in the ZIP file unless otherwise indicated in the exercise statement.
A Jupyter notebook with a write-up of how you went about completing the exercise. This should include a schematic of your ciruit, and also a pictorial schematic if you think it is necessary and/or helpful. You can use Fritzing or other software to make these. You should also include code from any sketches you wrote in your notebook, in addition to including sketches in the ZIP file. This helps with grading. If you interact with your device through JupyterLab, that can also be included in the notebook.
An HTML rendering of the Jupyter notebook.
Any Arduino sketches you wrote.
If you wrote any other code, for example to build a Bokeh app to control your device, include the .py files.
A brief movie of your circuit functioning. (Again, in lieu of a movie, you may show your functioning circuit to a member of the course staff and indicate that on your submission.)
A photo or photos of your board/breadboard if anything is unclear from the movie.
To include Arduino sketches in Jupyter notebooks, use the following syntax in a Markdown cell.
```arduino
// Enter your sketch code here.
```
If syntax highlighting does not properly work, you can instead use C++ highlighting.
```cpp
// Enter your sketch code here.
```
Project write-ups
You will complete two major design projects in the course. You will construct a spectrophotometer and a pulse oximeter. Your goal is to develop a prototype to achieve the provided design specification. Each project has a description on the course website with some background information, overall design specification, and a set of details about the specification.
In designing your project, you also need to design and implement a user interface for controlling the device and acquiring data from it. You can use Bokeh to do this.
The project writeup must include the following in delineated sections, written in a Jupyter notebook.
Section 1: Overview. A one- or two-paragraph summary of the design objectives.
Section 2: Design and design considerations. Include circuit diagrams and a pictorial representation of the breadboard (which you can make with Fritzing or other software). You should also include a description and rationale behind design choices you made in executing the prototype per specification. These choices also include how you designed the user interface. Discuss potential limitations or trade offs for major design decisions.
Section 3: Instructions for use. Instructions on how to use your device.
Section 4: Demonstration and assessment. A demonstration of the device’s functionality and assessment of its performance. Metrics for performance should be clearly delineated and assessed.
Section 5: Analysis of data. Analysis of any relevant data you acquired from your device. This involves making plots and determining parameters of the biological system you are probing with your device.
Section 6: Suggestions for the next design phase. Since you are building a prototype, give a discussion for changes or enhancements to consider in the next phase of design.
In the submitted ZIP file, you must have the following
The Jupyter notebook described above.
An HTML rendering of the notebook.
Any code you wrote outside of the notebook, especially code for the user interface.
A photo or photos of your devices.
A movie of your device functioning. This should also include a video of the user interface in action.
The movies are required for the projects, and you must also demonstrate your functioning device to a member of the course staff.
Collaboration policy
You may discuss all of the course material and objectives, including the exercises and projects, with other students in the course. If you get useful help from another student, please be sure to cite them appropriately in your write-up.
You may use whatever internet resources you need. If you took substantial ideas from sources outside of the course materials, clearly cite them.
You may not reference completed work from students in previous editions of this course.
Grading
30% of your grade is determined from exercises and 65% of your grade is determined from your projects, with 30% of your grade coming from the spectrophotometer project and 35% from the pulse oximeter project. The remaining 5% of your grade is determined but your lab technique, attendence, citizenship, and tidiness of the workspace. You need to keep your workspace and the communal space tidy and organized and clean up at the end of the quarter.
Each assignment has a defined due date and time. For assignments submitted after this time, you will receive a score of (your score)/1.1(ceil(number of days late)). After seven days, the assignment will not be accepted. The exception is the pulse oximetry write-up, which will not be accepted late because it is due at the end of the term. Extensions may be granted for good reason upon request from the course instructor.