Tuesday, November 1, 2011

Mobile Apps Development Course at the University of Notre Dame

Smartphones, tablets, and other powerful mobile devices are rapidly becoming omnipresent and users rely on mobile applications for their communications, business activities, entertainment, and countless other usage scenarios. Application development on mobile and wireless devices differs from programming of “traditional” computing systems in various ways and requires trained professionals that are familiar with the unique requirements of mobile systems and their development platforms and tools.

The goal of this course is to expose talented undergraduate students to hands-on experience with mobile systems, technologies, and applications, thereby preparing them for careers in mobile and wireless communication and computing domains. Specifically, concrete objectives of this course are:
  • To increase the number of professionals in the area of mobile applications and technologies.
  • To develop student skills and abilities in applying engineering and computing tools and methods to real-world problems.
  • To enhance students’ written and oral technical communication skills.
The course is co-taught by Professors Patrick Flynn and Christian Poellabauer; both members of the Wireless Institute and faculty in the Computer Science and Engineering department at the University of Notre Dame. The course was offered twice so far (with 9 students enrolled in 2010 and 30 students enrolled in 2011) and students are invited to develop projects around a specific theme. In 2010, the theme was “Notre Dame” and students developed apps on both Android and iOS platforms to help their peers on campus, e.g., one app provides easy access to dining options and nutritional information on campus, another app provides information about football weekends on campus, and the third app allows students to become instant reporters using their mobile devices for Notre Dame’s student-run newspaper, the “Observer”. In 2011, the focus was on apps that help individuals and businesses in the South Bend area, and 16 apps were developed in areas such as health care, biometrics, entertainment, communication, and security. For 2012, the theme will be “App Development for the Greater Good” and students are invited to develop mobile apps that (well aligned with Notre Dame’s mission statement) address challenges such as unemployment, injustice, access to health care, and many other social issues.


Instructors’ websites:

posted by Christian Poellabauer

Friday, October 7, 2011

University of Virginia

Teaching CS courses with the Android environment has become increasingly popular as more and more students are showing up to class carrying their own Android device.  At the University of Virginia, we were fortunate enough to start with a small set of phones that we lend out to students.  So, now that we know we have phones (either ours or from students) how can we best put them to work in our classes?

The most straightforward answer is a software engineering class doing some sort of team-based project.  But what we found at UVa that worked really well was to pair teaching Android and mobile with teaching web services.

The idea is that students would build a web service, and then consume that web service in their Android app.  Then they would repeat the cycle for a second service, using a different web platform or language. Finally, students would have include a web service from another team in the class in their app, encouraging them to provide reasonable documentation and API.

So far, we are running this class for the second time now with Android and it has been a phenomenal success!  Students are learning PHP and Ruby on Rails to create their web services, using SOAP/XML, and JSON to pass data between the services and the phones, and are also learning good mobile software design.  Students enjoy the class and have a project that is easy to show off to potential employers when it is done.

So, if you or your students have Android phones, consider combining mobile with web services.

posted by Mark Sherriff, Assistant Professor, Computer Science, University of Virginia

Tuesday, October 4, 2011

The Computer Science and Engineering department at the University of North Texas

The Computer Science and Engineering department at the University of North Texas (http://www.cse.unt.edu/) has begun its second year of CSCE 3410 - Advanced Programming: Android Devices. The class has been very popular, with each student responsible for creating an app over the course of the semester. Very few restrictions are placed on what the students can create, and several really good ideas have come from the class, including phone silencing based on location, communication with motorcycle helmets, and physics based games, with several apps available in the Market.

I try to approach the course from both a technology and business perspective, focusing not just on the code, but on interface, usability and usefulness. We have recently focused on apps for specific industries that students may have experience with outside the classroom based on their work or hobbies. We also frequently have industry visitors who share their needs for mobile technologies, and students have formed several partnerships with outside ventures and later secured jobs with these companies. The course has served to greatly strengthen the school's ties to industry.

The University of North Texas also has a very active set of game programming courses (http://larc.unt.edu/), and many students port their games to the Android platform.
I also created a small app to use as a demo and help the students learn Android programming:

posted Ryan Garlick, PhD
Principal Lecturer, Advisor
Department of Computer Science and Engineering
University of North Texas

Thursday, August 18, 2011

Stanford MobiSocial Computing Laboratory

Our research group in the MobiSocial Computing Laboratory has been working on an alternative social network where users need not give up data ownership to a proprietary social network.  We have created a system called Musubi (Mobile, Social, UBIquitious) that appears quite promising.

It is a challenging task to create a practical, privacy-honoring open social network.  First, how does one create an economically feasible solution that does not monetize users' data?  Second, given 750 million users already have friends in Facebook, nobody would use an alternative unless it is more compelling beyond just offering privacy.

We have developed Musubi as an augmentation, rather than a replacement of today's social networks.  It is designed to better support private conversations between friends and people we meet.  While Musubi does not help people find friends and share widely, it also reduces the dangers of online social networking.  As a social network only to be used on mobile devices, Musubi takes advantage of the characteristics of mobile devices to provide a novel and compelling experience to end users and to provide privacy.

Musubi enables users to simply tap the phones, using NFC (near-field communication), and they can start socializing with each other.  Also a user can create a group, and share it with friends over any electronic medium, such as email, text messages, or Musubi messages.   Musubi also allows an encrypted and password protected group member list to be distributed to other users at the same GPS location.

Musubi is a group application platform designed to make it easy for all kinds of mobile applications to share information (locations, pictures, real-time finger painting, high scores) on friends' group feeds.  Musubi makes heavy use of contextual information to minimize the friction of interaction, e.g. photos can be automatically shared with a designated group without any extra key strokes at all.

In Musubi, user data are not stored in centralized servers.  The Musubi service simply routes encrypted messages between phones, providing a little bit of queuing where necessary in case the phones were not online.  Users are responsible for backing up content of interest to a server of their choice.  Without a central server that collects and stores users' information, Musubi complies with COPPA (Children's Online Privacy Protection Act) trivially, unlike networks like Facebook and Google Plus, thus allowing it to serve kids under 13.  The lightweight infrastructure means that it can be provided as a low-cost service perhaps offered by the operator, or it can be supported by the application platform, which traditionally charges 30% of the application revenues.

We have also conducted a series of five user studies over a five-month period. We saw extremely enthusiastic responses from a number of adults and college students who believe that Musubi is the social network design of the future.  By and large, however, most students in the study were unaware of privacy issues.  Even though the high-school students in our study  were indignant that their personal data were sold without their knowledge, only half expressed interest in using Musubi.  The user study with thirty elementary students indicates that Musubi is easy to use and compelling for kids who are not already on Facebook.

Musubi offers a solution to those who shied away from social networking for privacy concerns, or are using today's proprietary systems for lack of an alternative.  Musubi's support for private group communication may find new uses as well.  For example, soldiers may use Musubi to stay in touch with their family and play games with their children without the fear of disclosing their locations to the public inadvertently.

This study also suggests that it is important to encourage teenagers to use privacy-honoring systems as they start participating in social networking.  For example, schools can adopt privacy-honoring networks for class discussions and run collaborative learning software on top of such networks.  This reduces the need for students to take the effort to build up their friends' network in a proprietary, less-safe, system.  This may have the effect of increasing adoption of privacy-honoring social networks.

A prototype of Musubi is available on the Android market.  Further information can be found on http://mobisocial.stanford.edu.   Please check it out and let us know what you think.

Musubi is an open-source platform; we welcome collaboration at all levels -- user studies, apps and infrastructure development.

posted by Monica Lam

Monday, January 31, 2011

Univ of Washington Certificate program in Android Application Development

The University of Washington’s  Professional & Continuing Education Division is developing a new Certificate program in Android Application Development which will launch in Fall 2011. The program will be available as a classroom-based program in downtown Seattle and will also be available online. It was developed in conjunction with an advisory board consisting of both UW faculty and industry professionals. Participating companies on the board include Google, Samsung, T-Mobile, Cisco, Entertonement, Ubermind, Centurytel, Sogeti, and SURFIncubator. The goal of the Certificate Program is to provide industry professionals with the core development skills needed to develop an application on the Android platform and to facilitate communication designed to retrieve and store data and interact with other application The program concludes with deploying a complete application along with topics related to mobile application marketing, upgrading and app and entrepreneurship. Students will work on a variety of devices generously donated by several board member companies.

Course 1: Android Development Fundamentals
This course will introduce the student to the core development skills and practices needed to develop an application on the Android platform.  Code examples will be provided during instruction with the goal of development of an application by the student at the end of the course.  The language for the course is Java.

Course 2: Interaction and Communication with Android
The second course builds on the foundations of Android development. We will discuss topics on application communications to retrieve and store data, interaction between other applications, and development techniques that use advanced features of the Android platform. Communication and interaction are key concepts to building rich applications in the Android environment.

Course 3: Application Deployment, Marketing and Entrepreneurship
The third course in the Android development series focuses on the business functions that allow a developer to bring an application to the appropriate audience. We cover the aspects of application versions and upgrade management, marketplace hosting, and monitoring tools for your application.  We will look at the business costs associated with application hosting and ways to market your application.

posted by scott farrar