Mobile Applications for Sensing and Learning CSE5323 & CSE7323

Course Information

TTh 11:00AM-12:30PM, Caruth 484
W 5:00-7:00, Caruth 484
Office Hours:
F 1:00PM-3:00PM, Caruth 451
Instructor Webpage:
This class will equip students with the practical skills necessary to develop mobile applications that are 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. This third-party hardware platform will interface with the mobile platform and allow students to integrate realtime control/automation with the sensing learned during in the semester.

This course will 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. New in 2015 offering: We will also use the IBM Watson ecosystem for designing applications that can ask and answer plain language questions, using the Watson QA-API.

Assignments will use swift, objective C, objective C++, and python 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, in class assignments, 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 8 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
    • Machine learning as a Service
    • IBM Watson Questions Answering
    • Communication with third party devices
    • Emerging mobile health practices
    • Hardware Acceleration
  • 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. In most cases these courses complement the material presented.


Equipment. 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).

Lab 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. Lab assignments will be turned in as a team and each team member will fill out a team member contribution form after turning in the assignment. Lab grades will be adjusted based upon the team member contributions. Justification must be given for all team member contributions.

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

In Class Assignmnets. Periodically, there will be video lectures to watch before class time. After video lectures, we will use class time to complete an assignment. The spcifications for the assignment will be given at the start of class and the assignment will then be turned in at the end of class (i.e., a flipped classroom). Students will work in teams and turn in the in-class assignments as a team. Come prepared to work! All team members will need to be present to receive a grade. An absence during an in-class assignment cannot be made up after the in-class assignment.

Final Project iOS Application. 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 two lab assignments. Final project grades will be adjusted based upon the team member contributions. Justification must be given for all team member contributions.

Final Project Presentation. 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. Remember: approach this as if you were pitching the idea and selling the prototype to potential investors.

The mother of all demos (MOD): students will have the option to “opt out” of the final project video in exchange for a more risky “mother of all demos” demonstration. More details are given in the materials tab of this website.

Final Project Video. The Final project video should concisely explain what your product is, what value it has to offer, features, specifications, and maybe even a tagline. Also, remember that engaging 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.


Students will be evaluated based upon their biweekly lab assignments, their final project demonstration, and their final project report, as follows:
Biweekly lab assignments: *
50% of grade (5 labs @ 9% each, 1 lab @ 5%)
In Class Assignments: 
25% of grade (5 at 5% each)
Final Project iOS Application: *
15% of grade
Final Project Presentation:  
5% of grade
Final Project Video: 
5% of grade
               * = grades scaled by team member contributions

Extra Credit: Periodically extra credit will be allowed by adding features to lab assignments. Note that this credit can only be used to make up lost points on the specific lab assignment being graded. That is, you cannot use extra credit to attain a grade higher than 100% of the lab grade. Also note that extra credit features are graded more critically than lab deliverables.

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.


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!


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 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.