Summer School - CS480 - Wearable Computing

Summer School - CS480 - Wearable Computing

LISTEN
Published on 04.05.2016 15:02

Summer Course: CS480 - Wearable Computing

This is an undergraduate level special topics course that will be offered by Dr. Angus Yeung from Intel.

 

Sabanci University

Faculty of Engineering and Natural Sciences Computer Science and Engineering Wearable Computing, Summer 2016

Course and Contact Information

Instructor: Angus Yeung, Ph.D.

Office Location: TBD

Email: afyeung@gmail.com Office Hours: By Appointment Class Days/Time: TBD

Classroom: TBD

Prerequisites: No course prerequisites but students are expected to have basic object-oriented programming skills such as Java, C++.

Course Description

This course invites you to examine the wearable technologies that are just starting to become part of our everyday lives. Wearables live on our wrists, attached to our eyeglasses and embedded in our clothes. Students will learn the ecosystem of wearables, study the technology building blocks that empower wearable computing, master mobile programming skills for wearable devices, and turn creative ideas into innovative wearable product. Upon successful completion of this course, students should be able to write Android applications for wearable devices, as well as analyze sensor data from wearables for many interesting applications such as pattern recognition and machine learning.

Course Goals

Provide the opportunities for students to learn various fundamental issues as well as practical development skill in wearable computing.
In this course students should be able to:

Introduction to Wearable Computing

• Get familiar with the history of wearable computing and how the advances in sensor technologies, multi- device computing paradigm, ubiquitous computing and context awareness give rise to the commercialization of wearable devices.

• Explore the possibilities of innovations with wearable computing, especially when wearable technologies are working along with technologies such as computer vision, pattern recognition, and machine learning.

• Understand the technology ecosystem for wrist-worn, head-worn, and sports wearables and major technology players in this space. Get introduced to some of the latest and unique wearable products.

• Learn about maker movement and how maker devices provide great hands-on experience to students in unleashing their creativity with electronics.

 

Building Blocks for Wearable Computing

• Gain insights into the protocols for mesh networks: ZigBee and Bluetooth Low Energy (BLE), with an emphasis on the design principles and trade-offs in BLE.

• Learn basic embedded software programming and principles of real-time operating system with development board such as Intel Edison or Arduino 101.

• Examine various sensor technologies, including accelerometer, gyroscope, humidity sensor, time-of- flight depth camera, eye tracking camera, and microphone, and get introduced to the typical user cases for these sensor technologies.

• Acquire practical skills in programming and debugging with BLE stacks and be able to interpret HCI

commands captured from the communication between Android phone and BLE device.

• Get introduced to the software technologies for wearables, including Android Wear, Apple Watch programming with WatchKit. Get familiar with the architecture and mechanism in wearable software platforms.

• Examine cloud services for wearable data, learn the common architecture and implementation of cloud services via restful API, and get familiar with data framework such as Google Fit and Apple HealthKit.

Mobile Programming for Wearables

• Learn basic Java and Android programming skills to get prepared for programming for wearables. Get ready of development environment for working with wearable devices.

• Develop Android and Wear applications for Android phone and wearable device, including handling and making device data ready for Google Fit.

• Enhance mobile programming techniques by working with advanced features such as notifications for Wear, Google Map API, content provider for database, asynchronous processing, and low-level BLE programming (without Android Wear).

Innovation with Wearables

• Learn how to apply development process to lifestyle innovation, including the criteria for choosing the right project, prototyping effort for proof-of-concept, development of user cases, and software modeling.

• Develop skills necessary for working with a wearable device and get introduced to typical software architecture design for wearable computing.

• Apply object oriented design principles and good interface design practice to the design of applications working with wearable devices. Employ useful design patterns such as façade, builder, singleton, factory and observer to software design.

• Gain a deeper understanding of multi-threading and concurrency issues when working with streaming of wearable sensor data. Understand how to partition operations appropriately between user interface threads and worker threads.

• Get introduced to common software performance pitfalls and good practice in performance tuning performance. Understand the trade-offs between responsiveness and battery conservation.

• Develop end-to-end architecture and design modules for streaming and processing of time series sensor data from wearable device to companion phone and to cloud server.

• Learn how to apply pattern recognition and machine learning techniques to time series motion data captured from wearable devices and develop interesting and innovative applications.

 

Course Topics

Session

# Of

Classes

Topics

Introduction to Wearable Computing

2

• Ecosystem of Wearable Computing

• Wrist-worn Wearables

• Head-worn Wearables (Augmented Reality)

• Sports Wearables

• Maker Space

Building Blocks for Wearable

Computing

6

• Bluetooth Low Energy (BLE)

• Embedded Software Programming

• Sensors for Wearables

• Data from Wearable Device

• Android Wear

• Apple WatchKit

• Cloud Services

• Google Fit

• Apple Health Kit

• Lab #1: Setting up Android programming environment

• Assignment #1: Analyzing BLE packets

Mobile Programming for Wearables

6

• Java Refresher

• Getting Started with Android Programming

• Android App and User Interface

• Building Your Android Wear App

• Working with Notifications

• Android Programming with BLE

• Data Model and Cloud Services

• Assignment #2: Android Wear Application

Innovation with Wearables

6

• Process for Lifestyle Innovation

• Prototyping and Modeling

• Working with a Wearable Device

• Three-Tier Architecture for Wearables

• Useful Design Patterns and Methods

• Multi-threading and Concurrency for Wearables

• Performance Tuning

• Retrieval and Analysis of Sensor Data

• Lab #2: Setting up a Wearable Device

• Assignment #3: Data Analytics and Visualization for Wearables

Final Exam

1

 
 

21

 

 

Texts/Readings

Textbook

Lecturer’s handouts.

Suggested Readings

R. Heydon, Bluetooth Low Energy – The Developer’s Handbook, Prentice Hall. S. Moyerman, Make: Getting Started with Intel Edison, Maker Media, Inc.
C. Horstmann, Object-Oriented Design and Patterns, 2nd ed., John Wiley & Sons, Inc.
J. Annuzzi, L. Darcey, S. Conder, Advanced Android Application Development, 4th ed., Addison-Wesley. D. C. Ruiz, A. Goransson, Professional Android Wearables, John Wiley & Sons, Inc.

Course Communication

Course materials such as syllabus, handouts, notes, assignment instructions, etc. can be found on the course website. You are responsible for regularly checking with the messaging system (or other communication system as indicated by the instructor) to learn of any updates.

Course Requirements and Assignments

This class is designed such that in order to be successful, it is expected that students will spend 5 hours per week in lectures as well as 3 hours per week in preparing for class and completing assignments.
There will be three assignment involving design and implementation. Final Exam will be held in the last lecture and cover the material for entire class.

Grading Policy

The percentage weight assigned to class assignments, group project and final exam are listed as below:

Assignment #1

10%

Assignment #2

20%

Assignment #3

30%

Final Exam

40%

 

100%

Late or missed work will not be accepted.

 

Wearable Computing, Summer 2016, Course Schedule

Schedule is subject to change with fair notice. Notice will be announced in the class.

Week

Lecture#

Date

Topics

Deadlines

PART 1: Introduction to Wearable Computing

1

1

06/22/16

1.1 Introduction

 

1

2

06/24/16

1.2 Ecosystem of Wearable Computing

 

PART 2: Building Blocks for Wearable Computing

1

3

06/27/16

2.1 Bluetooth Low Energy (BLE)

 

2

4

06/29/16

2.2 Sensor Technologies for Wearables

 

2

5

07/01/16

2.3 Embedded Software Programming

 

2

6

07/04/16

2.4 Working with BLE Stacks

 

3

7

07/06/16

2.5 Software Platforms for Wearables

 

3

8

07/08/16

2.6 Cloud Services and Data Analytics

 

PART 3: Mobile Programming for Wearables

3

9

07/11/16

3.1 Java Refresher

Assignment #1

4

10

07/13/16

3.2 Getting Started with Android Programming

 

4

11

07/15/16

3.3 Android Wear Programming

 

4

12

07/18/16

3.4 Working with Notifications

 

5

13

07/20/16

3.5 Advanced Techniques for Wear Programming

 

5

14

07/22/16

3.6 Cloud Storage for Wearable Data

 

PART 4: Innovation with Wearables

5

15

07/25/16

4.1 Development Process for Wearable Projects

Assignment #2

6

16

07/27/16

4.2 Software Architecture and Design

 

6

17

07/29/16

4.3 Asynchronous Processing of Wearable Data

 

6

18

08/01/16

4.4 Performance and Trade-offs

 

7

19

08/03/16

4.5 End-to-end Processing of Time Series Data

 

7

20

08/05/16

4.6 Advanced Applications for Wearables

Assignment #3

Final Examination

7

21

08/12/16

Final Exam Time: TBD, Place: TBD