General Information
Class: Mondays and Thursdays, 2:00 - 3:50, Salisbury Labs (SL) 105
Teaching Assistant: Chaitany Nimkar, cnnimkar@WPI.EDU
Student Assistant: Himanshu Sahay, hsahay@WPI.EDU
Instructor: Prof. Emmanuel Agu, FL-139, 508-831-5568, emmanuel@cs.wpi.edu
Office Hours: Thursdays 4:00PM - 5:00PM; Others by appointment
Required Texts:
- Head First Android Development, Dawn Griffiths and David Griffiths, O'Reilly Books, 2015 (Available for free through WPI library)
- Android Programming: The Big Nerd Ranch (Second edition), Bill Phillips and Brian Hardy, The Big Nerd Ranch, 2015 (Available for free through WPI library)
Supplemental Texts:
- Official Android Documentation by Google
- The Busy Coder's Guide to Android Development by Mark L. Murphy
- Hello Android (Fourth edition), Ed Burnette, The Pragmatic Programmers, 2015
- Introduction to Android Application Development: Android Essentials (Fourth edition), Joseph Annuzzi Jr, Lauren Darcey and Shane Conder, Addison-Wesley, 2015
- Ubiquitous Computing Fundamentals, John Krumm, CRC Press, 2010
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 areas of mobile and ubiquitous computing. Focus will be on the computer science issues in mobile computing. This offering will focus on emerging mobile and ubiquitous computing ideas that are implemented on Android smartphones. Topics to be covered include mobile systems issues, human activity and emotion sensing, location sensing, mobile HCI, mobile social networking, mobile health, power saving techniques, energy and mobile performance measurement studies and mobile security.
Grading Policy: The course will consist of assigned Android app programming projects and a final project. There will be also be 5 quizzes (Roughly every Monday).
Points Distribution: Assigned Android Projects 40%, Final project: 40%, Quizzes: 20%Recommended background: The course will assume knowledge of the following material:
Course Timeline: In the first 4 weeks, I will introduce mobile and ubiquitous course concepts and definitions, and introduce Android programming. In those 4 weeks, 4 projects will be assigned to students. Students will also work in teams to brainstorm on final project ideas which they will present in week 4. In weeks 4-7, students will work on their final projects. The TENTATIVE course timeline is summarized below along with class and quiz dates.
- Object-oriented concepts including classes, inheritance, exceptions, interfaces, polymorphism,
- Proficiency in the Java programming language or a course equivalent to CS 2102 (object-oriented design concepts)
- Processes, threads, process management, synchronization, input/output devices, interrupts, memory management, file systems or a course equivalent to CS 3013 (operating systems)
- OSI reference seven-layer stack, wireless networking, Internetworking, network protocols, socket programming or a course equivalent to CS 3516 (computer networks)
Dates Quiz Days Class Topics Deadlines 1/12 1 Course Introduction, Definitions (Mobile, Ubiquitous Computing, IoT, Android Introduction and Setup) 1/16 MARTIN LUTHER KING HOLIDAY: NO CLASSES 1/19 2 Android UI Design, Interactive and data-driven Android UI Project 0 due 1/23 Quiz 3 Android Component types, process model, app lifecycle, logging errors, Intents and fragments Students form groups for Final Project 1/26 4 Camera: taking pictures, face recognition, Audio & video playback Project 1 due 1/30 Quiz 5 Location-Aware computing (determining location, geocoding, Maps & Google places) Databases, Introduction to Context, Context-Aware computing 2/2 6 Introduction to sensors, Android sensor programming Human-centric sensing (detecting user state, step counting, activity recognition, inferring user intent) Project 2 due 2/6 Quiz 7 Introduction to Machine Learning, examples of final projects Groups submit 1 slide proposed final Project 2/9 8 Ubicomp using audio, video, images, Using Internet data in apps: web services, connecting to social media Communication: SMS, making calls, notifications Project 3 due 2/13 9 Student propose final projects Final Project Proposal due 2/16 Advising Day: No Undergrad Classes 2/20 Quiz 10 Advanced mobile computing topics (mobile social networking, mobile HCI Inputs, measurement and app usage studies, energy efficiency 2/23 11 Advanced Ubicomp topics (emotion sensing, mobile crowdsensing, notifications and attention) 2/27 Quiz 12 Advanced Ubicomp topics (mobile and ubicomp security and privacy) 3/2 13 Students present final projects 3/3 14 Students present final projects Final Project due Programming projects: For the programming projects, students will either run their work on the Android Studio emulator or use an Android phone. Android Studio is installed in the Zoolab in Fuller basement. It is anticipated that most final projects will involve building an Android application. Students who prefer to do projects using other devices should discuss this with the professor and be prepared to obtain the devices themselves.
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, which was previously submitted by a student in a previous iteration of this class (or CS 528 grad version) is considered cheating
Class Website: The class website is at http://web.cs.wpi.edu/~emmanuel/courses/cs4518/C17/. Access to papers: Some of papers covered in class will be available from the ACM and IEEE digital libraries, which both allow free access to papers from any WPI on-campus computers (or computers with a WPI IP address).Assigned Projects
- Project 0: Android Setup and Practice
- Project 1: Designing Android Screens (Layouts, Views and Widgets)
- Project 2: Exploring the Android Camera and Images
- Project 3: Activity Recognition with Android Sensors
Final Project
s
- [ Final Project Description ]
- [ Final Project Grading Rubric ]
- [ Student Final Project Slides & Videos ]
Advanced Mobile and Ubiquitous Computing Topics
- Application Areas: Health and Personal Assistants - Web and Multimedia (Video and images) - Mobile social networking & crowd sensing - Location-Aware Computing and Proximity - Human Activity and Emotion Sensing - Sensor processing, Context Awareness and Inference - Input Devices and Mobile HCI - Mobile/wireless measurement and characterization - Energy Efficiency - Systems Issues - Mobile cloud - Security and Privacy
Lecture Slides, Code and Paper Downloads
Schedule for office hours
Note: All SA office hours will be held in the zoolab unless you receive instructions otherwise.
Monday Tuesday Wednesday Thursday Friday 12:00 - 1:00PM Himanshu 1:00 - 2:00PM Chai Chai Himanshu Himanshu Himanshu 2:00 - 3:00PM Class Chai Himanshu Class Himanshu 3:00 - 4:00PM Class Chai Class 4:00 - 5:00PM Chai Chai 5:00 - 6:00PM Chai Chai 6:00 - 7:00PM Chai Chai 7:00 - 8:00PM Chai 8:00 - 9:00PM Chai 9:00 - 10:00PM