Summer Session 1 2011
Mobile Application Development
CS 4520 / CS5520
College of Computer and Information Science
Class Location: 108 WVH
Class Time: 11:40-1:20 Mon-Thu
Credit Hours: 4 SH
First Class: May 10, 2011
Last Class: June 23, 2011
Instructor: Stephen Intille, Ph.D.
Office: 450 West Village H
Office Hrs: Immediately after class or by arrangement
Email: ...@neu.edu
Course Description:
This project-oriented course examines the principles of mobile application design and development. Students will learn application development on the Android platform. Topics will include memory management; user interface design; user interface building; input methods; data handling; network techniques and URL loading; and, finally, specifics such as GPS and motion sensing. Students are expected to work on a project that produces a professional-quality mobile application. Projects will be deployed in real-world applications. Course work will include project conception, design, implementation, and pilot testing of mobile phone software applications, using weight loss and physical activity motivation health applications as the target domain.
Prerequisites:
No course prerequisites, but students in the course should be comfortable with Java or C# programming.
Course Objectives:
By the conclusion of this course, students will be able to:
Students will have created an innovative and robust mobile application that will be valuable addition to their programming portfolio.
Classroom Format:
Most classes will be divided into two parts. The first half of the class will be devoted to a lecture and question and answer period on a technical concept. This will be followed by either a code walkthrough and critique or a hands-on programming and debugging example. In the second half of each class, students will present a paper on that day’s reading on mobile application design or development, which will be followed by class discussion. The last 20 minutes of most classes will be devoted to rapid prototyping design exercises. Some classes will be devoted entirely to project planning and/or idea presentation or pilot testing of concepts using low-fidelity prototyping.
Required and Optional Texts:
The required text will be:
Burnette, Ed, Hello, Android: Introducing Google's
Mobile Development Platform [$19.97 at Amazon]. This is a good introduction for
someone who knows Java or C# but is new to Android and Eclipse.
Note: The bookstore apparently did not get word that this is the text for the
course, so you will need to order it online. It can often be found in
bookstores that stock technical books.
Otherwise, we will use online resources for Android programming. In addition, we will read papers on the design of novel mobile applications that will be available online or handed out in class.
A recommended but not required purchase is:
Jones, M. and Marsden, Mobile Interaction Design [$58.21 at Amazon]
Additional Materials:
None required. Students are encouraged to bring their
laptops to class during the code walkthroughs sections.
Phones will be provided for testing the projects as needed.
Course Schedule/Outline:
Course requirements include (1) readings for class preparation and class participation including short in-class quizzes, (2) programming assignments and code reviews, (3) in-class presentations of one or more research or design papers and leading of class discussion of those papers, (4) weekly programming assignments and design assignments throughout the course that will support the final project, and (5) the final programming project.
Because of the compressed nature of this summer session, this will be an
intensive course that will require nightly reading and programming. Students
should be prepared to fully immerse themselves in Android programming and
mobile app design and development. If students are interested, we may schedule
additional optional "Android hackfests" when students can work
together after class in or adjacent to the Mobile Health Lab on the 4th
floor.
This class is being redesigned from past offerings, and therefore some of the
details in the schedule below, particularly the readings for each class, will
be filled out as the session goes forward.
Date |
Class topic |
Reading Due |
Assignments Due |
Week 1: Ramping up |
|||
5/10 |
Introduction to the course; Q&A [Slides] |
None |
|
5/11 |
Getting started with development and debugging tools; Introduction to paper prototyping [Slides] |
ADG: (Android Basics Section) |
Email class survey answers |
5/12 |
Activities, Hello World, the Market, and remote bug tracking [Slides] |
Hello Ch. 13 & 14 |
Design Wk 1: Hot (and not) critical analysis of mobile
health apps Teams formed
|
5/15 (6pm) |
|
|
Programming Wk 1: Hello Mobile Application Development (HelloMAD) on Marketplace |
Week 2: Basic GUI and design |
|||
5/16 |
Q&A from Programming Assignment #1
Mobile design guidelines #1 |
ADG: Activities ADG: Activity and Task Design Guidelines
Why Angry Birds is so successful and popular: a cognitive teardown of the user experience [Presenter: TBD] |
|
5/17 |
Basic Widgets; Themes and other UI customizations |
Hello Ch. 3 & 5 ADG: Manifest File ADG: Intents and Intent Filters ADG: User Interface Section |
|
5/18 |
Saving data/state [Slides] |
Hello Ch. 6 ADG: Data Storage
|
|
5/19 |
2D graphics #1 [Slides] |
Hello Ch. 4 ADG: What to Test Pixel Perfect Code: How to Marry Interaction and Visual Design the Android Way (I/O Video 2009) [Presenter: Kevin Rottman] FIRST Else smartphone hands-on demo from Mobile World Congress 2010 (short video) [Presenter:
Trevor Sontag] |
|
5/22 (6pm) |
|
|
|
Week 3: Sensing |
|||
5/23 |
Mobile design guidelines #2 |
iOS Human Interface Guidelines (Human Interface Principles and App Design Strategies sections)
Simple and Usable Intro and Remote Sections [Presenter: Cedric McDougal] (Papers on wiki)
|
|
5/24 |
In class paper prototoyping for projects
|
ADG: Services ADG: Using DDMS Simple and Usable Organize Section [Presenter: Greg Malkov] |
|
5/25 |
Threading, services, wake locks, and AsyncTask BroadcastReceivers and sensors
[Slides] |
ADG: Security and Permissions Debugging Arts of the Ninja Masters |
|
5/26 |
Location and sensing [Slides] |
Hello Ch. 8
Tapworthy Chapter 1 [TBD] (Paper on wiki)Tapworthy Chapter 2 [Presenter: Naveen Babu E] (Paper on wiki) Tapworthy Chapter 3 [Presenter: Alex Nikolayev] (Paper on wiki) |
Design Wk 3: Final Project Preliminary Paper Prototype Design |
5/29 (6pm) |
|
|
|
Week 4: Using the network and a database |
|||
5/30 |
No class - Memorial Day |
|
|
5/31 |
More on sensors
|
ADG: Data Backup
|
|
6/1 |
Final project idea presentations # 1 |
None |
|
6/2 |
Final project idea presentations # 2 |
None
|
|
6/3 |
|
Individual meetings with Stephen scheduled about project ideas |
|
Week 5: Graphics and other tools to add pizazz |
|||
6/6 |
Discussion of programming assignment 3
Review BroadcastReceivers and services
Start SQL database |
Hello Ch. 9 ADG: Examining sqlite3 Databases from a Remote Shell
Case Studies (Case Study 1-6) [Presenter: Rahul Trivedi] Case Studies (Case Study 7-13) [Presenter: Ben Johnson] The Future of Persuasion article and Persuasive Games article [Presenter: Robert Steinbach] (Papers on the wiki)
|
|
6/7 |
2d and 3d graphics [Slides] |
Hello Ch. 10 ADG: Property Animation and View Animation (maybe)
Halpern et al, MoBoogie (paper on wiki) [Presenter: Kevin Cheetham] |
|
6/8 |
3d graphics [Slides] |
ADG: 3D with OpenGL
Ruiz and Yi, DoubleFlip (paper on wiki) [Presenter: Weixun Ge] |
(OPTIONAL) Design Wk 5: Critique of Project/Paper Prototype Design of a Peer Team |
6/9 |
Useful tools #1 (audio and video, telephony, SMS, mapping, livewallpaper, widgets, text to speech, etc.) [Slides] |
Hello Ch. 12 ADG: Audio and Video ADG: App Widgets Android Developer's Guide: App Widget Design
Cheng et al, GoSlow (paper on wiki) [Presenter: Prathamesh Chawan] |
|
6/11 (6pm) | Critiques due for teams that participate in option Design 5 peer review or project ideas (6PM via email) (see Design 5 for details) | ||
6/12 (6pm) |
|
|
|
Week 6: More pizazz |
|||
6/13 |
|
ADG: Copy and Paste
Ruiz, Li, and Lank, User-Defined Motion (paper on wiki) [Presenter: Rashmi Nayak] |
|
6/14 |
Optimization tips [Slides] |
ADG: Designing for Performance ADG: Designing for Responsiveness ADG: Designing for Seamlessness ADG: Debugging and Profiling User Interfaces and Profiling with Traceview and dmtracedump Coding for Life, Battery that Is (2009)
Designing Zippy Android Apps (2010)
Turbo-charge your UI: How to Make your Android UI Fast and Efficient (2009) Purpura et al, Fit4Life (paper on wiki) [Presenter: Sajal Choukse] Lu and Li, Gesture Avatar (paper on wiki) [Presenter: Ruma Nayak] |
|
6/15 |
Bluetooth, networks, and Wi-Fi [Slides] |
ADG: Bluetooth
Shirazi et al, Real-Time Nonverbal Opinion Sharing (Paper on wiki) [Presenter: Christian Strano] |
|
6/16 |
TBD based on class interest [Slides] |
Hello Ch. 13 ADG: Localization
Casting a wide net: how to target all Android devices (2010)
Supporting Multiple Devices with One Binary (2009)
How to Increase performance on Android [Presenter: Pratibha Rana] |
|
|
|
|
|
Week 7: Looking forward and final projects |
|||
6/20 |
Future mobile interfaces...
|
Vazquez-Alvarez and Brewster, Eyes-Free Multitasking (Paper on wiki) [Presenter: Josh Pogrob]
Gaming Will Save Us All (Paper on wiki) [Presenter: Savas Cinar]
Game design as marketing: How game mechanics create [Presenter: Nimrod Drizlikh] |
|
6/21 |
Branching out to other devices and other countries |
The Future of Persuasion and Persuasive Games (paper on wiki)
Optimizing Apps for Android 3.0 [Dongyoo Kang]
Has Apple Just Screwed the Business Model for Selling Software (including comments) and GDC 2010: Ngmoco's Neil Young on how freemium will change the App Store world [Presenter: Madhuvanthi Balasubramanian] |
|
6/22 |
Project presentations #1 |
None |
Final Project Instructions and Checklist
|
6/23 | Project presentations #2 | None | Final project and presentation due (end of day) |
Course subject content is
tentative and may change during the semester. Students will be notified
of such changes.
Schedule after the last class:
Grading Procedures and Criteria:
Prior experience suggests that work in this course will generally fall into one of three categories:
· Superior, striking, or unexpected pieces of work with excellent effort demonstrating a mastery of the subject matter and a skillful use of concepts and/or materials discussed in class; work robustly and fully implemented; work that shows exceptional imagination, elegance of presentation, originality, creativity, and effort.
· Good work demonstrating a capacity to use the subject matter and the ability to handle problems encountered in the course.
· Work that is adequate but that would benefit from increased effort or preparation.
Course work falling into these categories correspond roughly to A, B, and C grades. The final grade for the course will be computed by weighting the results from each assignment according to the following formula:
Class presentations and/or code reviews
Most classes will have a student presentation on
the assigned paper or a student-led code review.
Students will be provided with a template for the presentations and will be
expected to use the Pecha Kucha format (20 slides, 20 seconds each, on auto
advance). This format requires practice in advance! Presentations will
be graded on adherence to the format and overall presentation clarity and
evidence of practice, as well as demonstration by the student of a thorough
understanding of the topic being discussed. All students will be asked to
present at least once, possibly more depending on class size. This Powerpoint template must be used: PPT Template for Presentations.
For code reviews, a student will be expected to select a portion of code they
have written for the class and step through it, explaining key design
decisions. A second student from a different team will be assigned to ask
questions and critique the code.
A presentation on the final project will also be given.
Design assignments
The best way to reduce programming time is to spend time on effective design early in the development process. Therefore, in this class, design and rapid prototyping will be emphasized throughout. Five assignments will get students thinking carefully about design, leading towards a final project, and will ensure that students are working to help each other, across teams, to develop the most innovative mobile apps possible. Individual design assignments are described in more detail below.
Project programming lead-up assignments
A set of six assignments will help teams incrementally converge on an innovative final project. The assignments will get increasingly challenging, as teams first make simple modifications to an existing Sudoku game and then transform it into a completely different type of addictive game that has a health purpose. (It is anticipated that most final projects will look nothing like Sudoku or Boggle!)
All assignments will be “submitted” via uploading apps to the app store. For grading, the apps will be updated and run. Emphasis will be on usability design, creativity of the design, professionalism of the application, and technical robustness. Students will be able to ask questions about their code, but for the most part the code behind the applications will not be reviewed during the grading process.
Final project design and implementation
Although there are design and programming projects along the way, they are all designed to support the development of an outstanding final project. Students will design and implement a fully-functional mobile phone application for Android mobile phones that must be sufficiently robust so that it can be deployed with actual users. Students will work in two-person teams (recommended) or individually. Teams are expected to produce a polished and professional-looking mobile phone application that works robustly on a variety of phone models, meets the user interface design standards discussed in the course, and shows a substantial amount of design creativity. The goal is not to produce yet another app that does the same thing as other apps on the app store, but to design an app that truly stands out from the crowd. Students should aim for simple apps that are addictive/fun/engaging but with a serious purpose of helping people with weight loss or getting physical activity. The app should be extremely easy and pleasing to use. To achieve these goals will require many rounds of design iteration.
To ensure that students can benefit from the collective experience of one another, and to focus the course to maximize the likelihood that students will develop novel application ideas, the course assignments and project will focus on the area of apps for weight loss or encouraging physical activity.
For the final project, there are two general project area options:
Option 1: Design an engaging mobile application that assists with some aspect of long-term weight loss. The team's application will plug into an existing application being tested in a 2-year randomized clinical trial with overweight and obese 18-35 year olds being conducted by researchers at Northeastern, Duke Medical, and MIT (http://www.dukecitystudy.org). Applications might be incorporated into the actual study with 300+ people, providing additional research and publication opportunities for interested students.
Option 2: Design an engaging mobile application that either motivates some form of physical activity or discourages sedentary behavior using either the phone's internal sensors and/or multiple miniature wireless accelerometers that send limb motion data to the phone and detect type, duration, and intensity of physical activity (see the Wockets project (http://web.mit.edu/wockets)). Teams who build convincing, well-justified prototypes may have the opportunity to have their device tested in a study with about 50 people to take place after the conclusion of the course (with researchers from Stanford Medical, Northeastern, and MIT).
Android phones will be provided for development and testing as needed. Teams using the Wockets motion sensors will be provided with those as well.
At the end of the term students will present their project in class. Students will be provided with a template for the presentations. The Pecha Kucha format (20 slides, 20 seconds each, on auto advance) will be used again. Presentations will be graded on adherence to the format and overall presentation clarity, as well as demonstration by the student of a thorough understanding of the topic being discussed and evidence that the presentation was practiced.
Teams / Pair programming:
Students are strongly encouraged to form teams of two. Students will be able to self-select teams. Those students who do not will be paired by the instructor. Students may decide to work individually, but this may make the course more challenging.
Pair programming has been shown to have a number of benefits including increased personal satisfaction and fewer errors. When students work in pairs, both must work together on a single computer, and both must write approximately half of the code. Very little code should be written without the other partner present and watching.
Teams are expected to apply software best practices such as tracking tasks and using software configuration management, and select appropriate supporting tools.
Competition:
At the end of the class, students in the class and a small panel of
distinguished judges who are experts in mobile health apps will try out the
applications and vote for the Top Apps based on creativity, robustness,
usability, and usefulness. The winning team will receive a small prize (and
bragging rights!).
Equipment:
Android phones will be provided to teams as needed for testing during and after class. In some cases they may be loaned out. In that case, students are responsible for taking excellent care of the devices and returning them. Failure to return a phone in working condition will result in a grade not being assigned.
Classroom Policies:
Students are expected to demonstrate qualities of academic integrity: a commitment, even in the face of adversity, to five fundamental values: honesty, trust, fairness, respect and responsibility.
Actively engaging in verbal exchanges of ideas and concepts will be a major component of learning in this course. This will be stimulated by readings, class discussions and case problem solving. Therefore everyone will be expected to actively and positively listen to others and to communicate their ideas during class. Some students are less comfortable speaking in class than others, but open discussion of ideas and even disagreement is essential. Therefore, all students are expected to read course materials prior to class and will be called upon at times even if they do not raise their hands. Participation does not result from talking a lot, but as a result of critical thinking and articulation of ideas.
University policy dictates that students must seek the instructor’s permission to tape record class lectures. I will always allow the use of tape recorders to support your learning.
To facilitate discussion and learning, electronic devices, including laptops, must be turned off in class during the design and discussion period of each class session. Slides shown in class will be available on the course website after each class.
Despite the lunchtime meeting time of our class, please do not eat during the class unless you plan to provide food for everyone.
Writing/Presentation Policies:
Assignments that involve writing and presentation will be judged on clarity of presentation as well as content. Students who are having difficulty with writing will be referred to the Northeastern University Writing Center.
Late Policy:
Prior to an assignment due date, a student may request an extension with a reasonable explanation. It is the discretion of the instructor to permit late assignments. Unexcused late assignments will be subject to a reduction in approximately one half letter grade per day late.
Academic Honesty:
All students are expected and encouraged to discuss the topics raised by this course with each other. Ideas incorporated from an outside source or another student must be documented appropriately in write-ups or presentations. Students must abide by the NU Code of Student Conduct (http://www.northeastern.edu/osccr/codeofstudentconduct.html) and Academic Integrity Policy (http://www.northeastern.edu/osccr/academichonesty.html). Acts of academic dishonesty will be referred to the Office of Student Conduct and Conflict Resolution.
Academic honesty is fundamental to the learning process. As a reminder,
Any
student found cheating on assignments will receive a zero on that assignment.
A second offense will result in a failing grade for the course.
Accommodation:
Students who have a disability are encouraged to seek accommodations though the University Disability Resource Center. Please speak privately with me about your needs for accommodations and strategies to support your success. This information will be kept confidential.
Trace:
All students are encouraged to use the TRACE (Teacher Rating and Course Evaluation) system to evaluate this course and to help the instructor make it better for future students.