General Information
Class: Mondays and Thursdays, 4pm - 5.20pm, Salisbury Labs Room 305
Teaching Assistant: Trusting Inekwe, Email: toinekwe@wpi.edu, Office Hours: TBD
Grader: Antonela Tamagnini, Email: atamagnini@wpi.edu, Office Hours: TBD
Note: All office hours will be held in the Zoolab in the Fuller labs sub-basement.
Instructor: Prof. Emmanuel Agu, FL-135, 508-831-5568, emmanuel@cs.wpi.edu
Office Hours: Fridays, 2 to 3pm; Others by appointment.Required Texts:
- Head First Android Development Dawn Griffiths and David Griffiths (Third Edition), O'Reilly Books, 2021
- Android Programming: The Big Nerd Ranch (Fifth edition), by Bryan Sills, Brian Gardner et al., The Big Nerd Ranch, 2022
- Android UI Development with Jetpack Compose (Second Edition) Thomas Kunneth, Packt, 2023
- Official Android Documentation, by Google
Supplemental Texts:
Class Websites: The class website is at https://web.cs.wpi.edu/~emmanuel/courses/cs528/S25/.
- Head First Kotlin, Dawn Griffiths and David Griffiths, O'Reilly Books, 2019
- Internet of Things from Scratch: Build IoT solutions for Industry 4.0 with ESP32, Raspberry Pi, and AWS Renaldi Gondosubroto, Packt, 2024
Points Distribution: Presentation 12%, Design Homework 2%, Assigned Projects 36%, Final project: 30%, Quizzes: 20%
Access to course texts and papers: The course texts are available off the WPI library website (http://www.wpi.edu/+library/). A number of the assigned papers are from the ACM and IEEE digital libraries. To access these papers, just go the the WPI Library website , search for the paper title and click on the link that comes up. You may be required to log in using your WPI username and password.Late Assignment Credit: Late programming assignments will be penalized 15 points off per day (per 24 hours). Assignments later than 4 days late will not be accepted.
Cheating (a.k.a., academic dishonesty): defined as taking credit for work you did not do or knowledge you do not possess, is strictly forbidden. First offenders will receive a zero grade for the assignment or quiz in question and an academic dishonesty report will be filed with the Office of Student Affairs. Repeat offenders will receive an NR for the course and the case will be brought before the campus hearing board (see Student Handbook). Using or submitting code retrieved from online repositories such as gitHub, or which was previously submitted by a student in a previous iteration of this class (or CS 4518 undergraduate version) is considered cheating
Course Overview
The goal of this class is to acquaint participants with some of the fundamental concepts and state-of-the-art research in the computer science areas of mobile computing and ubiquitous computing. This semester's class will including ideas on smartphone apps, mobile sensing, as well as Internet of Things and edge computing. Projects will focus mostly on mobile and ubiquitous computing ideas that are implemented on Android smartphones, but students may be allowed to explore other devices. The course will consist of assigned projects including Android app programming projects, student presentations, discussions and a final project. There will also be quizzes and the students will present papers and selected topics in groups.
Recommended Background: CS 502 or an equivalent graduate level course in Operating Systems, and CS 513 or an equivalent graduate level course in Computer Networks, and proficiency in a high programming language. This semester's class focusses on programming Android applications which is Kotlin-based.
Course Timeline: The TENTATIVE course timeline is summarized below.
Dates Quiz Days Class Topics Deadlines Thur, Jan 16 1 Course Introduction, Administrivia, Definitions and Examples (Mobile, Ubiquitous Computing, IoT) Design homework assigned Mon, Jan 20 NO CLASSES : Martin Luther King Day Thurs, Jan 23 2 Android Overview (APIs, mobile and ubicomp modules) & Android Studio introduction Design homework due, Project 0 assigned Mon, Jan 27 3 Kotlin Crash Course and Android Hello World Thurs, Jan 30 Quiz 4 Android JetPack Compose UI Design (Part 1) Project 0 due Mon, Feb 3 5 Android JetPack Compose UI Design (Part 2) & Mobile HCI Project 1 assigned Thurs, Feb 6 6 Android JetPack Compose UI Design (Part 3) Students form groups for Projects 2, 3 & Final Project Mon, Feb 10 Quiz 7 Android Camera (Taking pictures) Thurs, Feb 13 8 Face analysis & MLKit overview Project 1 due, Project 2 assigned Mon Feb 17 9 Location-aware computing, Android Location APIs & Maps Thurs, Feb 20 10 Activity Recognition & Final Project Overview Mon, Feb 24 Quiz 11 Sensor Programming Project 2 due, Project 3 assigned Thurs, Feb 27 NO CLASSES : Academic Enrichment Day Mon, Mar 3 12 Introduction to Machine learning for ubicomp Groups submit 1 slide for proposed final Project Thurs, Mar 6 Quiz 13 Mobile Sensing Overview Project 3 due, b) Groups select research papers to present
Mon, Mar 10 and Thurs, Mar 13 NO CLASSES: Term Break Mon, Mar 17 14 Students propose final projects Groups submit proposal slides Thurs, Mar 20 15 Students propose final projects Groups submit proposal slides Mon, Mar 24 16 Edge/Fog Computing & Cyber-foraging + 1 student talk Thurs, Mar 27 17 IoT (architecture, frameworks, etc) + 1 student talk Mon, Mar 31 NO CLASSES: Wellness Day Tue, April 1 (Monday Schedule) 18 Voice-based Analytics + 1 student talks Thurs, April 3 19 Large Language Models (LLMs), ChatGPT-o + 1 student talk Mon, April 7 20 Wearables and Physiological Sensing + 1 student talk Thurs, April 10 Quiz 21 Energy efficiency + 1 student talk Mon, April 14 22 Mobile measurements and characterizations + 1 student talk Mon, April 17 23 Mobile Health + 1 student talk Mon, April 21 NO CLASSES: Patriots Day Thurs, April 17 24 Machine learning/on-device deep learning + 1 student talk Thurs, April 24 25 Security + 1 student talk Mon, April 28 26 Students present final projects Thurs, May 1 27 Students present final projects Final Projects Due Student Presentations: In preparing your talk, please use the following powerpoint template for uniformity. Also please send me your powerpoint slides by noon on the day of your talk so that I can make the slides available on class website. A summary of presentation guidelines can be found [ HERE ]. All students will also be expected to participate in class discussions.
Programming Projects: For programming projects, students will either run their work on the Android Studio emulator or use their own Android phones if they own up-to-date Android phones. Android Studio is installed in the Zoolab in Fuller basement. For students who do have access to Android phones, a few phones will be available to be loaned to students FOR THE ASSIGNED PROJECTS. It is anticipated that most of the final projects will involve building an Android application or classification of sensor data. The final projects will typically create a mobile/ubicomp solution to a societal problem.