Mobile Sensing, Learning, and Control CSE5323 & CSE7323

This is an archived course webpage for 2014. If you are currently enrolled in the class for 2015, please see the updated class website here.

Course Information

Time:
MW 3:30PM-4:50PM, Caruth 484
Lab:
W 5:00-7:00, Caruth 484
Office Hours:
WF 1:00PM-3:00PM, Caruth 451 (updated 1/24)
Text:
Optional, iOS 7 Programming Cookbook
TA:
None
Instructor Webpage:
eclarson.com
          
Download Syllabus as PDF

This class will equip students with the practical skills necessary to develop mobile applications able to take advantage of the myriad  of sensing, machine learning, and control capabilities that modern smartphones offer. The course will focus on interfacing with the hardware of the phone and inferring high level information from the  sensors streams. Particular focus will be placed upon efficiently analyzing and controlling hardware peripherals on third party hardware, such as an embedded micro-controller or peripheral such as Google Glass. This third-party hardware platform will interface with the mobile platform and allow students to integrate realtime control/automation with the sensing learned earlier in the semester.

This course will extensively cover the use of sensing and control in mobile health applications. For example, emerging standards for measuring heart rate and breathing rate from the camera and/or microphone. Additionally, we will focus on actigraphy and activity detection as it applies to wellness sensing.

Assignments will use both objective C and C++ programming languages, therefore a background in Object-Oriented programming is encouraged. Students will design and construct a final project in groups of 2-3, and will demo their final project at the end of the semester. The course grade will be based upon bi-weekly lab assignments throughout the semester, the final project presentation, and the final project website. Final project presentations will be conducted during finals week. Lecture may also contain guest speakers and student groups giving short demonstrations and/or presentations.


Learning Outcomes

This course is constructed to help students design a system capable of working within the constraints of a mobile environment. Students will hone their abilities to design mobile applications that utilize the peripheral sensors on modern smartphones (i.e., camera, accelerometer, GPS, compass, gyroscope, etc.) and utilize control mechanisms on wirelessly connected embedded devices. Finally, students will learn to communicate ideas about these technical areas effectively.

Topics covered may include:
  • Overview of iOS programming
    • Basic iOS 7 interface programming
  • Hardware interfacing
    • audio, accelerometer, gyroscope, compass
    • continuous capture and battery life
    • Filtering and analysis of single dimensional data streams
    • Image and video capture
      • Realtime image processing and tracking
    • Embedded machine learning
    • Communication with third party devices
    • Emerging mobile health practices
  • Pitching applications, story and hook
A note on similarity to EE 5/7378: The curriculum for this course has some overlap from EE 5/7378. Both courses cover basics of mobile programming and make use of embedded sensors. This course, however, focuses less on the networking and location aspects, and instead focuses more on the use of inference and learning. We will also focus on the use of sensing in mobile health technology.

Assignments

Every other week lab assignments will be submitted electronically to blackboard or verified of functionality during the lab for the course. Lab assignments will take the form of an application specification that students will need to implement in groups of 2-3. Late labs will not be accepted. Note that all software needed to finish the assignments will be made available for use in the lab for the course. This includes the Xcode development environments, computers running OSX, iPhone 5S phones, and developer licenses. A limited number of assignments can be completed if students have access to a computer running OSX. However, the iPhone Emulator will not allow access to many onboard sensors (indeed many times the Phone can function dramatically different from the emulator when accessing real time data).

Students taking this class for 7000 level credit are required to complete additional specifications in a limited number of lab assignments.

Students will also be working on a longer final project that will culminate in a final demonstration. Students will receive guidance on the selection of a final project, but will mostly have creative free reign to develop and evaluate a mobile sensing application. The difficulty of the final project should be on par with about three lab assignments.

During development of the final project, teams will update the instructor and other teams of their progress using a publicly hosted website. The site must discuss the details of your project, and chronicle weekly progress. You can think of this as a public page, similar to projects one might see on KickStarter.

During final exam time, the instructor will go around to each team and the team will demonstrate the finished application. Give a brief introduction of the design, and then show each design constraint from your proposal. You will answer questions as posed by the instructor. All team members must answer at least one question, although the team can choose who will answer each question.During final exam time, the instructor will go around to each team and the team will demonstrate the finished application. Give a brief introduction of the design, and then show each design constraint from your proposal. You will answer questions as posed by the instructor. All team members must answer at least one question, although the team can choose who will answer each question.During final exam time, the instructor will go around to each team and the team will demonstrate the finished application. Give a brief introduction of the design, and then show each design constraint from your proposal. You will answer questions as posed by the instructor. All team members must answer at least one question, although the team can choose who will answer each question. be aesthetically appealing, but yet informative. You should concisely explain what your product is, what value it has to offer, features, specification, and maybe even a tagline. Also, remember that good pictures and videos go a long way--Kickstarter pages almost always have compelling videos and often mobile based applications require videos to show the working prototypes.

Note that you are NOT being asked to host the project on KickStarter–only to develop a marketing style ploy to the the write-up and weekly updates. You will be graded based on (1) the clarity of explanations of technical aspects of the application and (2) the criteria met by your original proposed specifications. Remember: approach this as if you were pitching the idea and selling the prototype to potential investors.

Grading

Students will be evaluated based upon their biweekly lab assignments, their final project demonstration, and their final project report, as follows:
Biweekly lab assignments:         60% of final grade (6 labs, 10% each)
Final project demonstration:       25% of grade
Final project website:                  15% of grade

The mother of all demos (MOD): students will have the option to “opt out” of the final project website in exchange for a more risky “mother of all demos” demonstration. Groups that opt into this must meet ALL of the proposed specifications of their mobile applications (additionally, these demos should be slightly more difficult). These specifications must work flawlessly during the final project demonstration. If any specification is not met, the MOD does not apply and a website summary will be due. Note that it does not matter how close the specification was to working: if a portion of the application was specified to run in 5 seconds, but takes 6, the MOD is not met (it is ALL or NOTHING). 

Distance Education

A lab component is required for this course. Distance students will need access to
a machine that can compile and run Xcode (i.e., a mac running OSX)
an iPhone for prototyping (5S and above to use the core motion framework)

Other equipment can be mailed to the student, but must be returned to the University at the end of the course.

Absences

Class attendance is required. Students with three absences or less, who actively participate in class, will not receive any deductions for his/her absence. Starting with the fourth absence, 2% points from the final grade will be deducted for each absence (over the initial three absences).  Please note: Rarely are these measures needed! Should you make it to every class, you will receive 1% flex credit added to your final grade.

Cheating

Cheating of any kind such as plagiarism or direct copying is strictly prohibited and against the SMU honor code. However, collaboration is strongly encouraged. Most lab assignments can be done as a group and turned in as a group. 

Disability Accommodations

Students needing academic accommodations for a disability must first be registered with Disability Accommodations & Success Strategies (DASS) to verify the disability and to establish eligibility for accommodations. Students may call 214-768-1470 or visit http://www.smu.edu/alec/dass.asp to begin the process. Once registered, students should then schedule an appointment with the professor to make appropriate arrangements.

Religious Observance

Religiously observant students wishing to be absent on holidays that require missing class should notify their professors in writing at the beginning of the semester, and should discuss with them, in advance, acceptable ways of making up any work missed because of the absence. (See University Policy No. 1.9.)

Excused Absences for University Extracurricular Activities

Students participating in an officially sanctioned, scheduled University extracurricular activity should be given the opportunity to make up class assignments or other graded assignments missed as a result of their participation. It is the responsibility of the student to make arrangements with the instructor prior to any missed scheduled examination or other missed assignment for making up the work.    (See the University Undergraduate Catalog for details.)

Please note that this syllabus is subject to change. Any changes to the syllabus will be announced via Blackboard and displayed on the course website.