EE 5378/7378 (Summer 2016) Mobile Phone Embedded Design Webpage: http://lyle.smu.edu/~camp/courses/ee7378_taos/index.html Instructor: Professor Joseph Camp Email: "camp" AT "lyle.smu.edu" Office hours: Immediately following lecture or by appointment. Time/Place: TBD (2 hours/day for 20 days - June Term) Teaching Assistant: Eric Johnson Email: "emjohnson" AT "mail.smu.edu" Course Description: In this course, students learn how to develop embedded software for the most widely used smartphone platforms with an emphasis on wireless and sensing applications. Topics include user interface design such as multi-touch and basic HCI design tenets, storing and fetching data with local and networked systems and databases, localization via GPS and wireless signal triangulation, sensing environmental and user characteristics, networking with various wireless protocols, graphics rendering, multimedia streaming, and designing for performance such as controlling memory leaks, object allocation, and multi-threading. Content from the course draws from various fields including wireless communications and networking, embedded programming, and computer architecture. Taos-specific Aspects to Course: The vast difference in the rural, mountainous Taos area from the urban, flat Dallas/Fort Worth Metroplex has interesting engineering implications on wireless and structural infrastructures. This course will use mobile phones as instruments for in-field experimentation and characterization of spectral activity, wireless propagation, and structural health of unique infrastructure present in the Taos region. Students will have multiple field trips for intense experiential learning and will leverage crowdsourcing techniques for scaling their acquired measurement base. To achieve these goals, students will do a deep dive into Android programming related to sensing and networking. Background: CSE 2341 or an equivalent data structures course. Grading: 40% Labs 40% Group Project (Presentation and Report) 20% Mid-Term Exam (1) Schedule You may discuss lab assignments with classmates but all solutions must be original and individually prepared. Late lab work will be penalized at 15% of its full credit per day up to a maximum of 4 days, after which no late work will be accepted. Both exams are in-class exams and must be completed independently. The SMU Honor Code will be strictly enforced. Recommended Textbooks: Online resources at Android are adequate. However, each of the following books puts everything together nicely. Android Programming: The Big Nerd Ranch Guide By Bill Phillips and Brian Hardy, Big Nerd Ranch Guides, April 2013. Professional Android Sensor Programming By Greg Milette and Adam Stroud, Wrox, June 2012. Topics - All with respect to mobile phones: Object-based/Object-oriented Programming Basic User Interface Design (multi-touch, basic HCI tenets) Storing/Fetching Data (Core Data, SQLite, Content Lists) Locating/Sensing (GPS, Cell/WiFi triangulation, participatory sensing) Networking (Push Technology, WebKit, Cellular, Wi-Fi, Peer-to-Peer, Bluetooth) In-Field Experimentation (Spectrum, Propagation, and Structures) 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 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. (University Undergraduate Catalog) Student Learning Outcomes (ABET/SACS): (A/I): Ability to apply knowledge of mathematics, science, and engineering (E/II): Ability to identify, formulate, and solve engineering problems (G/III): Ability to communicate effectively (K/IV): An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice EE 5378/7378 Lectures, Labs, and Project Deadlines Day Date # 1 6/2 Topic Course Overview/Java and Objects Lab Out: First Programs 1 6/2 Field Trip: Spectral 2 6/3 Drive Testing Android SDK/Model3 6/6 View-Controller Lab Out: User Interfaces and 2 6/6 Behavior Inference 4 6/7 User Interfaces 5 6/8 Sensors 6 6/9 Filtering Lab Out: Structural Sensing 3 6/9 7 6/10 Field Trip: Bridge 8 6/13 Data Persistence Reading Ch. 2: "Java For Android" from Programming Android (O'Reilly) Due: 6/5 DFW White Space Measurement Study (IEEE WiNMeE 2014) Android Developer SDK Documentation Due: 6/8 Chapters 1-3 of Android Programming (Big Nerd Ranch) Part II: "Inferring Information from Physical Sensors" from Professional Android Sensor Programming (Milette and Stroud) On Measuring Mechanical Oscillations Using Smartphone Sensors (ACM SIGMOBILE MCCR 2013) Due: 6/12 Citizen Sensors for Structural Health Monitoring (Sensors and Smart Cities 2015) Ch. 34: "Local Databases with SQLite" from Android Programming (Big Nerd Ranch) Lab Out: Networking/Sensor Data Due: 6/15 4 6/13 Gathering 9 6/14 Networking Android Developer Connectivity Documentation Ch. 33: "Tracking the Device's Location" from Android Programming (Big Nerd 10 6/15 Localization Ranch) Towards an Integrated Crowdsourcing Definition (Journal of Information 11 6/16 Crowdsourcing Sciences 2012) Lab Out: WiEye: Spectrum Due: 6/19 5 6/16 Analyzer 12 6/17 Field Trip: Cell Site Map Kits and Multi13 6/20 Touch 14 6/21 Peer-to-Peer Networking 15 6/22 Web Kits 16 6/23 Mid-Term Exam Field Trip: In-Field 17 6/24 Testing 18 6/27 Multimedia WhiteCell (IEEE DySPAN 2015) Ch. 32: "Custom Views and Touch Events" and 36: "Using Maps" from Android Programming (Big Nerd Ranch) Android Developer: Connecting P2P Connections Ch. 31: "Browsing the Web and WebView" from Android Programming (Big Nerd Ranch) --IEEE INFOCOM 2016 Submission (Under Double-Blind Review) Chapters 13, 19, and 20 of Android Programming (Big Nerd Ranch) 19 6/28 Performance (Android) Ch. 13: "Write Once, Test Everywhere" from Hello, Android (The Pragmatic Programmers) 20 6/29 Project Presentations --- *This schedule is best-effort as of the beginning of the semester and subject to change according to the time available in the semester.