Smart applications

Code 658AA
Credits 9

Learning outcomes

The course aim is to explore methods and technologies for the development of smart connected applications, i.e. applications which exhibit intelligent behaviour -- through the use of artificial intelligence techniques introduced in other courses -- and that are deployed in immersive environments, including smart objects (as embodied by Internet of Things devices), mobile devices (smartphones, tablets), wearables (smartwatches, fitness trackers), home automation devices, web technologies, and cloud services and infrastructure. As such, applications considered for the course will include elements of context-awareness, sensor intelligence, spoken-language interfaces,
The course will be based around a single case study for a novel smart application; students will cooperate as a single team, under the leadership of the instructor, in the design and implementation of a complete solution. In addition to standard lectures, classroom activities will include workshop-like sessions, where alternative designs are discussed, decisions are taken, and tasks are assigned. Weekly homework on the various phases of the joint project will be assigned to the team, and results reviewed the following week. The final goal is the delivery of a fully-functioning prototype of a smart application addressing the initial problem.
While the specific technologies adopted for each case study will vary based on needs and opportunities, the following general themes will be explored in lectures (examples of specific subjects are noted next to each theme):
• Introduction to the course and to the case study
o examples: a voice-activated ambient assistant to answer student queries about the logistics of lectures in a classroom building, or autonomous software for a robotic rover for exploring inaccessible environments
• Common designs for smart applications
o examples: fuzzy logic in control systems or cloud analysis of field sensors data streams
• Make or buy: selecting appropriate procurement strategies
o example: writing your own RRN architecture vs. using cloud services
• Development platforms for smart objects
o examples: Brillo (IoT devices) or Android TV (Smart TVs)
• Development platforms for smart architectures
o examples: TensorFlow (server-side RNNs), or the Face Recognition API (mobile)
• Cloud services for smart applications
o examples: Google Cloud Machine Learning API, Google Cloud Vision API, Google Cloud Speech API, or Deploying Deep Neural Networks on Microsoft Azure GPU VMs
• Deployment and operations
o examples: cloud hosting vs. device hosting, or harnessing user feedback to drive improvement
• Measuring success: methods and metrics
o examples: defining user engagement and satisfaction metrics, or assessing the naturalness of smart interactions