Instructor:
Nathan Eagle, PhD
Visiting Lecturer and Research Scientist
Massachusetts Institute of Technology
What is this
course about?
This course will teach students how to use the interpreted language Python to access the full suite of mobile phone functions without the usual amount of programming experience required to build complex mobile phone applications. We will cover the main areas of mobile phone application development:
· Building an intuitive user-interfaces
·
· Phone APIs (making a call / sending a SMS)
· Networking and Sockets (Bluetooth / GPRS)
What do I need
to know before taking this course?
No computer programming experience is required to take this course.
Suggested Material:
While there are dozens of extremely helpful textbooks on Python, we have found information on the web equally useful for teaching purposes. Sites we recommend include:
· Python Tutorial (written by the creator of the language, Guido van Rossum)
· Python for Beginners:
o http://www.python.org/moin/BeginnersGuide
· Dive into Python:
There is still a limited amount of information available on Python for mobile phones, however we will be using content a material from the following:
· Python for Series 60 (Nokia’s API and Documentation Page)
o http://opensource.nokia.com/projects/pythonfors60/
· Jürgen Scheible’s Mobile Python Tutorial
o http://www.mobilenin.com/pys60/menu.htm
Grading:
Programming Projects (3)..................................................
30%
Mid-term
Quiz................................................................... 15%
Final
Project....................................................................... 55%
Schedule:
Week 1
INTRODUCTION: We first introduce Python, a powerful scripting language that can be run on a variety of devices, ranging from workstations to mobile phones. The installation procedures for Python phone emulators and related software is given. We then provide example applications and review syntax in Python.
Week 2
USER INTERFACES: APIs for text entry and other user input options are described. Homework assignment #1 is to write an application that sends multiple phones a particular SMS message based on text keyed in by the user.
Week 3
APPLICATION BASICS: This week’s lecture provides an overview of application design, including function definitions, application menu interfaces and tabs.
Week 4
KEYBOARD CALLS AND GRAPHICS: Key calls are defined within Python to enable application shortcuts and controls. We also spend the half of the class reviewing how to draw simple graphics on the screen. Homework assignment #2 is to write a game that uses commands from the keyboard to control a graphic (ball, spaceship, etc).
Week 5
GRAPHICAL USER INTERFACES: Moving beyond pop-up menus and text entry boxes, we discuss who to make your applications look more polished. 3D buttons, switches, and PC-styled interfaces introduced.
Week 6
PHONE I/O: We describe how to use the e32 and os modules to read and write data from the phone’s internal memory as well as the memory card. We introduce a medical field worker data gathering application that uses XML parsing and writing as our example. Finally we will discuss sockets over GPRS.
Week 7
Week 8
PHONE AS A SENSOR II: A user’s current location and social context can affect the types of applications he or she may want to use. We describe how to access information nearby cell towers and how to use Bluetooth device discovery scans to detect nearby people. Homework assignment #3 is to write an application that has a graphical user interface that changes depending on the user’s location and the people nearby.
Week 9
PROJECT PRESENTATIONS: The class ends
with students presenting about their final class projects. Projects will be
graded on originality, technical difficulty, and perceived end-user value.
- Introduction to J2ME
- Class Notes for the GSTIT, Addis Ababa, Ethiopia. ppt and code(6.6MB)
- SMS Bootcamp
- Class Notes for the University of Nairobi, Kenya. ppt (1.6MB)