Wednesday, 28 March 2012

Goals and Requirements

The purpose of this project is to teach students how to develop applications on mobile devices. We're now in a post-PC age, and smartphones are commonplace. They're powerful, mobile computing devices with all sorts of sensors on board. They're always with us and have intimate access to our habits, location, and contacts.

Newly-minted computing graduates should have at least a passing familiarity with how to build stuff on these platforms.

Academic context and goals

  • This is probably for level 2 or 3 undergraduates with some computing experience. We can assume they can do some basic programming, but nothing extensive.
  • They should have already done a module on computational thinking, which includes a bit of Python.
  • This is for the Open University, so students are all part-time and at a distance. Also, modifying the module as technology changes is likely to be difficult.
  • Building mobile apps is a gateway to additional academic content.

Academic issues touched on this include:

  • the intimate nature of mobile devices, with concerns for sharing, privacy, and context awareness; 
  • using mobile devices as monitors for third parties, such as health and activity monitoring; 
  • using mobile devices as persuasive technology; 
  • mobile devices as cognitive prostheses; 
  • others that you'll mention in the comments.

Technical goals

  • Students get to build applications they can run on their own hardware (one platform good, multi-platform better).
  • Applications should be native, as opposed to over the web (easier to show off, and saves the hassle of configuring and hosting web applications)
  • Applications should have a decent UI and be able to interact with the user. Text-based forms are a minimum; a GUI with animation and drag-and-drop is better.
  • Whatever development platform we use needs to be free for student use and easily downloadable. It also needs to remain that way over several years.

Some other requirements and constraints

  • The module needs to be short: 10-15 credit points. This means we can't do much with teaching complicated frameworks and finicky languages.
  • Students have some basic programming skills, but aren't superstars. They'll know some basic OO and probably have done some scripting.
What have I missed?

No comments:

Post a Comment