General Information
Class: Thursdays, 6pm - 8.50pm, Fuller Labs Room 311
Graders:
Akanksha Pawar, Email: adpawar@wpi.edu, Office Hours: Tuesdays: 3-5pm, Wednesdays: 3-6pm
Minh-Hang Radetsky, Email: mgradetsky@wpi.edu, Office Hours: Mondays: 10:30am - 11:30am, 12pm - 1:30pm, 6pm - 7:30pm (via zoom: https://wpi.zoom.us/j/5506237058) Thursdays: 10am - 1:30pm, 4pm - 5pm
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: Thursdays 12:00PM - 1:00PM; 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
- Head First Kotlin, Dawn Griffiths and David Griffiths, O'Reilly Books, 2019
- Official Android Documentation, by Google
Supplemental Texts:
Class Websites: The class website is at https://web.cs.wpi.edu/~emmanuel/courses/cs528/F23/.
- Introduction to Android Application Development: Android Essentials (Fifth edition), Joseph Annuzzi Jr, Lauren Darcey and Shane Conder, Addison-Wesley, 2015
- Ubiquitous Computing Fundamentals, John Krumm, CRC Press, 2010
Points Distribution: Presentation 14%, 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 focus on emerging mobile and ubiquitous computing ideas that are implemented on Android smartphones, but will also discuss Smart environments and Internet of Things. 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 Java-based. knowledge of or willingness to learn Java is a plus.
Course Timeline: I will present to introduce mobile and ubiquitous course concepts and definitions, and introduce Android programming. 3 projects will be assigned to students to help them understand Android. Students will also work in teams to brainstorm on final project ideas which they will present in week 9. In weeks 9-14, students will work on their final projects. Additionally, in weeks 11-12, students will present selected research papers. The TENTATIVE course timeline is summarized below along with class and quiz dates.
Dates Quiz Days Class Topics Deadlines Aug 24 1 Course Introduction, Administrivia, Definitions (Mobile, Ubiquitous Computing, IoT, Android Introduction, setup, modules and programming) Aug 31 2 Android Hello World, Android UI Design, Examples, Resources, Webview, Data-driven views, Mobile HCI Project 0 due Sept 7 MONDAY CLASS SCHEDULE: NO CLASSES Sept 14 Quiz 3 Android Component types, Activity lifecycle, Intents and fragments Project 1 due Sept 21 4 Multimedia, Camera: taking pictures, face recognition, interpretation, Video and audio Students form groups for Projects 2, 3 & Final Project Sept 28 Quiz 5 Android Network access, Databases, Firebase cloud API Oct 5 6 Location-aware computing, Android Location APIs & Maps, Overview of Android mobile APIs, Sensors and Android sensor programming, Step Counting Oct 12 Quiz 7 Overview of Android Ubicomp APIs Activity Recognition applications Introduction to Machine learning for ubicomp Final Project Overview Project 2 due Oct 19 TERM BREAK: NO CLASSES Oct 24, 10am Groups submit 1 slide for proposed final Project Oct 26 8 SmartPhone Sensing, Human Sensing, intelligent notifications and gamification Project 3 due Nov 2 9 PROPOSAL: Student propose final projects Groups submit proposal slides Nov 9 10 Voice-based Analytics & Wearables and Physiological Sensing Students select research papers to present Nov 16 Quiz 11 Student Research Paper Presentations (Part 1) Nov 23 THANKSGIVING: NO CLASSES Nov 30 12 Student Research Paper Presentations (Part 2) Dec 7 13 Mobile security and vulnerabilities, mobile measurements, energy efficiency, Smart Homes/Spaces/Devices, IoT & Wireless Networks Dec 14 Quiz 14 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. MATLAB will be available for Machine Learning Projects. Android Studio and MATLAB are 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.
Assigned Projects