CS7470: Mobile and Ubiquitous Computing

This course explores the “third generation of computing,” where users interact continuously with many embedded and ambient computing devices rather than a single device. It covers the technical foundations of sensing and mobile computing — sensor data analysis, Arduino-based prototyping, eye and gesture interaction, smart homes and infrastructure-mediated sensing, wearables, head-mounted displays, location technologies, privacy, and context-aware computing.

Classification and Repetition Counting in Rehabilitative Shoulder Exercises Using Smartphone Sensors (Team Project)

A four-person team project building a system that identifies which shoulder-rehab exercise a person is doing — scaption raises, shoulder external rotation, or “window washing” — and counts their repetitions, using nothing but the accelerometer and gyroscope already built into a smartphone. The motivation drew on prior infrastructure-mediated sensing and on-body activity-recognition work (including research on activity recognition from an arm-holster-worn phone), asking whether that kind of low-cost sensing could support physical therapy adherence without dedicated hardware.

We wrote the project up as a short paper covering the related work, method, and accuracy results across team members and exercises.

Tech stack

  • Mobile app: React Native (Expo), TypeScript — sensor logging and results UI
  • Backend: FastAPI (Python), Uvicorn — /analyze endpoint for classification and rep counting
  • Data & ML: pandas, NumPy, SciPy (signal processing / peak detection), scikit-learn (Random Forest classifier)
  • Write-up: Overleaf (LaTeX)