COSC 4355/6355: Ubiquitous Computing

Total Page:16

File Type:pdf, Size:1020Kb

COSC 4355/6355: Ubiquitous Computing

COSC 4355/6355: Ubiquitous Computing

Description The Ubiquitous Computing (UC) course was one of the first of its kind when it was created back in 2003. Its goal is to train students in software development for mobile devices. Initially, it used the Windows mobile platform and programming included not only smartphones, but also custom-made sensors, such as 3D accelerometers that were Bluetooth enabled. With the introduction of iPhone in 2008, the UC course was one of the first nationwide to switch platforms. The iPhone brought a revolution in mobile computing - not only redefined user- interface, but also incorporated a number of sensors, such as 3D accelerometer and GPS, in the device itself. Mobile computing is a subset of ubiquitous computing, which also includes ambient intelligence and embedded processors (e.g., in the car). However, it is the most important subset and thanks to the iPhone platform, programmers have to deal with just a single piece of hardware, laden with sensors, which they can program via a unified software development kit. In the wake of iPhone’s introduction, other companies scrambled to catch up with Apple and developed equivalent platforms, such as the Android platform. Naturally, all these platforms have common elements, but also some differences. It is difficult to teach all the little details that differ among platforms within a single semester and it will distract from the main message. If one is proficient in one mobile platform, it is not very difficult to become proficient in a competing platform through self-study. For this reason we stick with the iPhone platform throughout this course. The course uses iPhone/iPad as a medium in order to teach: a) Software development methods for mobile platforms. These methods are different than those applicable to desktop platforms due to issues related to limited hardware resources, capricious sensor communication, and unreliable wireless connection. b) User interface methods for mobile platforms. These methods are different than those applicable to desktop platforms due to issues related to small screen factor, on-the-go use, and modality of interaction (i.e., finger). c) Software development in small teams following the pair-programming paradigm. This includes learning to work as one (entrainment) with 2-3 other people, managing interpersonal relations, honoring milestones, and presenting your work effectively. Two time-scales are targeted: small (program something simple within an hour or so) and large (program a big project within a few months). Both of these time scales arise in industry practice.

Teaching Philosophy This is an advanced programming course and thus, time-consuming by its nature. If you do not have the necessary time you are advised not to take this course. Given the direction the software industry has taken, this is also one of the most important courses for your professional career and thus, one that needs special attention. We believe that in an advanced programming course having a formal lecture series is the equivalent of reading a tedious manual from A to Z. It can be done, but it is neither smart nor cool. The best way for someone to become a good programmer is by doing things. Students need to read/practice the designated online material before each class and come ready to implement an exercise that will be given. The instructors will provide the students some hints and offer help along the way, but the students themselves at the group level will do most of the exercise. Three times during the course of the semester these exercises will be done without any help (in-class assignments). Grading  10% Quizzes (individual mode)  45% (3 x 15%) Programming assignments (group mode)  10% In-class interactive programming exercises (group mode)  35% Group project Instructors @ Office Hours Dr. Ioannis Pavlidis ([email protected]) Office Hours: Contact via Email Ashik Khatri ([email protected]) Office Hours: Monday, Wednesday 11am-12pm, at HBSC 302 Dinesh Majeti ([email protected]) Office Hours: Tuesday, Thursday 11am-12pm, at HBSC 302 External Reference Materials 1. Swift Language Guide: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Progra mming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-ID309 2. http://www.tutorialspoint.com/swift/ 3. https://developer.apple.com/library/ios/navigation/

Class Schedule

Week 1 (08/25) ● Course Intro ● Swift Intro

Week 2 (09/01) ● Intro iOS programming using auto layout ● Project Specification

Week 3 (09/08) ● UIStackView, Navigation

Week 4 (09/15) ● Segue, Navigation controllers

Week 5 (09/22) ● Midterm 1

Week 6 (09/29) ● Project Specification and Demo

Week 7 (10/06) ● Web services, table view, NSUserDefaults

Week 8 (10/13) ● Location, Map, gestures

Week 9 (10/20) ● Action sheet, Notifications, Activity controller, imagepicker, Camera

Week 10 (10/27) ● Midterm 2 Week 11 (11/03) ● Project Demo

Week 12 (11/10) ● Sensors - I

Week 13 (11/17)  Sensors - II

Week 14 (12/01) ● Midterm 3

Week 15 (12/08) ● Final Project Demo

Project Description Groups need to come up with a project idea that will lead to the development of a substantive application, deployable in the App Store. They need to submit a Specification document of this idea via Blackboard by September 1, 2015. Project ideas do not need to be novel, although novelty will be highly rewarded. Project ideas will be reviewed and approved or rejected by the instructors. Too easy and uninteresting or extremely ambitious and fuzzy proposals will be struck down. A number of project descriptions from the previous semesters is given below, as food for thought.

Project Abstracts

Project: Connected appliances We are seeing home automation products grow in popularity that allow you to make the most efficient use of energy in your home. From sprinkler systems to home theatre, they are already on an app near you. This is just the beginning, imagine a world where all your appliances are on your WiFi network and can automatically tell you when they need servicing and order service based on the quickest/cheapest available technician. Why can’t homes be more like smart cars where they know what is wrong and can tell you when you need an oil change or your tire pressure is low. Now it would be even better if these appliances all talked to each other and optimize the use of energy in your home without you doing a thing. Your Challenge: “We will provide you with a hardware controller kit that can be attached to a simple light bulb and you will need to turn it off or on using your iPhone app” Project: Scholar Chef The general purpose of this app is to offer advice and tips to incoming college students (who find themselves living on their own for the first time) who want to start learning how to cook. Students can find how-to articles and recipes in the application and will even be able to ask their questions on the forum board. - Users (with personalized profiles) will be able to post either step-by-step recipes or how-to articles. - Users will be ranked (from newbie to top chef) based on the ratings (and quantity) of their posted recipes so that anyone can find the top rated users on the site. - Favorite users can also be followed (similar to Twitter). Whenever this user posts a new recipe, his/her followers will be notified. - Any user can rate and comment on other users’ recipes and how-to articles. Recipe comments can also offer modifications to the recipe (and these modifications can also be rated and filtered for anyone to see what the top suggestions are). - There will be a forum where students can ask for advice and tips on anything that has to do with cooking. Project: MyBabyBook For parents to record baby’s precious moments, and manage them and share with friends or families easily User can: - Invoke camera app to take photos anytime anywhere - Store photos based on timeline or location - Build up customized photo albums, such as photo walls or scrapbooks - Shake the phone to change the theme of photo walls randomly - Share those photos with families and friends through our apps - Add captions to each photo and allow comments - Copy or move pictures from folder to folder - Manage more than one baby at a time in the app

Project: Green UH Recycle Bin Finder We have decided to create a utility app that will help the user locate the nearest recycling bin from their current location using a combination of visual and/or audio interfaces. Shows the users current location centered on a map (Google type map, or UH campus map) Shows locations of recycling bins on map The nearest recycling bin has been highlighted - Other recycling bins can be alternatively selected as the focus - A readout shows the distance from the current location to the recycling bin Audio A beeping sound will indicate how close you are to the recycling bin in a “hot or cold” type manner, where the higher the frequency of beeps indicates closer proximity to bin. The user must be provided the option to change the sound to something different, such as a Geiger counter type sound, or turn it off the sound entirely. The following additional optional features are being considered for implementation. Provide feedback to University regarding the state of a bin. - Default states could include things such as full, damaged, or missing. - Forms of communication could be text or e-mail. Give users option to rotate map based on directional heading. Provide capability for user to enter a location instead of getting the current location. Project: UH Textbookslist The purpose of this app is to give UH students the means to be able to find the textbooks they need for their courses at the University of Houston and in addition, give students a central marketplace to sell their books and/or buy books from their fellow students. The system will have the following features: 1. All the textbooks used in UH for different classes according to their majors listed for the current semester. 2. It will incorporate a search engine where the person can search the book by class names, class numbers or even by the title or ISBN of the book. 3. Compare the prices of these books among different bookstores on campus and major online websites like Amazon, EBay etc. This will help the students to keep their budget low on books. Both new and used prices will be listed. 4. An ad central hub that will display listings of fellow UH students for books they want to sell. ● Student must register an account using his/her UH email account in order to post an ad. ● A posting requires the name of course it was used for, a picture (if picture of certain book is not in database, then they can upload their own picture using their camera), condition, book name, ISBN, description, contact info, and their preference of communication (text messaging, calling, or email). A posting will only stay on for three days on the app. From there, it will be in the user’s history and they have the option to repost it. This is to avoid having a posting listed for too long when it could of been already potentially bought. ● All listings by students will be searchable by ISBN, book name, or course name. 5. Notification system to students (must be registered) if a certain book they are looking for posted in the listings.

Recommended publications