17-422/722,05-499/899: Assignments

NOTE: We are using Canvas for the SPRING 2021 Semester and this page is **OUT OF DATE**
We will auto-redirect you to in 5 seconds.

There will be four individual assignments, and one final project.

Assignment Assigned Due
Assignment A3: Sensing and Machine Learning 03/18 04/01
Assignment A2: Fabrication and Embedded Computing 03/02 03/16
Assignment A1: Step Counters on Android 02/11 02/25
Assignment A0: Introduction 02/02 02/04

All the assignments are to be done individually. The final semester long project will be done in groups of up to 3 students. Do not forget to demo your product. Sign-up sheet will be uploaded to Piazza. If you cannot make the pre-allocated time slots, contact the instructors and the TAs.

Assignment 3: Sensing and Machine Learning (Tentative, subject to some changes!)

You will build a gesture detector using the accelerometer on Android and a Machine Learning model trained and running on the phone. The aim of this assignment is to learn how to do feature engineering by analyzing your sensor data, train, validate and test basic machine learning models. Building on top of your assignment 1, you will use the on-phone accelerometer. The phone will then use Weka (using the starter code) to learn a model that you will then test using the smartphone app itself.

The starter code has exact todos in comments that will guide you through the whole assignment.

For gestures, you are free to choose any four of the alphanumeric characters (lower or uppercase). As I said in the class if you do not want to use machine learning at all and just develop heuristics to solve this problem, feel free to do that! However, I believe that if you are confident that a heuristic-based approach would work, just extract those high-level bits and send them to an ML model instead of coming up with your thresholds, etc.

For calculating the accuracy, we will rely on your video submission and our posthoc analysis of your solution.

Starter code repo


Grade distribution:

Submit the deliverables on Canvas. This information is also updated on Canvas.

Assignment 2: Fabrication and Embedded Computing (Tentative, subject to some changes!)

In this assignment, we will build a touch pressure sensing device using a light intensity sensor and a micro-controller (Particle Argon). The aim of this assignment is to learn how to write basic micro-controller code, interface with a sensor, build 3D printed case, and casting silicone. The fabrication aspect will be critical in holding your sensor firmly in place and the microcontroller will allow you to stream the sensed information to the cloud and finally to a mobile device. Using the library on the Particle cloud, you will sample raw data from the RGB sensor, do some pre-processing (basic filtering) on the micro-controller itself. We will detect two levels: just touching (when on top of the silicone) and pressing (on either side or top). You can detect the pressure levels on any side of the fabricated cube. Each part of the assignment is explained in more detail below:


Interfacing the microcontroller with the sensor:

Signal processing and pressure gesture detection:

Resources for this assignment

Grade distribution:

Deliverables: Submit the video and STL files on Canvas. The information is also updated on Canvas.

Assignment 1: Step Counters on Android (Tentative, subject to some changes!)

Develop an android app that counts steps. Design an interface that shows the number of steps as a user walks with the phone in their hand. You will be using the raw data from the accelerometer and/or gyroscope to complete this task. The data will require some simple signal processing before you can count the number of steps. You can use peak detection, zero crossings, or your own technique for counting. Overall, refer to all the techniques we discussed in the class.

The app should also display the sensor data and/or processed data in realtime using XYPlot. If you make any assumption about the phone’s orientation, your app should inform the user about the assumptions. Optional – If want a challenge, attempt to detect steps in any orientation and posture and run it as a service in the background. We won’t give you extra credits, but maybe chocolate! 🙂

Please have your application installed and ready to show during the office hours on the due date. I will post a sign up sheet for demos soon.


Grade distribution:

For performance, as long as the estimate will be within 15% of my actual number of steps, you will get full credit, below that, you lose 10% grade for every 10% error. We will test the app on the instructor(s) and the student themselves, and grade the *best* performance.

Submit the deliverables as a private post to the instructors on Piazza (just choose Instructor(s) in “Post to”, instead of “Entire Class.” Make sure to select “assignment 1” as the folder for this private post.

Assignment 0: Introductions

Introduce yourself. Fill out this questionnaire and include the following information: current status, any research affiliations, research interests (and/or areas of specialization), what you want to get out of this class, your experience with software and hardware, the kinds of classes you have taken so far, and anything else you would like to share.

Last updated: 2021-03-08 10:53:00 -0500 [validate xhtml]