<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://uberthings.com/teaching/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Deprimer</id>
	<title>Mobile Application Design - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://uberthings.com/teaching/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Deprimer"/>
	<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Special:Contributions/Deprimer"/>
	<updated>2026-05-30T12:28:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3578</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3578"/>
		<updated>2008-04-20T16:09:00Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 11 (November 13): Playing (with) the future (WAP + XHTML) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started.&lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/week9_python_in_the_house.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/ Python SDK &amp;amp; ScriptShell 1.4.1 (probably outdated)]&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/10/week10_HTTP_POST_uploader.pdf Lecture Notes]&lt;br /&gt;
* [http://mobilenin.com/pys60/ex_upload_image_to_url.htm File upload (in Python)]&lt;br /&gt;
* [http://aymanshamma.googlepages.com/httppostfrompys60tophp HTTP POST in Python]&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 13): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/11/week11_feeling_wappy.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_12:_WAP_Tools Useful WAP links]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Create wireframes/mockups and a brief presentation (~3 min) for your final project.&lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/12/ITPpreso.pdf Mobile Web Tips &amp;amp; Tricks Presentation] from Sean Owen, Software Engineer at Google.&lt;br /&gt;
&lt;br /&gt;
=== Week 13 (November 27) Special Presentation ===&lt;br /&gt;
&lt;br /&gt;
Some very special guests come to class this week to talk about their experiences building interesting mobile apps.&lt;br /&gt;
&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=PresentationSignup&amp;diff=3524</id>
		<title>PresentationSignup</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=PresentationSignup&amp;diff=3524"/>
		<updated>2008-02-16T07:55:47Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 2007 Presentations == &lt;br /&gt;
&lt;br /&gt;
* Week 2 (September 11): Dean, Vibha&lt;br /&gt;
* Week 3 (September 18):Ellie, Riddhima&lt;br /&gt;
* Week 4 (September 25):Eric Tommy Roger&lt;br /&gt;
* Week 5 (October 2): &lt;br /&gt;
* Week 6 (October 9): &lt;br /&gt;
* Week 7 (October 16):&lt;br /&gt;
* Week 8 (October 30): &lt;br /&gt;
* Week 9 (November 2):&lt;br /&gt;
* Week 10 (November 6): [Chul Song, ChoRong] &amp;amp; [Amber, Matt]&lt;br /&gt;
* Week 11 (November 13): Peng, Shin-Yi, Hyeki&lt;br /&gt;
* Week 12 (November 20): Corrine, Maria&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 2006 Presentations ==&lt;br /&gt;
* Week 2: (September 14)[http://www.techyart.com/Mobile/bCode.ppt Kat, Jen, Arly]&lt;br /&gt;
* Week 3: (September 21) [http://michaeldelgaudio.com/html/mobile/presentation.htm Michael DelGaudio]&lt;br /&gt;
* Week 4: (September 28) &lt;br /&gt;
* Week 5: (October 5) [http://catmindeye.com/mobileapps-2.ppt Nanna and Cat]   &lt;br /&gt;
* Week 6: (October 12) Max, Vincent&lt;br /&gt;
* Week 7: (October 19) [http://giladlotan.com/MobileApps/presentation.ppt Gilad, Chunxi and Greg B.]  &lt;br /&gt;
 &lt;br /&gt;
* Week 9: MAKE-UP CLASS: (Friday, November 10) Kate B, Josh Kn &amp;amp; Chris P&lt;br /&gt;
&lt;br /&gt;
* Week 10: (November 9) Fernando, Jonathan  &lt;br /&gt;
* Week 11: (November 16) [http://ephexi.com/mobile/presentation.ppt Ran, Olivia &amp;amp; Jury]&lt;br /&gt;
* Week 12: (November 30) Andy, Alex&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Homework07&amp;diff=3523</id>
		<title>Homework07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Homework07&amp;diff=3523"/>
		<updated>2008-02-16T07:54:53Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: Protected &amp;quot;Homework07&amp;quot; [edit=sysop:move=sysop]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Homework == &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Add your name and a link to your homework in the appropriate week. Post source code, screenshots, images, applications.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Week_One]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Two]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Three]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Four]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Five]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Six]]&lt;br /&gt;
&lt;br /&gt;
[[Midterms07]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Ten]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Eleven]]&lt;br /&gt;
&lt;br /&gt;
[[FinalProjects07]]&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Homework07&amp;diff=3522</id>
		<title>Homework07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Homework07&amp;diff=3522"/>
		<updated>2008-02-16T07:54:46Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Homework == &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Add your name and a link to your homework in the appropriate week. Post source code, screenshots, images, applications.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Week_One]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Two]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Three]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Four]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Five]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Six]]&lt;br /&gt;
&lt;br /&gt;
[[Midterms07]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Ten]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Eleven]]&lt;br /&gt;
&lt;br /&gt;
[[FinalProjects07]]&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Jury&amp;diff=3521</id>
		<title>Jury</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Jury&amp;diff=3521"/>
		<updated>2008-02-16T07:54:02Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: Protected &amp;quot;Jury&amp;quot; [edit=sysop:move=sysop]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;loading images using XML, browse it and save images to the device.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Jury&amp;diff=3520</id>
		<title>Jury</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Jury&amp;diff=3520"/>
		<updated>2008-02-16T07:53:41Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;loading images using XML, browse it and save images to the device.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Mobile_Application_Design_Fall_2007&amp;diff=3353</id>
		<title>Mobile Application Design Fall 2007</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Mobile_Application_Design_Fall_2007&amp;diff=3353"/>
		<updated>2008-01-20T23:46:08Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: Protected &amp;quot;Mobile Application Design Fall 2007&amp;quot; [edit=sysop:move=sysop]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Administrivia == &lt;br /&gt;
H79.2580 - Tuesday 6:30-9:00	&lt;br /&gt;
&lt;br /&gt;
Instructor: Michael Sharon&lt;br /&gt;
&lt;br /&gt;
Homework uploads - [[Homework07]]&lt;br /&gt;
&lt;br /&gt;
Office Hours signup - email me &lt;br /&gt;
&lt;br /&gt;
Tags: &#039;&#039;&#039;mobileappdesign&#039;&#039;&#039; on [http://del.icio.us/tag/mobileappdesign http://uberthings.com/i/g/d.gif] [http://del.icio.us/tag/mobileappdesign del.icio.us] and [http://flickr.com/photos/tags/mobileappdesign/ http://uberthings.com/i/g/f.gif] [http://flickr.com/photos/tags/mobileappdesign/ flickr]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Mobile phones are the electronic devices that we keep closest to our bodies, minds and social lives. These minute multimedia production studios contain within their narrow plastic shells contact numbers, pictures, messages and videos of people that we hold dearest, communicate with daily and are most closely connected to. This class will focus on teaching students the fundamentals of developing applications for a number of mobile phones. Students are free to to use the tools and techniques learned as a means of expression in conjunction with other projects as well as to develop standalone projects.&lt;br /&gt;
&lt;br /&gt;
The class will be taught mainly using the Java (J2ME) language although students are able to choose from other languages/platforms such as Flash Lite, BREW and Python. I will try to provide examples in as many languages as possible. Topics covered include an overview of the mobile industry, mobile user experience, mobile hardware platforms, development languages, cross-platform graphical user interfaces, network communication, optimisation techniques, versioning systems, and common development pitfalls. Weekly assignments will develop familiarity with the devices and techniques and students will be allowed to work independently or in groups to develop midterm and final projects.&lt;br /&gt;
&lt;br /&gt;
== Objectives == &lt;br /&gt;
&lt;br /&gt;
	The goal of this course is for students to develop an understanding of how to develop applications for mobile devices and explore the possibilities for realizing their ideas on the platform. Readings, discussion and hands-on development will provide students with insights and experience in developing mobile applications.&lt;br /&gt;
	Mobile application design and development is a huge field that is constantly evolving. We&#039;re only going to be able to scratch the surface, so this course aims to achieve three things:&lt;br /&gt;
# Teach students the basics of developing applications for mobile devices including creating wireframes, graphics and software as well as packaging and provisioning.&lt;br /&gt;
# Familiarize students with the global mobile industry including the leading thinkers, sites, technologies and applications.&lt;br /&gt;
&lt;br /&gt;
# Learn some of the conventions of mobile user experience and think about ways of improving upon existing experiences.&lt;br /&gt;
&lt;br /&gt;
== Assignments == &lt;br /&gt;
&lt;br /&gt;
	There will be weekly programming assignments for nearly every class in the first half of the semester. These assignments are short, simple tasks which reinforce the concepts and techniques that have been taught in class. They are generally basic examples which give you a feel for the technologies or concepts being illustrated, and should be taken as starting points which you can use to generate your own applications. Assignments are required and turning in an assignment late will adversely affect your grade.&lt;br /&gt;
&lt;br /&gt;
== Participation &amp;amp; Attendance == &lt;br /&gt;
&lt;br /&gt;
	Attendance is mandatory and desirable if you&#039;d like to maintain your grades and/or remain in the class. Please inform me via email if you are going to miss a class. Habitually showing up late for class or an excessive number of absences will adversely affect your grade.&lt;br /&gt;
&lt;br /&gt;
== Laptop &amp;amp; Mobile Etiquette == &lt;br /&gt;
&lt;br /&gt;
	Unless we&#039;re working on code in class, I will be sticking with the laptops closed rule. Although they may be invaluable for note taking and the Wikipedia is your special friend, the desire to answer emails, ping your friends and google obscure acronyms is far too strong. Since we&#039;re all going to be working on mobile phones, please turn your phone to silent before class begins so that we&#039;re not constantly interrupted by ring tones.&lt;br /&gt;
&lt;br /&gt;
== Grading == &lt;br /&gt;
Participation and Attendance 30%&lt;br /&gt;
&lt;br /&gt;
Weekly Research Assignments 20%&lt;br /&gt;
&lt;br /&gt;
Midterm 25%&lt;br /&gt;
&lt;br /&gt;
Final 25%&lt;br /&gt;
&lt;br /&gt;
== Books/Blogs/Readings == &lt;br /&gt;
&lt;br /&gt;
Try to read a few of these blogs every day to stay on top of developments in the mobile space. Check out [http://del.icio.us/tag/mobileappdesign http://del.icio.us/tag/mobileappdesign] for more sites. &lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;[http://tecfa.unige.ch/perso/staf/nova/blog/ Pasta &amp;amp; Vinegar]&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;[http://blogs.s60.com/s60multimedia/index.html Series60 Multimedia Blog]&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;[http://textually.org/ Textually]&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;[http://ngphone.com/ NGPhone]&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;[http://www.moconews.net/ Moconews]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;	[http://www.receiver.vodafone.com/ Receiver]&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/mobile.xml Here&#039;s an OPML file of all the mobile blogs I currently follow.]&lt;br /&gt;
&lt;br /&gt;
You should be able to import this directly into your feed reader of choice. &lt;br /&gt;
	&lt;br /&gt;
There are no recommended readings for this course, although you may find these books useful and thought provoking.&lt;br /&gt;
&lt;br /&gt;
[http://www.amazon.com/Everyware-Dawning-Age-Ubiquitous-Computing/dp/0321384016/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&amp;amp;s=books&amp;amp;qid=1189189221&amp;amp;sr=8-1 http://uberthings.com/teaching/mobile_application_design/i/books/0321384016.01._AA_SCMZZZZZZZ_.jpg]&lt;br /&gt;
&lt;br /&gt;
[http://www.amazon.com/Everyware-Dawning-Age-Ubiquitous-Computing/dp/0321384016/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&amp;amp;s=books&amp;amp;qid=1189189221&amp;amp;sr=8-1 Everyware: The Dawning Age of Ubiquitous Computing (Paperback)]&lt;br /&gt;
by Adam Greenfield&lt;br /&gt;
&lt;br /&gt;
[http://www.amazon.com/Beginning-J2ME-Novice-Professional-Third/dp/1590594797/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&amp;amp;s=books&amp;amp;qid=1189189378&amp;amp;sr=8-1 http://uberthings.com/teaching/mobile_application_design/i/books/1590594797.01._AA_SCMZZZZZZZ_.jpg] &lt;br /&gt;
&lt;br /&gt;
[http://www.amazon.com/Beginning-J2ME-Novice-Professional-Third/dp/1590594797/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&amp;amp;s=books&amp;amp;qid=1189189378&amp;amp;sr=8-1 Beginning J2ME: From Novice to Professional, Third Edition (Novice to Professional)]&lt;br /&gt;
by Jonathan Knudsen&lt;br /&gt;
&lt;br /&gt;
== Syllabus ==&lt;br /&gt;
&lt;br /&gt;
The Syllabus has moved here -&amp;gt; [[Syllabus07]].&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Mobile_Application_Design_Fall_2007&amp;diff=3352</id>
		<title>Mobile Application Design Fall 2007</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Mobile_Application_Design_Fall_2007&amp;diff=3352"/>
		<updated>2008-01-20T23:45:49Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Administrivia == &lt;br /&gt;
H79.2580 - Tuesday 6:30-9:00	&lt;br /&gt;
&lt;br /&gt;
Instructor: Michael Sharon&lt;br /&gt;
&lt;br /&gt;
Homework uploads - [[Homework07]]&lt;br /&gt;
&lt;br /&gt;
Office Hours signup - email me &lt;br /&gt;
&lt;br /&gt;
Tags: &#039;&#039;&#039;mobileappdesign&#039;&#039;&#039; on [http://del.icio.us/tag/mobileappdesign http://uberthings.com/i/g/d.gif] [http://del.icio.us/tag/mobileappdesign del.icio.us] and [http://flickr.com/photos/tags/mobileappdesign/ http://uberthings.com/i/g/f.gif] [http://flickr.com/photos/tags/mobileappdesign/ flickr]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Mobile phones are the electronic devices that we keep closest to our bodies, minds and social lives. These minute multimedia production studios contain within their narrow plastic shells contact numbers, pictures, messages and videos of people that we hold dearest, communicate with daily and are most closely connected to. This class will focus on teaching students the fundamentals of developing applications for a number of mobile phones. Students are free to to use the tools and techniques learned as a means of expression in conjunction with other projects as well as to develop standalone projects.&lt;br /&gt;
&lt;br /&gt;
The class will be taught mainly using the Java (J2ME) language although students are able to choose from other languages/platforms such as Flash Lite, BREW and Python. I will try to provide examples in as many languages as possible. Topics covered include an overview of the mobile industry, mobile user experience, mobile hardware platforms, development languages, cross-platform graphical user interfaces, network communication, optimisation techniques, versioning systems, and common development pitfalls. Weekly assignments will develop familiarity with the devices and techniques and students will be allowed to work independently or in groups to develop midterm and final projects.&lt;br /&gt;
&lt;br /&gt;
== Objectives == &lt;br /&gt;
&lt;br /&gt;
	The goal of this course is for students to develop an understanding of how to develop applications for mobile devices and explore the possibilities for realizing their ideas on the platform. Readings, discussion and hands-on development will provide students with insights and experience in developing mobile applications.&lt;br /&gt;
	Mobile application design and development is a huge field that is constantly evolving. We&#039;re only going to be able to scratch the surface, so this course aims to achieve three things:&lt;br /&gt;
# Teach students the basics of developing applications for mobile devices including creating wireframes, graphics and software as well as packaging and provisioning.&lt;br /&gt;
# Familiarize students with the global mobile industry including the leading thinkers, sites, technologies and applications.&lt;br /&gt;
&lt;br /&gt;
# Learn some of the conventions of mobile user experience and think about ways of improving upon existing experiences.&lt;br /&gt;
&lt;br /&gt;
== Assignments == &lt;br /&gt;
&lt;br /&gt;
	There will be weekly programming assignments for nearly every class in the first half of the semester. These assignments are short, simple tasks which reinforce the concepts and techniques that have been taught in class. They are generally basic examples which give you a feel for the technologies or concepts being illustrated, and should be taken as starting points which you can use to generate your own applications. Assignments are required and turning in an assignment late will adversely affect your grade.&lt;br /&gt;
&lt;br /&gt;
== Participation &amp;amp; Attendance == &lt;br /&gt;
&lt;br /&gt;
	Attendance is mandatory and desirable if you&#039;d like to maintain your grades and/or remain in the class. Please inform me via email if you are going to miss a class. Habitually showing up late for class or an excessive number of absences will adversely affect your grade.&lt;br /&gt;
&lt;br /&gt;
== Laptop &amp;amp; Mobile Etiquette == &lt;br /&gt;
&lt;br /&gt;
	Unless we&#039;re working on code in class, I will be sticking with the laptops closed rule. Although they may be invaluable for note taking and the Wikipedia is your special friend, the desire to answer emails, ping your friends and google obscure acronyms is far too strong. Since we&#039;re all going to be working on mobile phones, please turn your phone to silent before class begins so that we&#039;re not constantly interrupted by ring tones.&lt;br /&gt;
&lt;br /&gt;
== Grading == &lt;br /&gt;
Participation and Attendance 30%&lt;br /&gt;
&lt;br /&gt;
Weekly Research Assignments 20%&lt;br /&gt;
&lt;br /&gt;
Midterm 25%&lt;br /&gt;
&lt;br /&gt;
Final 25%&lt;br /&gt;
&lt;br /&gt;
== Books/Blogs/Readings == &lt;br /&gt;
&lt;br /&gt;
Try to read a few of these blogs every day to stay on top of developments in the mobile space. Check out [http://del.icio.us/tag/mobileappdesign http://del.icio.us/tag/mobileappdesign] for more sites. &lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;[http://tecfa.unige.ch/perso/staf/nova/blog/ Pasta &amp;amp; Vinegar]&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;[http://blogs.s60.com/s60multimedia/index.html Series60 Multimedia Blog]&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;[http://textually.org/ Textually]&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;[http://ngphone.com/ NGPhone]&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;[http://www.moconews.net/ Moconews]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;	[http://www.receiver.vodafone.com/ Receiver]&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/mobile.xml Here&#039;s an OPML file of all the mobile blogs I currently follow.]&lt;br /&gt;
&lt;br /&gt;
You should be able to import this directly into your feed reader of choice. &lt;br /&gt;
	&lt;br /&gt;
There are no recommended readings for this course, although you may find these books useful and thought provoking.&lt;br /&gt;
&lt;br /&gt;
[http://www.amazon.com/Everyware-Dawning-Age-Ubiquitous-Computing/dp/0321384016/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&amp;amp;s=books&amp;amp;qid=1189189221&amp;amp;sr=8-1 http://uberthings.com/teaching/mobile_application_design/i/books/0321384016.01._AA_SCMZZZZZZZ_.jpg]&lt;br /&gt;
&lt;br /&gt;
[http://www.amazon.com/Everyware-Dawning-Age-Ubiquitous-Computing/dp/0321384016/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&amp;amp;s=books&amp;amp;qid=1189189221&amp;amp;sr=8-1 Everyware: The Dawning Age of Ubiquitous Computing (Paperback)]&lt;br /&gt;
by Adam Greenfield&lt;br /&gt;
&lt;br /&gt;
[http://www.amazon.com/Beginning-J2ME-Novice-Professional-Third/dp/1590594797/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&amp;amp;s=books&amp;amp;qid=1189189378&amp;amp;sr=8-1 http://uberthings.com/teaching/mobile_application_design/i/books/1590594797.01._AA_SCMZZZZZZZ_.jpg] &lt;br /&gt;
&lt;br /&gt;
[http://www.amazon.com/Beginning-J2ME-Novice-Professional-Third/dp/1590594797/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&amp;amp;s=books&amp;amp;qid=1189189378&amp;amp;sr=8-1 Beginning J2ME: From Novice to Professional, Third Edition (Novice to Professional)]&lt;br /&gt;
by Jonathan Knudsen&lt;br /&gt;
&lt;br /&gt;
== Syllabus ==&lt;br /&gt;
&lt;br /&gt;
The Syllabus has moved here -&amp;gt; [[Syllabus07]].&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=FinalProjects07&amp;diff=3037</id>
		<title>FinalProjects07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=FinalProjects07&amp;diff=3037"/>
		<updated>2007-12-10T05:39:19Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mobile Application Design Final Projects&lt;br /&gt;
&lt;br /&gt;
* Corrine Brown&lt;br /&gt;
* Peng Zhao &amp;amp; HyeKi Min Wallog&lt;br /&gt;
* Chul Song Go! Travel&lt;br /&gt;
* Ellie Tam - Idea Compiler&lt;br /&gt;
* Tommy Tseng &amp;amp; Eric Chiu &lt;br /&gt;
&lt;br /&gt;
BREAK&lt;br /&gt;
&lt;br /&gt;
* Roger TSAI &lt;br /&gt;
* Vibha Bamba&lt;br /&gt;
* Shin-Yi Huang&lt;br /&gt;
* Riddhima Shelat&lt;br /&gt;
* Amber Nicole Reed&lt;br /&gt;
* Maria Mavrakis &lt;br /&gt;
* ChoRong Hwang&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3036</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3036"/>
		<updated>2007-11-25T17:00:41Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 12 (November 20): Final Project Workshop AKA Open Questions/Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started.&lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/week9_python_in_the_house.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/ Python SDK &amp;amp; ScriptShell 1.4.1 (probably outdated)]&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/10/week10_HTTP_POST_uploader.pdf Lecture Notes]&lt;br /&gt;
* [http://mobilenin.com/pys60/ex_upload_image_to_url.htm File upload (in Python)]&lt;br /&gt;
* [http://aymanshamma.googlepages.com/httppostfrompys60tophp HTTP POST in Python]&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 13): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_12:_WAP_Tools Useful WAP links]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Create wireframes/mockups and a brief presentation (~3 min) for your final project.&lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/12/ITPpreso.pdf Mobile Web Tips &amp;amp; Tricks Presentation] from Sean Owen, Software Engineer at Google.&lt;br /&gt;
&lt;br /&gt;
=== Week 13 (November 27) Special Presentation ===&lt;br /&gt;
&lt;br /&gt;
Some very special guests come to class this week to talk about their experiences building interesting mobile apps.&lt;br /&gt;
&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3035</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3035"/>
		<updated>2007-11-25T16:52:09Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 12 (November 20): Final Project Workshop AKA Open Questions/Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started.&lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/week9_python_in_the_house.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/ Python SDK &amp;amp; ScriptShell 1.4.1 (probably outdated)]&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/10/week10_HTTP_POST_uploader.pdf Lecture Notes]&lt;br /&gt;
* [http://mobilenin.com/pys60/ex_upload_image_to_url.htm File upload (in Python)]&lt;br /&gt;
* [http://aymanshamma.googlepages.com/httppostfrompys60tophp HTTP POST in Python]&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 13): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_12:_WAP_Tools Useful WAP links]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Create wireframes/mockups and a brief presentation (~3 min) for your final project.&lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
 * [http://uberthings.com/teaching/mobile_application_design/12/ITPpreso.pdf Mobile Web Tips &amp;amp; Tricks Presentation] from Sean Owen, Software Engineer at Google.&lt;br /&gt;
&lt;br /&gt;
=== Week 13 (November 27) Special Presentation ===&lt;br /&gt;
&lt;br /&gt;
Some very special guests come to class this week to talk about their experiences building interesting mobile apps.&lt;br /&gt;
&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=PresentationSignup&amp;diff=3032</id>
		<title>PresentationSignup</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=PresentationSignup&amp;diff=3032"/>
		<updated>2007-11-20T01:24:45Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* 2007 Presentations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 2007 Presentations == &lt;br /&gt;
&lt;br /&gt;
* Week 2 (September 11): Dean, Vibha&lt;br /&gt;
* Week 3 (September 18):Ellie, Riddhima&lt;br /&gt;
* Week 4 (September 25):Eric Tommy Roger&lt;br /&gt;
* Week 5 (October 2): &lt;br /&gt;
* Week 6 (October 9): &lt;br /&gt;
* Week 7 (October 16):&lt;br /&gt;
* Week 8 (October 30): &lt;br /&gt;
* Week 9 (November 2):&lt;br /&gt;
* Week 10 (November 6): [Chul Song, ChoRong] &amp;amp; [Amber, Matt]&lt;br /&gt;
* Week 11 (November 13): Peng, Shin-Yi, Hyeki&lt;br /&gt;
* Week 12 (November 20): Corrine, Maria&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 2006 Presentations ==&lt;br /&gt;
* Week 2: (September 14)[http://www.techyart.com/Mobile/bCode.ppt Kat, Jen, Arly]&lt;br /&gt;
* Week 3: (September 21) [http://michaeldelgaudio.com/html/mobile/presentation.htm Michael DelGaudio]&lt;br /&gt;
* Week 4: (September 28) &lt;br /&gt;
* Week 5: (October 5) [http://catmindeye.com/mobileapps-2.ppt Nanna and Cat]   &lt;br /&gt;
* Week 6: (October 12) Max, Vincent&lt;br /&gt;
* Week 7: (October 19) [http://giladlotan.com/MobileApps/presentation.ppt Gilad, Chunxi and Greg B.]  &lt;br /&gt;
 &lt;br /&gt;
* Week 9: MAKE-UP CLASS: (Friday, November 10) Kate B, Josh Kn &amp;amp; Chris P&lt;br /&gt;
&lt;br /&gt;
* Week 10: (November 9) Fernando, Jonathan  &lt;br /&gt;
* Week 11: (November 16) [http://ephexi.com/mobile/presentation.ppt Ran, Olivia &amp;amp; Jury]&lt;br /&gt;
* Week 12: (November 30) Andy, Alex&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Week_12:_WAP_Tools&amp;diff=3031</id>
		<title>Week 12: WAP Tools</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Week_12:_WAP_Tools&amp;diff=3031"/>
		<updated>2007-11-19T03:35:50Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Browser-based tools === &lt;br /&gt;
&lt;br /&gt;
*Firefox - http://www.mozilla.com/en-US/firefox/&lt;br /&gt;
*User-Agent Switcher for Firefox - https://addons.mozilla.org/firefox/59/&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/11/minimal_set.xml Minimal set of user agents] , [http://uberthings.com/teaching/mobile_application_design/11/lotsa_user_agents.xml Bumper set of user agents]&lt;br /&gt;
*Web Developer - https://addons.mozilla.org/firefox/60/&lt;br /&gt;
*WML Browser - https://addons.mozilla.org/firefox/62/&lt;br /&gt;
*XHTML Mobile Profile (haven&#039;t used it yet) - https://addons.mozilla.org/firefox/1345/&lt;br /&gt;
&lt;br /&gt;
=== WAP Emulators ===&lt;br /&gt;
*Opera Mini - http://www.operamini.com/features/simulator/&lt;br /&gt;
*DotMobi - http://pc.dev.mobi/&lt;br /&gt;
*Pukupi (i-mode emulator) - http://pukupi.com/tools/mimic/&lt;br /&gt;
*Openwave Phone Simulator - http://developer.openwave.com/dvl/tools_and_sdk/phone_simulator/index.htm&lt;br /&gt;
*Klondike - http://www.apachesoftware.com/Engine.html&lt;br /&gt;
*YoSpace - http://www.yospace.com/spedemo.html&lt;br /&gt;
&lt;br /&gt;
=== Server Side Tools === &lt;br /&gt;
*WURFL - http://wurfl.sourceforge.net&lt;br /&gt;
** Latest version - http://www.nusho.it/wurfl/dl.php?t=d&amp;amp;f=wurfl.zip&lt;br /&gt;
** PHP Lbrary - http://wurfl.sourceforge.net/php/ &lt;br /&gt;
** Web Patch - http://www.nusho.it/wurfl/dl.php?t=d&amp;amp;f=web_browsers_patch.xml&lt;br /&gt;
*Andrea Trasatti&#039;s (creator of WURFL) introduction to WURFL - http://pc.dev.mobi/?q=node/18&lt;br /&gt;
&lt;br /&gt;
=== Validators ===&lt;br /&gt;
*W3C - http://validator.w3.org&lt;br /&gt;
*dotMobi - http://ready.mobi&lt;br /&gt;
&lt;br /&gt;
=== Development Sites ===&lt;br /&gt;
*DotMobi - http://pc.dev.mobi/&lt;br /&gt;
*Global Authoring Practices for the Mobile Web (GAP) - http://www.passani.it/gap/&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
*W3C Mobile Web Initiative - http://www.w3.org/Mobile/&lt;br /&gt;
*W3C MobileOK Basic Test - http://www.w3.org/TR/mobileOK-basic10-tests/&lt;br /&gt;
*W3C Mobile Web Best Practices 1.0 - http://www.w3.org/TR/mobile-bp/&lt;br /&gt;
*WTAI - http://web.archive.org/web/20070101170723/http://www.thozie.de/english/wap/wtai.htm&lt;br /&gt;
*XHTML-MP - http://www.informit.com/guides/content.asp?g=xml&amp;amp;seqNum=170&amp;amp;rl=1&lt;br /&gt;
*GAP Templates - http://www.passani.it/gap/templates/&lt;br /&gt;
&lt;br /&gt;
=== Examples used in class ===&lt;br /&gt;
&lt;br /&gt;
*Michael&#039;s Palindrome page - http://uberthings.com/palindromic&lt;br /&gt;
*WAP Friendly Palindrome page - http://uberthings.com/palindromic/p.php&lt;br /&gt;
*WURFL browser tester - http://uberthings.com/palindromic/wap.php&lt;br /&gt;
*WURFL tester code - http://uberthings.com/palindromic/wap_php.txt&lt;br /&gt;
*Hello,WAP - http://uberthings.com/palindromic/hello.xhtml&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Week_12:_WAP_Tools&amp;diff=3030</id>
		<title>Week 12: WAP Tools</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Week_12:_WAP_Tools&amp;diff=3030"/>
		<updated>2007-11-14T07:14:15Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Browser-based tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Browser-based tools === &lt;br /&gt;
&lt;br /&gt;
*Firefox - http://www.mozilla.com/en-US/firefox/&lt;br /&gt;
*User-Agent Switcher for Firefox - https://addons.mozilla.org/firefox/59/&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/11/minimal_set.xml Minimal set of user agents] , [http://uberthings.com/teaching/mobile_application_design/11/lotsa_user_agents.xml Bumper set of user agents]&lt;br /&gt;
*Web Developer - https://addons.mozilla.org/firefox/60/&lt;br /&gt;
*WML Browser - https://addons.mozilla.org/firefox/62/&lt;br /&gt;
*XHTML Mobile Profile (haven&#039;t used it yet) - https://addons.mozilla.org/firefox/1345/&lt;br /&gt;
&lt;br /&gt;
=== WAP Emulators ===&lt;br /&gt;
*Opera Mini - http://www.operamini.com/features/simulator/&lt;br /&gt;
*DotMobi - http://pc.dev.mobi/&lt;br /&gt;
*Pukupi (i-mode emulator) - http://pukupi.com/tools/mimic/&lt;br /&gt;
*Openwave Phone Simulator - http://developer.openwave.com/dvl/tools_and_sdk/phone_simulator/index.htm&lt;br /&gt;
*Klondike - http://www.apachesoftware.com/Engine.html&lt;br /&gt;
*YoSpace - http://www.yospace.com/spedemo.html&lt;br /&gt;
&lt;br /&gt;
=== Server Side Tools === &lt;br /&gt;
*WURFL - http://wurfl.sourceforge.net&lt;br /&gt;
** Latest version - http://www.nusho.it/wurfl/dl.php?t=d&amp;amp;f=wurfl.zip&lt;br /&gt;
** PHP Lbrary - http://wurfl.sourceforge.net/php/ &lt;br /&gt;
** Web Patch - http://www.nusho.it/wurfl/dl.php?t=d&amp;amp;f=web_browsers_patch.xml&lt;br /&gt;
*Andrea Trasatti&#039;s (creator of WURFL) introduction to WURFL - http://pc.dev.mobi/?q=node/18&lt;br /&gt;
&lt;br /&gt;
=== Development Sites ===&lt;br /&gt;
*DotMobi - http://pc.dev.mobi/&lt;br /&gt;
*Global Authoring Practices for the Mobile Web (GAP) - http://www.passani.it/gap/&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
*W3C Mobile Web Initiative - http://www.w3.org/Mobile/&lt;br /&gt;
*W3C MobileOK Basic Test - http://www.w3.org/TR/mobileOK-basic10-tests/&lt;br /&gt;
*W3C Mobile Web Best Practices 1.0 - http://www.w3.org/TR/mobile-bp/&lt;br /&gt;
*WTAI - http://web.archive.org/web/20070101170723/http://www.thozie.de/english/wap/wtai.htm&lt;br /&gt;
*XHTML-MP - http://www.informit.com/guides/content.asp?g=xml&amp;amp;seqNum=170&amp;amp;rl=1&lt;br /&gt;
*GAP Templates - http://www.passani.it/gap/templates/&lt;br /&gt;
&lt;br /&gt;
=== Examples used in class ===&lt;br /&gt;
&lt;br /&gt;
*Michael&#039;s Palindrome page - http://uberthings.com/palindromic&lt;br /&gt;
*WAP Friendly Palindrome page - http://uberthings.com/palindromic/p.php&lt;br /&gt;
*WURFL browser tester - http://uberthings.com/palindromic/wap.php&lt;br /&gt;
*WURFL tester code - http://uberthings.com/palindromic/wap_php.txt&lt;br /&gt;
*Hello,WAP - http://uberthings.com/palindromic/hello.xhtml&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Week_12:_WAP_Tools&amp;diff=3029</id>
		<title>Week 12: WAP Tools</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Week_12:_WAP_Tools&amp;diff=3029"/>
		<updated>2007-11-14T02:08:02Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Browser-based tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Browser-based tools === &lt;br /&gt;
&lt;br /&gt;
*Firefox - http://www.mozilla.com/en-US/firefox/&lt;br /&gt;
*User-Agent Switcher for Firefox - https://addons.mozilla.org/firefox/59/&lt;br /&gt;
*Minimal set of user agents -  &lt;br /&gt;
http://uberthings.com/teaching/mobile_application_design/11/minimal_set.xml&lt;br /&gt;
*Giant set of user agents -  &lt;br /&gt;
http://uberthings.com/teaching/mobile_application_design/11/lotsa_user_agents.xml&lt;br /&gt;
*Web Developer - https://addons.mozilla.org/firefox/60/&lt;br /&gt;
*WML Browser - https://addons.mozilla.org/firefox/62/&lt;br /&gt;
*XHTML Mobile Profile (haven&#039;t used it yet) - https://addons.mozilla.org/firefox/1345/&lt;br /&gt;
&lt;br /&gt;
=== WAP Emulators ===&lt;br /&gt;
*Opera Mini - http://www.operamini.com/features/simulator/&lt;br /&gt;
*DotMobi - http://pc.dev.mobi/&lt;br /&gt;
*Pukupi (i-mode emulator) - http://pukupi.com/tools/mimic/&lt;br /&gt;
*Openwave Phone Simulator - http://developer.openwave.com/dvl/tools_and_sdk/phone_simulator/index.htm&lt;br /&gt;
*Klondike - http://www.apachesoftware.com/Engine.html&lt;br /&gt;
*YoSpace - http://www.yospace.com/spedemo.html&lt;br /&gt;
&lt;br /&gt;
=== Server Side Tools === &lt;br /&gt;
*WURFL - http://wurfl.sourceforge.net&lt;br /&gt;
** Latest version - http://www.nusho.it/wurfl/dl.php?t=d&amp;amp;f=wurfl.zip&lt;br /&gt;
** PHP Lbrary - http://wurfl.sourceforge.net/php/ &lt;br /&gt;
** Web Patch - http://www.nusho.it/wurfl/dl.php?t=d&amp;amp;f=web_browsers_patch.xml&lt;br /&gt;
*Andrea Trasatti&#039;s (creator of WURFL) introduction to WURFL - http://pc.dev.mobi/?q=node/18&lt;br /&gt;
&lt;br /&gt;
=== Development Sites ===&lt;br /&gt;
*DotMobi - http://pc.dev.mobi/&lt;br /&gt;
*Global Authoring Practices for the Mobile Web (GAP) - http://www.passani.it/gap/&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
*W3C Mobile Web Initiative - http://www.w3.org/Mobile/&lt;br /&gt;
*W3C MobileOK Basic Test - http://www.w3.org/TR/mobileOK-basic10-tests/&lt;br /&gt;
*W3C Mobile Web Best Practices 1.0 - http://www.w3.org/TR/mobile-bp/&lt;br /&gt;
*WTAI - http://web.archive.org/web/20070101170723/http://www.thozie.de/english/wap/wtai.htm&lt;br /&gt;
*XHTML-MP - http://www.informit.com/guides/content.asp?g=xml&amp;amp;seqNum=170&amp;amp;rl=1&lt;br /&gt;
*GAP Templates - http://www.passani.it/gap/templates/&lt;br /&gt;
&lt;br /&gt;
=== Examples used in class ===&lt;br /&gt;
&lt;br /&gt;
*Michael&#039;s Palindrome page - http://uberthings.com/palindromic&lt;br /&gt;
*WAP Friendly Palindrome page - http://uberthings.com/palindromic/p.php&lt;br /&gt;
*WURFL browser tester - http://uberthings.com/palindromic/wap.php&lt;br /&gt;
*WURFL tester code - http://uberthings.com/palindromic/wap_php.txt&lt;br /&gt;
*Hello,WAP - http://uberthings.com/palindromic/hello.xhtml&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Week_12:_WAP_Tools&amp;diff=3028</id>
		<title>Week 12: WAP Tools</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Week_12:_WAP_Tools&amp;diff=3028"/>
		<updated>2007-11-14T01:33:04Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Browser-based tools === &lt;br /&gt;
&lt;br /&gt;
*Firefox - http://www.mozilla.com/en-US/firefox/&lt;br /&gt;
*User-Agent Switcher for Firefox - https://addons.mozilla.org/firefox/59/&lt;br /&gt;
*Web Developer - https://addons.mozilla.org/firefox/60/&lt;br /&gt;
*WML Browser - https://addons.mozilla.org/firefox/62/&lt;br /&gt;
*XHTML Mobile Profile (haven&#039;t used it yet) - https://addons.mozilla.org/firefox/1345/&lt;br /&gt;
&lt;br /&gt;
=== WAP Emulators ===&lt;br /&gt;
*Opera Mini - http://www.operamini.com/features/simulator/&lt;br /&gt;
*DotMobi - http://pc.dev.mobi/&lt;br /&gt;
*Pukupi (i-mode emulator) - http://pukupi.com/tools/mimic/&lt;br /&gt;
*Openwave Phone Simulator - http://developer.openwave.com/dvl/tools_and_sdk/phone_simulator/index.htm&lt;br /&gt;
*Klondike - http://www.apachesoftware.com/Engine.html&lt;br /&gt;
*YoSpace - http://www.yospace.com/spedemo.html&lt;br /&gt;
&lt;br /&gt;
=== Server Side Tools === &lt;br /&gt;
*WURFL - http://wurfl.sourceforge.net&lt;br /&gt;
** Latest version - http://www.nusho.it/wurfl/dl.php?t=d&amp;amp;f=wurfl.zip&lt;br /&gt;
** PHP Lbrary - http://wurfl.sourceforge.net/php/ &lt;br /&gt;
** Web Patch - http://www.nusho.it/wurfl/dl.php?t=d&amp;amp;f=web_browsers_patch.xml&lt;br /&gt;
*Andrea Trasatti&#039;s (creator of WURFL) introduction to WURFL - http://pc.dev.mobi/?q=node/18&lt;br /&gt;
&lt;br /&gt;
=== Development Sites ===&lt;br /&gt;
*DotMobi - http://pc.dev.mobi/&lt;br /&gt;
*Global Authoring Practices for the Mobile Web (GAP) - http://www.passani.it/gap/&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
*W3C Mobile Web Initiative - http://www.w3.org/Mobile/&lt;br /&gt;
*W3C MobileOK Basic Test - http://www.w3.org/TR/mobileOK-basic10-tests/&lt;br /&gt;
*W3C Mobile Web Best Practices 1.0 - http://www.w3.org/TR/mobile-bp/&lt;br /&gt;
*WTAI - http://web.archive.org/web/20070101170723/http://www.thozie.de/english/wap/wtai.htm&lt;br /&gt;
*XHTML-MP - http://www.informit.com/guides/content.asp?g=xml&amp;amp;seqNum=170&amp;amp;rl=1&lt;br /&gt;
*GAP Templates - http://www.passani.it/gap/templates/&lt;br /&gt;
&lt;br /&gt;
=== Examples used in class ===&lt;br /&gt;
&lt;br /&gt;
*Michael&#039;s Palindrome page - http://uberthings.com/palindromic&lt;br /&gt;
*WAP Friendly Palindrome page - http://uberthings.com/palindromic/p.php&lt;br /&gt;
*WURFL browser tester - http://uberthings.com/palindromic/wap.php&lt;br /&gt;
*WURFL tester code - http://uberthings.com/palindromic/wap_php.txt&lt;br /&gt;
*Hello,WAP - http://uberthings.com/palindromic/hello.xhtml&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3027</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3027"/>
		<updated>2007-11-13T23:57:01Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 11 (November 13): Playing (with) the future (WAP + XHTML) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started.&lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/week9_python_in_the_house.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/ Python SDK &amp;amp; ScriptShell 1.4.1 (probably outdated)]&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/10/week10_HTTP_POST_uploader.pdf Lecture Notes]&lt;br /&gt;
* [http://mobilenin.com/pys60/ex_upload_image_to_url.htm File upload (in Python)]&lt;br /&gt;
* [http://aymanshamma.googlepages.com/httppostfrompys60tophp HTTP POST in Python]&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 13): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_12:_WAP_Tools Useful WAP links]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Create wireframes/mockups and a brief presentation (~3 min) for your final project.&lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.&lt;br /&gt;
&lt;br /&gt;
=== Week 13 (November 27) Special Presentation ===&lt;br /&gt;
&lt;br /&gt;
Some very special guests come to class this week to talk about their experiences building interesting mobile apps.&lt;br /&gt;
&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Week_12:_WAP_Tools&amp;diff=3025</id>
		<title>Week 12: WAP Tools</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Week_12:_WAP_Tools&amp;diff=3025"/>
		<updated>2007-11-11T23:24:14Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Browser-based tools === &lt;br /&gt;
&lt;br /&gt;
*Firefox - http://www.mozilla.com/en-US/firefox/&lt;br /&gt;
*User-Agent Switcher for Firefox - https://addons.mozilla.org/firefox/59/&lt;br /&gt;
*Web Developer - https://addons.mozilla.org/firefox/60/&lt;br /&gt;
*WML Browser - https://addons.mozilla.org/firefox/62/&lt;br /&gt;
*XHTML Mobile Profile (haven&#039;t used it yet) - https://addons.mozilla.org/firefox/1345/&lt;br /&gt;
&lt;br /&gt;
=== WAP Emulators ===&lt;br /&gt;
*Opera Mini - http://www.operamini.com/features/simulator/&lt;br /&gt;
*DotMobi - http://pc.dev.mobi/&lt;br /&gt;
*Pukupi (i-mode emulator) - http://pukupi.com/tools/mimic/&lt;br /&gt;
*Openwave Phone Simulator - http://developer.openwave.com/dvl/tools_and_sdk/phone_simulator/index.htm&lt;br /&gt;
*Klondike - http://www.apachesoftware.com/Engine.html&lt;br /&gt;
*YoSpace - http://www.yospace.com/spedemo.html&lt;br /&gt;
&lt;br /&gt;
=== Server Side Tools === &lt;br /&gt;
*WURFL - http://wurfl.sourceforge.net&lt;br /&gt;
** Latest version - http://www.nusho.it/wurfl/dl.php?t=d&amp;amp;f=wurfl.zip&lt;br /&gt;
** PHP Lbrary - http://wurfl.sourceforge.net/php/ &lt;br /&gt;
** Web Patch - http://www.nusho.it/wurfl/dl.php?t=d&amp;amp;f=web_browsers_patch.xml&lt;br /&gt;
*Andrea Trasatti&#039;s (creator of WURFL) introduction to WURFL - http://pc.dev.mobi/?q=node/18&lt;br /&gt;
&lt;br /&gt;
=== Development Sites ===&lt;br /&gt;
*DotMobi - http://pc.dev.mobi/&lt;br /&gt;
*Global Authoring Practices for the Mobile Web (GAP) - http://www.passani.it/gap/&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
*W3C Mobile Web Initiative - http://www.w3.org/Mobile/&lt;br /&gt;
*W3C MobileOK Basic Test - http://www.w3.org/TR/mobileOK-basic10-tests/&lt;br /&gt;
*W3C Mobile Web Best Practices 1.0 - http://www.w3.org/TR/mobile-bp/&lt;br /&gt;
*WTAI - http://www.thozie.de/english/wap/wtai.htm&lt;br /&gt;
*XHTML-MP - http://www.informit.com/guides/content.asp?g=xml&amp;amp;seqNum=170&amp;amp;rl=1&lt;br /&gt;
*GAP Templates - http://www.passani.it/gap/templates/&lt;br /&gt;
&lt;br /&gt;
=== Examples used in class ===&lt;br /&gt;
&lt;br /&gt;
*Michael&#039;s Palindrome page - http://uberthings.com/palindromic&lt;br /&gt;
*WAP Friendly Palindrome page - http://uberthings.com/palindromic/p.php&lt;br /&gt;
*WURFL browser tester - http://uberthings.com/palindromic/wap.php&lt;br /&gt;
*WURFL tester code - http://uberthings.com/palindromic/wap_php.txt&lt;br /&gt;
*Hello,WAP - http://uberthings.com/palindromic/hello.xhtml&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Homework07&amp;diff=3024</id>
		<title>Homework07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Homework07&amp;diff=3024"/>
		<updated>2007-11-11T23:10:37Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Homework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Homework == &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Add your name and a link to your homework in the appropriate week. Post source code, screenshots, images, applications.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Week_One]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Two]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Three]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Four]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Five]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Six]]&lt;br /&gt;
&lt;br /&gt;
[[Midterms07]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Ten]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Eleven]]&lt;br /&gt;
&lt;br /&gt;
[[FinalProjects07]]&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3023</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3023"/>
		<updated>2007-11-11T23:06:46Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 11 (November 13): Playing (with) the future (WAP + XHTML) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started.&lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/week9_python_in_the_house.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/ Python SDK &amp;amp; ScriptShell 1.4.1 (probably outdated)]&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/10/week10_HTTP_POST_uploader.pdf Lecture Notes]&lt;br /&gt;
* [http://mobilenin.com/pys60/ex_upload_image_to_url.htm File upload (in Python)]&lt;br /&gt;
* [http://aymanshamma.googlepages.com/httppostfrompys60tophp HTTP POST in Python]&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 13): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Create wireframes/mockups and a brief presentation (~3 min) for your final project.&lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.&lt;br /&gt;
&lt;br /&gt;
=== Week 13 (November 27) Special Presentation ===&lt;br /&gt;
&lt;br /&gt;
Some very special guests come to class this week to talk about their experiences building interesting mobile apps.&lt;br /&gt;
&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3022</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3022"/>
		<updated>2007-11-11T23:06:24Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 11 (November 13): Playing (with) the future (WAP + XHTML) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started.&lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/week9_python_in_the_house.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/ Python SDK &amp;amp; ScriptShell 1.4.1 (probably outdated)]&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/10/week10_HTTP_POST_uploader.pdf Lecture Notes]&lt;br /&gt;
* [http://mobilenin.com/pys60/ex_upload_image_to_url.htm File upload (in Python)]&lt;br /&gt;
* [http://aymanshamma.googlepages.com/httppostfrompys60tophp HTTP POST in Python]&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 13): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Create wireframes/mockups and a brief presentation (~3 min) for your final project.&lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.&lt;br /&gt;
&lt;br /&gt;
=== Week 13 (November 27) Special Presentation ===&lt;br /&gt;
&lt;br /&gt;
Some very special guests come to class this week to talk about their experiences building interesting mobile apps.&lt;br /&gt;
&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3021</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3021"/>
		<updated>2007-11-11T23:05:07Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 11 (November 13): Playing (with) the future (WAP + XHTML) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started.&lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/week9_python_in_the_house.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/ Python SDK &amp;amp; ScriptShell 1.4.1 (probably outdated)]&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/10/week10_HTTP_POST_uploader.pdf Lecture Notes]&lt;br /&gt;
* [http://mobilenin.com/pys60/ex_upload_image_to_url.htm File upload (in Python)]&lt;br /&gt;
* [http://aymanshamma.googlepages.com/httppostfrompys60tophp HTTP POST in Python]&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 13): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.&lt;br /&gt;
&lt;br /&gt;
=== Week 13 (November 27) Special Presentation ===&lt;br /&gt;
&lt;br /&gt;
Some very special guests come to class this week to talk about their experiences building interesting mobile apps.&lt;br /&gt;
&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3020</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3020"/>
		<updated>2007-11-11T23:02:24Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started.&lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/week9_python_in_the_house.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/ Python SDK &amp;amp; ScriptShell 1.4.1 (probably outdated)]&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/10/week10_HTTP_POST_uploader.pdf Lecture Notes]&lt;br /&gt;
* [http://mobilenin.com/pys60/ex_upload_image_to_url.htm File upload (in Python)]&lt;br /&gt;
* [http://aymanshamma.googlepages.com/httppostfrompys60tophp HTTP POST in Python]&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 13): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.&lt;br /&gt;
&lt;br /&gt;
=== Week 13 (November 27) Special Presentation ===&lt;br /&gt;
&lt;br /&gt;
Some very special guests come to class this week to talk about their experiences building interesting mobile apps.&lt;br /&gt;
&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3019</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3019"/>
		<updated>2007-11-11T21:38:18Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 13 (November 27) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started.&lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/week9_python_in_the_house.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/ Python SDK &amp;amp; ScriptShell 1.4.1 (probably outdated)]&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 13): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.&lt;br /&gt;
&lt;br /&gt;
=== Week 13 (November 27) Special Presentation ===&lt;br /&gt;
&lt;br /&gt;
Some very special guests come to class this week to talk about their experiences building interesting mobile apps.&lt;br /&gt;
&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3018</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3018"/>
		<updated>2007-11-06T15:39:51Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 13 (December 4): Final Project Presentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started.&lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/week9_python_in_the_house.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/ Python SDK &amp;amp; ScriptShell 1.4.1 (probably outdated)]&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 13): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.&lt;br /&gt;
&lt;br /&gt;
=== Week 13 (November 27) ===&lt;br /&gt;
&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3017</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3017"/>
		<updated>2007-11-06T15:39:35Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 13 (December 4): Final Project Presentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started.&lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/week9_python_in_the_house.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/ Python SDK &amp;amp; ScriptShell 1.4.1 (probably outdated)]&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 13): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.&lt;br /&gt;
&lt;br /&gt;
=== Week 13 (November 27) ===&lt;br /&gt;
&lt;br /&gt;
=== Week 13 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3016</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3016"/>
		<updated>2007-11-06T15:38:49Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 12 (November 27): Final Project Workshop AKA Open Questions/Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started.&lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/week9_python_in_the_house.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/ Python SDK &amp;amp; ScriptShell 1.4.1 (probably outdated)]&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 13): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.&lt;br /&gt;
&lt;br /&gt;
=== Week 13 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3015</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3015"/>
		<updated>2007-11-06T15:37:55Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 11 (November 20): Playing (with) the future (WAP + XHTML) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started.&lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/week9_python_in_the_house.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/ Python SDK &amp;amp; ScriptShell 1.4.1 (probably outdated)]&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 13): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 27): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.	&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== Week 13 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3014</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=3014"/>
		<updated>2007-11-06T04:02:29Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 9 (November 2): Python. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started.&lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/week9_python_in_the_house.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/9/ Python SDK &amp;amp; ScriptShell 1.4.1 (probably outdated)]&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 20): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
	&lt;br /&gt;
=== Week 12 (November 27): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.	&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== Week 13 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=PresentationSignup&amp;diff=3013</id>
		<title>PresentationSignup</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=PresentationSignup&amp;diff=3013"/>
		<updated>2007-11-02T22:45:40Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* 2007 Presentations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 2007 Presentations == &lt;br /&gt;
&lt;br /&gt;
* Week 2 (September 11): Dean, Vibha&lt;br /&gt;
* Week 3 (September 18):Ellie, Riddhima&lt;br /&gt;
* Week 4 (September 25):Eric Tommy Roger&lt;br /&gt;
* Week 5 (October 2): &lt;br /&gt;
* Week 6 (October 9): &lt;br /&gt;
* Week 7 (October 16):&lt;br /&gt;
* Week 8 (October 30): &lt;br /&gt;
* Week 9 (November 2):&lt;br /&gt;
* Week 10 (November 6): [Chul Song, ChoRong] &amp;amp; [Amber, Matt]&lt;br /&gt;
* Week 11 (November 13): Peng, Shin-Yi, Hyeki&lt;br /&gt;
* Week 12 (November 20): Amber, Matt  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 2006 Presentations ==&lt;br /&gt;
* Week 2: (September 14)[http://www.techyart.com/Mobile/bCode.ppt Kat, Jen, Arly]&lt;br /&gt;
* Week 3: (September 21) [http://michaeldelgaudio.com/html/mobile/presentation.htm Michael DelGaudio]&lt;br /&gt;
* Week 4: (September 28) &lt;br /&gt;
* Week 5: (October 5) [http://catmindeye.com/mobileapps-2.ppt Nanna and Cat]   &lt;br /&gt;
* Week 6: (October 12) Max, Vincent&lt;br /&gt;
* Week 7: (October 19) [http://giladlotan.com/MobileApps/presentation.ppt Gilad, Chunxi and Greg B.]  &lt;br /&gt;
 &lt;br /&gt;
* Week 9: MAKE-UP CLASS: (Friday, November 10) Kate B, Josh Kn &amp;amp; Chris P&lt;br /&gt;
&lt;br /&gt;
* Week 10: (November 9) Fernando, Jonathan  &lt;br /&gt;
* Week 11: (November 16) [http://ephexi.com/mobile/presentation.ppt Ran, Olivia &amp;amp; Jury]&lt;br /&gt;
* Week 12: (November 30) Andy, Alex&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Python_Setup_Notes&amp;diff=3012</id>
		<title>Python Setup Notes</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Python_Setup_Notes&amp;diff=3012"/>
		<updated>2007-11-02T21:09:38Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Hello Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python for S60 ==&lt;br /&gt;
[http://wiki.opensource.nokia.com/projects/Python_for_S60 Python Home Page]&lt;br /&gt;
Python for S60 is Nokia&#039;s port of the Python language to the S60 smartphone platform. In addition to the standard features of the Python language, PyS60 provides access to many of the phone&#039;s uniquely smartphone-y functions, such as camera, contacts, calendar, audio recording and playing, TCP/IP and Bluetooth communications and simple telephony.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
[http://wiki.opensource.nokia.com/projects/Installing_PyS60 Installing PyS60] | [http://sourceforge.net/project/showfiles.php?group_id=154155 Download page]&lt;br /&gt;
&lt;br /&gt;
Since we are using the N80 and N95 phones provided by Nokia which are Series 60 3rd Edition devices - we&#039;ll need to download the following files:&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/9/ Grab the files here]&lt;br /&gt;
&lt;br /&gt;
* Python &lt;br /&gt;
* Python Script Shell&lt;br /&gt;
* Documentation&lt;br /&gt;
&lt;br /&gt;
Bluetooth the first two to your N80 / N95 and install them ahead of time.&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
[http://wiki.forum.nokia.com/index.php/Category:Python#.22How_To.22_Guides_for_Python Forum Nokia How To Guides for Python]&lt;br /&gt;
&lt;br /&gt;
[http://www.mobilenin.com/pys60/menu.htm Jurgen Scheible&#039;s Tutorial Site]&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/doc/2.2.3/lib/lib.html Python Library Reference]&lt;br /&gt;
&lt;br /&gt;
[http://docs.python.org/tut/ Guido Van Rossum&#039;s Python Tutorial]&lt;br /&gt;
&lt;br /&gt;
=== Editors === &lt;br /&gt;
[http://pydev.sourceforge.net/ PyDev (for Eclipse]&lt;br /&gt;
&lt;br /&gt;
=== Useful Tools === &lt;br /&gt;
[http://pdis.hiit.fi/pdis/download/miso/ Miso - a utility library]&lt;br /&gt;
[http://people.csail.mit.edu/kapu/symbian/python.html Kari Pulli&#039;s Python page]&lt;br /&gt;
&lt;br /&gt;
=== Simple Programs ===&lt;br /&gt;
&lt;br /&gt;
==== Hello Python ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import appuifw&lt;br /&gt;
&lt;br /&gt;
appuifw.note(u&amp;quot;Well hello Python for Series60, you look nice... &amp;quot;, &amp;quot;info&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Simple Text Input ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Copyright (c) 2005 Jurgen Scheible&lt;br /&gt;
# This script performs a query with a single-field dialog (text input field)&lt;br /&gt;
# and displays the users input as a pop-up note &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import appuifw&lt;br /&gt;
&lt;br /&gt;
firstname = appuifw.query(u&amp;quot;Type your first name:&amp;quot;, &amp;quot;text&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
appuifw.note(u&amp;quot;Your first name is: &amp;quot; + firstname, &amp;quot;info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
surname = appuifw.query(u&amp;quot;Type your surname&amp;quot;, &amp;quot;text&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
appuifw.note(u&amp;quot;Your surname is: &amp;quot; + surname, &amp;quot;info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
appuifw.note(u&amp;quot;Hola &amp;quot; + firstname + &amp;quot; &amp;quot; +surname, &amp;quot;info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# NOTE: a text string must be defined as unicode&lt;br /&gt;
# u&amp;quot;...&amp;quot;&lt;br /&gt;
# The mobile can not diplay the text otherwise properly!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exercises ===&lt;br /&gt;
&lt;br /&gt;
# Rewrite the Zombie Detector from Week 2 in Python.&lt;br /&gt;
# Create a script which reads in a string and then sends it an SMS to your neighbour&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Python_Setup_Notes&amp;diff=3011</id>
		<title>Python Setup Notes</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Python_Setup_Notes&amp;diff=3011"/>
		<updated>2007-11-02T20:32:43Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python for S60 ==&lt;br /&gt;
[http://wiki.opensource.nokia.com/projects/Python_for_S60 Python Home Page]&lt;br /&gt;
Python for S60 is Nokia&#039;s port of the Python language to the S60 smartphone platform. In addition to the standard features of the Python language, PyS60 provides access to many of the phone&#039;s uniquely smartphone-y functions, such as camera, contacts, calendar, audio recording and playing, TCP/IP and Bluetooth communications and simple telephony.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
[http://wiki.opensource.nokia.com/projects/Installing_PyS60 Installing PyS60] | [http://sourceforge.net/project/showfiles.php?group_id=154155 Download page]&lt;br /&gt;
&lt;br /&gt;
Since we are using the N80 and N95 phones provided by Nokia which are Series 60 3rd Edition devices - we&#039;ll need to download the following files:&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/9/ Grab the files here]&lt;br /&gt;
&lt;br /&gt;
* Python &lt;br /&gt;
* Python Script Shell&lt;br /&gt;
* Documentation&lt;br /&gt;
&lt;br /&gt;
Bluetooth the first two to your N80 / N95 and install them ahead of time.&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
[http://wiki.forum.nokia.com/index.php/Category:Python#.22How_To.22_Guides_for_Python Forum Nokia How To Guides for Python]&lt;br /&gt;
&lt;br /&gt;
[http://www.mobilenin.com/pys60/menu.htm Jurgen Scheible&#039;s Tutorial Site]&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/doc/2.2.3/lib/lib.html Python Library Reference]&lt;br /&gt;
&lt;br /&gt;
[http://docs.python.org/tut/ Guido Van Rossum&#039;s Python Tutorial]&lt;br /&gt;
&lt;br /&gt;
=== Editors === &lt;br /&gt;
[http://pydev.sourceforge.net/ PyDev (for Eclipse]&lt;br /&gt;
&lt;br /&gt;
=== Useful Tools === &lt;br /&gt;
[http://pdis.hiit.fi/pdis/download/miso/ Miso - a utility library]&lt;br /&gt;
[http://people.csail.mit.edu/kapu/symbian/python.html Kari Pulli&#039;s Python page]&lt;br /&gt;
&lt;br /&gt;
=== Simple Programs ===&lt;br /&gt;
&lt;br /&gt;
==== Hello Python ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import appuifw&lt;br /&gt;
&lt;br /&gt;
appuifw.note(u&amp;quot;Well hello Python for Series60, you look nice... &amp;quot;, &amp;quot;info&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exercises ===&lt;br /&gt;
&lt;br /&gt;
# Rewrite the Zombie Detector from Week 2 in Python.&lt;br /&gt;
# Create a script which reads in a string and then sends it an SMS to your neighbour&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=PresentationSignup&amp;diff=3010</id>
		<title>PresentationSignup</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=PresentationSignup&amp;diff=3010"/>
		<updated>2007-11-02T03:28:06Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* 2007 Presentations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 2007 Presentations == &lt;br /&gt;
&lt;br /&gt;
* Week 2 (September 11): Dean, Vibha&lt;br /&gt;
* Week 3 (September 18):Ellie, Riddhima&lt;br /&gt;
* Week 4 (September 25):Eric Tommy Roger&lt;br /&gt;
* Week 5 (October 2): &lt;br /&gt;
* Week 6 (October 9): &lt;br /&gt;
* Week 7 (October 16):&lt;br /&gt;
* Week 8 (October 30): &lt;br /&gt;
* Week 9 (November 2): Chul Song, ChoRong&lt;br /&gt;
* Week 10 (November 6): Amber, Matt &lt;br /&gt;
* Week 11 (November 13): Peng, Shin-Yi, Hyeki&lt;br /&gt;
* Week 12 (November 20): Amber, Matt  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 2006 Presentations ==&lt;br /&gt;
* Week 2: (September 14)[http://www.techyart.com/Mobile/bCode.ppt Kat, Jen, Arly]&lt;br /&gt;
* Week 3: (September 21) [http://michaeldelgaudio.com/html/mobile/presentation.htm Michael DelGaudio]&lt;br /&gt;
* Week 4: (September 28) &lt;br /&gt;
* Week 5: (October 5) [http://catmindeye.com/mobileapps-2.ppt Nanna and Cat]   &lt;br /&gt;
* Week 6: (October 12) Max, Vincent&lt;br /&gt;
* Week 7: (October 19) [http://giladlotan.com/MobileApps/presentation.ppt Gilad, Chunxi and Greg B.]  &lt;br /&gt;
 &lt;br /&gt;
* Week 9: MAKE-UP CLASS: (Friday, November 10) Kate B, Josh Kn &amp;amp; Chris P&lt;br /&gt;
&lt;br /&gt;
* Week 10: (November 9) Fernando, Jonathan  &lt;br /&gt;
* Week 11: (November 16) [http://ephexi.com/mobile/presentation.ppt Ran, Olivia &amp;amp; Jury]&lt;br /&gt;
* Week 12: (November 30) Andy, Alex&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Python_Setup_Notes&amp;diff=3009</id>
		<title>Python Setup Notes</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Python_Setup_Notes&amp;diff=3009"/>
		<updated>2007-11-02T03:22:18Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python for S60 ==&lt;br /&gt;
[http://wiki.opensource.nokia.com/projects/Python_for_S60 Python Home Page]&lt;br /&gt;
Python for S60 is Nokia&#039;s port of the Python language to the S60 smartphone platform. In addition to the standard features of the Python language, PyS60 provides access to many of the phone&#039;s uniquely smartphone-y functions, such as camera, contacts, calendar, audio recording and playing, TCP/IP and Bluetooth communications and simple telephony.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
[http://wiki.opensource.nokia.com/projects/Installing_PyS60 Installing PyS60] | [http://sourceforge.net/project/showfiles.php?group_id=154155 Download page]&lt;br /&gt;
&lt;br /&gt;
Since we are using the N80 and N95 phones provided by Nokia which are Series 60 3rd Edition devices - we&#039;ll need to download the following files:&lt;br /&gt;
&lt;br /&gt;
* Python &lt;br /&gt;
* Python Script Shell&lt;br /&gt;
* Documentation&lt;br /&gt;
&lt;br /&gt;
Bluetooth the first two to your N80 / N95 and install them ahead of time.&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
[http://wiki.forum.nokia.com/index.php/Category:Python#.22How_To.22_Guides_for_Python Forum Nokia How To Guides for Python]&lt;br /&gt;
&lt;br /&gt;
[http://www.mobilenin.com/pys60/menu.htm Jurgen Scheible&#039;s Tutorial Site]&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/doc/2.2.3/lib/lib.html Python Library Reference]&lt;br /&gt;
&lt;br /&gt;
[http://docs.python.org/tut/ Guido Van Rossum&#039;s Python Tutorial]&lt;br /&gt;
&lt;br /&gt;
=== Editors === &lt;br /&gt;
[http://pydev.sourceforge.net/ PyDev (for Eclipse]&lt;br /&gt;
&lt;br /&gt;
=== Useful Tools === &lt;br /&gt;
[http://pdis.hiit.fi/pdis/download/miso/ Miso - a utility library]&lt;br /&gt;
[http://people.csail.mit.edu/kapu/symbian/python.html Kari Pulli&#039;s Python page]&lt;br /&gt;
&lt;br /&gt;
=== Simple Programs ===&lt;br /&gt;
&lt;br /&gt;
==== Hello Python ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import appuifw&lt;br /&gt;
&lt;br /&gt;
appuifw.note(u&amp;quot;Well hello Python for Series60, you look nice... &amp;quot;, &amp;quot;info&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exercises ===&lt;br /&gt;
&lt;br /&gt;
# Rewrite the Zombie Detector from Week 2 in Python.&lt;br /&gt;
# Create a script which reads in a string and then sends it an SMS to your neighbour&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Python_Setup_Notes&amp;diff=3008</id>
		<title>Python Setup Notes</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Python_Setup_Notes&amp;diff=3008"/>
		<updated>2007-11-02T03:20:17Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python for S60 ==&lt;br /&gt;
[http://wiki.opensource.nokia.com/projects/Python_for_S60 Python Home Page]&lt;br /&gt;
Python for S60 is Nokia&#039;s port of the Python language to the S60 smartphone platform. In addition to the standard features of the Python language, PyS60 provides access to many of the phone&#039;s uniquely smartphone-y functions, such as camera, contacts, calendar, audio recording and playing, TCP/IP and Bluetooth communications and simple telephony.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
[http://wiki.opensource.nokia.com/projects/Installing_PyS60 Installing PyS60] | [http://sourceforge.net/project/showfiles.php?group_id=154155 Download page]&lt;br /&gt;
&lt;br /&gt;
Since we are using the N80 and N95 phones provided by Nokia which are Series 60 3rd Edition devices - we&#039;ll need to download the following files:&lt;br /&gt;
&lt;br /&gt;
* Python &lt;br /&gt;
* Python Script Shell&lt;br /&gt;
* Documentation&lt;br /&gt;
&lt;br /&gt;
Bluetooth the first two to your N80 / N95 and install them ahead of time.&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
[http://www.mobilenin.com/pys60/menu.htm Jurgen Scheible&#039;s Tutorial Site]&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/doc/2.2.3/lib/lib.html Python Library Reference]&lt;br /&gt;
&lt;br /&gt;
[http://docs.python.org/tut/ Guido Van Rossum&#039;s Python Tutorial]&lt;br /&gt;
&lt;br /&gt;
=== Editors === &lt;br /&gt;
[http://pydev.sourceforge.net/ PyDev (for Eclipse]&lt;br /&gt;
&lt;br /&gt;
=== Useful Tools === &lt;br /&gt;
[http://pdis.hiit.fi/pdis/download/miso/ Miso - a utility library]&lt;br /&gt;
[http://people.csail.mit.edu/kapu/symbian/python.html Kari Pulli&#039;s Python page]&lt;br /&gt;
&lt;br /&gt;
=== Simple Programs ===&lt;br /&gt;
&lt;br /&gt;
==== Hello Python ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import appuifw&lt;br /&gt;
&lt;br /&gt;
appuifw.note(u&amp;quot;Well hello Python for Series60, you look nice... &amp;quot;, &amp;quot;info&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exercises ===&lt;br /&gt;
&lt;br /&gt;
# Rewrite the Zombie Detector from Week 2 in Python.&lt;br /&gt;
# Create a script which reads in a string and then sends it an SMS to your neighbour&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Python_Setup_Notes&amp;diff=3007</id>
		<title>Python Setup Notes</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Python_Setup_Notes&amp;diff=3007"/>
		<updated>2007-11-02T03:04:41Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Python for S60 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python for S60 ==&lt;br /&gt;
[http://wiki.opensource.nokia.com/projects/Python_for_S60 Python Home Page]&lt;br /&gt;
Python for S60 is Nokia&#039;s port of the Python language to the S60 smartphone platform. In addition to the standard features of the Python language, PyS60 provides access to many of the phone&#039;s uniquely smartphone-y functions, such as camera, contacts, calendar, audio recording and playing, TCP/IP and Bluetooth communications and simple telephony.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
[http://wiki.opensource.nokia.com/projects/Installing_PyS60 Installing PyS60] | &lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/project/showfiles.php?group_id=154155&amp;amp;package_id=171153&amp;amp;release_id=462564 Download page]&lt;br /&gt;
&lt;br /&gt;
Since we are using the lovely N80 phones provided by Nokia - we&#039;ll need to download the following files:&lt;br /&gt;
&lt;br /&gt;
*[http://downloads.sourceforge.net/pys60/PythonForS60_1_3_13_SDK_3rdEd_selfsigned.zip?modtime=1163177758&amp;amp;big_mirror=0 PythonForS60_1_3_13_SDK_3rdEd for Series60 3rd Edition] phones like N80, N91, N93. &lt;br /&gt;
*[http://downloads.sourceforge.net/pys60/pythonscriptshell_1_3_13_3rded_selfsigned.SIS?modtime=1163177763&amp;amp;big_mirror=0 PythonScriptShell_1_3_13_3rdEd]&lt;br /&gt;
*[http://downloads.sourceforge.net/pys60/PythonForS60_doc_1_3_13.pdf?modtime=1163177758&amp;amp;big_mirror=0 API Documentation]&lt;br /&gt;
&lt;br /&gt;
Bluetooth these to your N80 and install them ahead of time.&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
[http://www.mobilenin.com/pys60/menu.htm Jurgen Scheible&#039;s Tutorial Site]&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/doc/2.2.3/lib/lib.html Python Library Reference]&lt;br /&gt;
&lt;br /&gt;
[http://docs.python.org/tut/ Guido Van Rossum&#039;s Python Tutorial]&lt;br /&gt;
&lt;br /&gt;
=== Editors === &lt;br /&gt;
[http://pydev.sourceforge.net/ PyDev (for Eclipse]&lt;br /&gt;
&lt;br /&gt;
=== Useful Tools === &lt;br /&gt;
[http://pdis.hiit.fi/pdis/download/miso/ Miso - a utility library]&lt;br /&gt;
[http://people.csail.mit.edu/kapu/symbian/python.html Kari Pulli&#039;s Python page]&lt;br /&gt;
&lt;br /&gt;
=== Simple Programs ===&lt;br /&gt;
&lt;br /&gt;
==== Hello Python ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import appuifw&lt;br /&gt;
&lt;br /&gt;
appuifw.note(u&amp;quot;Well hello Python for Series60, you look nice... &amp;quot;, &amp;quot;info&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exercises ===&lt;br /&gt;
&lt;br /&gt;
# Rewrite the Zombie Detector from Week 2 in Python.&lt;br /&gt;
# Create a script which reads in a string and then sends it an SMS to your neighbour&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Python_Setup_Notes&amp;diff=3006</id>
		<title>Python Setup Notes</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Python_Setup_Notes&amp;diff=3006"/>
		<updated>2007-11-02T03:03:37Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Python for S60 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python for S60 ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.opensource.nokia.com/projects/Python_for_S60 Python Home Page]&lt;br /&gt;
       &lt;br /&gt;
=== Installation ===&lt;br /&gt;
[http://wiki.opensource.nokia.com/projects/Installing_PyS60 Installing PyS60] | &lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/project/showfiles.php?group_id=154155&amp;amp;package_id=171153&amp;amp;release_id=462564 Download page]&lt;br /&gt;
&lt;br /&gt;
Since we are using the lovely N80 phones provided by Nokia - we&#039;ll need to download the following files:&lt;br /&gt;
&lt;br /&gt;
*[http://downloads.sourceforge.net/pys60/PythonForS60_1_3_13_SDK_3rdEd_selfsigned.zip?modtime=1163177758&amp;amp;big_mirror=0 PythonForS60_1_3_13_SDK_3rdEd for Series60 3rd Edition] phones like N80, N91, N93. &lt;br /&gt;
*[http://downloads.sourceforge.net/pys60/pythonscriptshell_1_3_13_3rded_selfsigned.SIS?modtime=1163177763&amp;amp;big_mirror=0 PythonScriptShell_1_3_13_3rdEd]&lt;br /&gt;
*[http://downloads.sourceforge.net/pys60/PythonForS60_doc_1_3_13.pdf?modtime=1163177758&amp;amp;big_mirror=0 API Documentation]&lt;br /&gt;
&lt;br /&gt;
Bluetooth these to your N80 and install them ahead of time.&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
[http://www.mobilenin.com/pys60/menu.htm Jurgen Scheible&#039;s Tutorial Site]&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/doc/2.2.3/lib/lib.html Python Library Reference]&lt;br /&gt;
&lt;br /&gt;
[http://docs.python.org/tut/ Guido Van Rossum&#039;s Python Tutorial]&lt;br /&gt;
&lt;br /&gt;
=== Editors === &lt;br /&gt;
[http://pydev.sourceforge.net/ PyDev (for Eclipse]&lt;br /&gt;
&lt;br /&gt;
=== Useful Tools === &lt;br /&gt;
[http://pdis.hiit.fi/pdis/download/miso/ Miso - a utility library]&lt;br /&gt;
[http://people.csail.mit.edu/kapu/symbian/python.html Kari Pulli&#039;s Python page]&lt;br /&gt;
&lt;br /&gt;
=== Simple Programs ===&lt;br /&gt;
&lt;br /&gt;
==== Hello Python ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import appuifw&lt;br /&gt;
&lt;br /&gt;
appuifw.note(u&amp;quot;Well hello Python for Series60, you look nice... &amp;quot;, &amp;quot;info&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exercises ===&lt;br /&gt;
&lt;br /&gt;
# Rewrite the Zombie Detector from Week 2 in Python.&lt;br /&gt;
# Create a script which reads in a string and then sends it an SMS to your neighbour&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Python_Setup_Notes&amp;diff=3005</id>
		<title>Python Setup Notes</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Python_Setup_Notes&amp;diff=3005"/>
		<updated>2007-11-02T03:02:59Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python for S60 ==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
[http://wiki.opensource.nokia.com/projects/Installing_PyS60 Installing PyS60] | &lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/project/showfiles.php?group_id=154155&amp;amp;package_id=171153&amp;amp;release_id=462564 Download page]&lt;br /&gt;
&lt;br /&gt;
Since we are using the lovely N80 phones provided by Nokia - we&#039;ll need to download the following files:&lt;br /&gt;
&lt;br /&gt;
*[http://downloads.sourceforge.net/pys60/PythonForS60_1_3_13_SDK_3rdEd_selfsigned.zip?modtime=1163177758&amp;amp;big_mirror=0 PythonForS60_1_3_13_SDK_3rdEd for Series60 3rd Edition] phones like N80, N91, N93. &lt;br /&gt;
*[http://downloads.sourceforge.net/pys60/pythonscriptshell_1_3_13_3rded_selfsigned.SIS?modtime=1163177763&amp;amp;big_mirror=0 PythonScriptShell_1_3_13_3rdEd]&lt;br /&gt;
*[http://downloads.sourceforge.net/pys60/PythonForS60_doc_1_3_13.pdf?modtime=1163177758&amp;amp;big_mirror=0 API Documentation]&lt;br /&gt;
&lt;br /&gt;
Bluetooth these to your N80 and install them ahead of time.&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
[http://www.mobilenin.com/pys60/menu.htm Jurgen Scheible&#039;s Tutorial Site]&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/doc/2.2.3/lib/lib.html Python Library Reference]&lt;br /&gt;
&lt;br /&gt;
[http://docs.python.org/tut/ Guido Van Rossum&#039;s Python Tutorial]&lt;br /&gt;
&lt;br /&gt;
=== Editors === &lt;br /&gt;
[http://pydev.sourceforge.net/ PyDev (for Eclipse]&lt;br /&gt;
&lt;br /&gt;
=== Useful Tools === &lt;br /&gt;
[http://pdis.hiit.fi/pdis/download/miso/ Miso - a utility library]&lt;br /&gt;
[http://people.csail.mit.edu/kapu/symbian/python.html Kari Pulli&#039;s Python page]&lt;br /&gt;
&lt;br /&gt;
=== Simple Programs ===&lt;br /&gt;
&lt;br /&gt;
==== Hello Python ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import appuifw&lt;br /&gt;
&lt;br /&gt;
appuifw.note(u&amp;quot;Well hello Python for Series60, you look nice... &amp;quot;, &amp;quot;info&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exercises ===&lt;br /&gt;
&lt;br /&gt;
# Rewrite the Zombie Detector from Week 2 in Python.&lt;br /&gt;
# Create a script which reads in a string and then sends it an SMS to your neighbour&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Midterms07&amp;diff=2991</id>
		<title>Midterms07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Midterms07&amp;diff=2991"/>
		<updated>2007-10-30T11:54:44Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Corrine Brown&lt;br /&gt;
* Peng Zhao &amp;amp; HyeKi Min&lt;br /&gt;
* Vibha Bamba&lt;br /&gt;
* Chul Song&lt;br /&gt;
* Tommy Tseng&lt;br /&gt;
* Roger TSAI&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BREAK&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ChoRong Hwang &amp;amp; Shin-Yi Huang&lt;br /&gt;
* Riddhima Shelat&lt;br /&gt;
* Eric Chiu&lt;br /&gt;
* Amber Nicole Reed &amp;amp; Maria Mavrakis &lt;br /&gt;
* Ellie Tam&lt;br /&gt;
* Matthew Fargo&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Midterms07&amp;diff=2990</id>
		<title>Midterms07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Midterms07&amp;diff=2990"/>
		<updated>2007-10-30T11:53:41Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Corrine Brown&lt;br /&gt;
Peng Zhao &amp;amp; HyeKi Min&lt;br /&gt;
Vibha Bamba&lt;br /&gt;
Chul Song&lt;br /&gt;
Tommy Tseng&lt;br /&gt;
Roger TSAI&lt;br /&gt;
&lt;br /&gt;
BREAK&lt;br /&gt;
&lt;br /&gt;
ChoRong Hwang &amp;amp; Shin-Yi Huang&lt;br /&gt;
Riddhima Shelat&lt;br /&gt;
Eric Chiu&lt;br /&gt;
Amber Nicole Reed &amp;amp; Maria Mavrakis &lt;br /&gt;
Ellie Tam&lt;br /&gt;
Matthew Fargo&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Homework07&amp;diff=2989</id>
		<title>Homework07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Homework07&amp;diff=2989"/>
		<updated>2007-10-30T11:46:28Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Homework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Homework == &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Add your name and a link to your homework in the appropriate week. Post source code, screenshots, images, applications.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Week_One]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Two]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Three]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Four]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Five]]&lt;br /&gt;
&lt;br /&gt;
[[Week_Six]]&lt;br /&gt;
&lt;br /&gt;
[[Midterms07]]&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2986</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2986"/>
		<updated>2007-10-26T23:30:52Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work on your mid terms!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/week7_dr_strangebug_07.pdf Lecture Notes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started. &lt;br /&gt;
	&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 20): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
	&lt;br /&gt;
=== Week 12 (November 27): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.	&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== Week 13 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2985</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2985"/>
		<updated>2007-10-26T20:58:14Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/7/RSS_RMS.zip RSS and RMS Examples]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Deploying Deploying]&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started. &lt;br /&gt;
	&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 20): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
	&lt;br /&gt;
=== Week 12 (November 27): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.	&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== Week 13 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2978</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2978"/>
		<updated>2007-10-26T02:33:32Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Python. === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started. &lt;br /&gt;
	&lt;br /&gt;
=== Week 10 (November 6): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (November 20): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
	&lt;br /&gt;
=== Week 12 (November 27): Final Project Workshop AKA Open Questions/Issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.	&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== Week 13 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2977</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2977"/>
		<updated>2007-10-26T02:30:34Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 9 (October 30): Obfuscation, HTTP POST, Bluetooth */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (November 2): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
=== Week 10: Final Project Workshop AKA Open Questions/Issues (November 6) === &lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.	&lt;br /&gt;
	&lt;br /&gt;
=== Week 10 (November 6): Final Project Workshop AKA Open Questions/Issues === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started. &lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
	&lt;br /&gt;
=== Week 13 (November 27): Final Project Presentations ===&lt;br /&gt;
	&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2976</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2976"/>
		<updated>2007-10-26T02:30:18Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 8 (October 23): Mid-term Presentations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 30): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (October 30): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
=== Week 10: Final Project Workshop AKA Open Questions/Issues (November 6) === &lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.	&lt;br /&gt;
	&lt;br /&gt;
=== Week 10 (November 6): Final Project Workshop AKA Open Questions/Issues === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started. &lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
	&lt;br /&gt;
=== Week 13 (November 27): Final Project Presentations ===&lt;br /&gt;
	&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2975</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2975"/>
		<updated>2007-10-26T02:29:59Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 7 (October 16): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 26): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 23): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said. &lt;br /&gt;
&lt;br /&gt;
=== Week 9 (October 30): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
=== Week 10: Final Project Workshop AKA Open Questions/Issues (November 6) === &lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.	&lt;br /&gt;
	&lt;br /&gt;
=== Week 10 (November 6): Final Project Workshop AKA Open Questions/Issues === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started. &lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
	&lt;br /&gt;
=== Week 13 (November 27): Final Project Presentations ===&lt;br /&gt;
	&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2973</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2973"/>
		<updated>2007-10-10T03:54:18Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 6 (October 9): Where am I? (Location Workshop) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/week6_location.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/6/Hipoqih.zip LBS Example code]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 16): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.				&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 23): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said. &lt;br /&gt;
&lt;br /&gt;
=== Week 9 (October 30): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
=== Week 10: Final Project Workshop AKA Open Questions/Issues (November 6) === &lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.	&lt;br /&gt;
	&lt;br /&gt;
=== Week 10 (November 6): Final Project Workshop AKA Open Questions/Issues === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started. &lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
	&lt;br /&gt;
=== Week 13 (November 27): Final Project Presentations ===&lt;br /&gt;
	&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2967</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2967"/>
		<updated>2007-10-09T22:11:06Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 6 (October 9): Where am I? (Location Workshop) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Write a single paragraph description of what you are doing for your mid-term. Link it to the wiki. Send it me for review when it&#039;s done. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API Documentation] USE THESE!!&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 16): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.				&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 23): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said. &lt;br /&gt;
&lt;br /&gt;
=== Week 9 (October 30): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
=== Week 10: Final Project Workshop AKA Open Questions/Issues (November 6) === &lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.	&lt;br /&gt;
	&lt;br /&gt;
=== Week 10 (November 6): Final Project Workshop AKA Open Questions/Issues === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started. &lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
	&lt;br /&gt;
=== Week 13 (November 27): Final Project Presentations ===&lt;br /&gt;
	&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
	<entry>
		<id>https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2960</id>
		<title>Syllabus07</title>
		<link rel="alternate" type="text/html" href="https://uberthings.com/teaching/wiki/index.php?title=Syllabus07&amp;diff=2960"/>
		<updated>2007-10-09T13:02:04Z</updated>

		<summary type="html">&lt;p&gt;Deprimer: /* Week 6 (October 9): Where am I? (Location Workshop) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Week 1 (September 7): Introduction to mobile === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program (&amp;quot;Hello Mob&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create an account on this wiki&lt;br /&gt;
# Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]&lt;br /&gt;
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]&lt;br /&gt;
# Download, install and setup [http://mobile.processing.org Mobile.Processing]&lt;br /&gt;
# Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - [[Week_One]]. Extra credit for choosing an exotic/obscure emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/1-introduction_to_mobile.pdf Lecture Notes]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]&lt;br /&gt;
&lt;br /&gt;
[http://uberthings.com/teaching/mobile_application_design/1/code.zip HelloMidlet Code (zipped)]&lt;br /&gt;
&lt;br /&gt;
=== Week 2 (September 11): Designing the Mobile User Experience (UX Workshop) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.&lt;br /&gt;
&lt;br /&gt;
Special guest: Jennifer Bove from Schematic + another mystery guest ([http://randomfoo.net/ Leonard Lin] from Upcoming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: Zombies (or to be decided in class)&lt;br /&gt;
&lt;br /&gt;
# Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: [http://superbad.com superbad] and [http://jodi.org jodi]. View source! Document your work on your blog / site, then link to it here - [[Week_Two]]&lt;br /&gt;
# FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class  like the Canvas or GameCanvas to draw an image on the phone&#039;s screen. &lt;br /&gt;
# What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - [[Week_Two]]&lt;br /&gt;
# If it isn&#039;t there already, add a link to your favourite application in the [http://uberthings.com/teaching/wiki/index.php?title=Links Links] section of the Wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/2/week2.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://gotapi.com GotAPI]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp1 MIDP 1 API Docs]&lt;br /&gt;
* [http://uberthings.com/mobile/docs/midp2/ MIDP 2 API Docs]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_ZombieDetector ZombieDetector Code]&lt;br /&gt;
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go]&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (September 18): Building the User Interface === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia&#039;s Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. Threads. Why we love &#039;em. Packaging. How to use Canvases. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Theme: to be decided in class&lt;br /&gt;
&lt;br /&gt;
# Start thinking about an idea for a larger project that you&#039;d like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.&lt;br /&gt;
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer&#039;s Webstart to link to your JAD files.&lt;br /&gt;
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.&lt;br /&gt;
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don&#039;t even have to buy the book.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://eclipseme.org/docs/jadeditor.html EclipseME&#039;s JAD Editor] - a good overview of what those pesky JAD attributes mean.&lt;br /&gt;
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/3/code.zip Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)]&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (September 25): Multimedia &amp;amp; Networking === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feedback on project directions. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0&#039;s Multimedia API and how to access it to record audio, use the onboard camera and get video too. Overview of HTTP, XML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Create a MIDlet that connects to a server and downloads images / files / some data which you then use to do something.&lt;br /&gt;
# Review two of your classmates midterm projects. Write a paragraph of commentary/questions - post to their blog. Everyone should have at least two comments on their project. &lt;br /&gt;
# Refine your midterm project concepts, be prepared to discuss in greater detail next week.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_multimedia_http_07.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://www.devx.com/gethelpon/10MinuteSolution/16646 Sending HTTP Requests from a Wireless J2ME Device]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/4/week4_http_mmapi.zip Sample code (includes ImageMonkey, MediaInformationMIDlet)]&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (October 2): HTTP Part Deux === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More HTTP. This time we&#039;ll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we&#039;ll be getting a workshop from Jessie Boyes - Java developer extraordinaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Make a little game using some of the techniques you learned in class today OR use the XMLDemon example to create a MIDlet that reads some XML somewhere and does something interesting based on that.&lt;br /&gt;
# Wireframe your midterm ideas. Figure out how you will build it. Choose a handset, SDK and emulator for your project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/week5_http_xml_games.pdf Lecture Notes (PDF)]&lt;br /&gt;
* [http://tlbs.us/gameapi/ Writing J2ME Games - Jesse Boyes]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/gametest.zip Game Test sample code from Jesse]&lt;br /&gt;
* [http://uberthings.com/teaching/mobile_application_design/5/XMLDemon.zip XML sample code]&lt;br /&gt;
* [http://webstart.mpowerplayer.com/uberthings.com/teaching/mobile_application_design/5/XMLDemon.jad.jnlp Launch XML example]&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (October 9): Where am I? (Location Workshop) === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This week we&#039;ll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.&lt;br /&gt;
&lt;br /&gt;
# [http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-4AEC8DAF-DDCC-4A30-B820-23F2BA60EA52/index.html JSR-179 API]&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (October 16): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.				&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (October 23): Mid-term Presentations === &lt;br /&gt;
&lt;br /&gt;
&#039;Nuff said. &lt;br /&gt;
&lt;br /&gt;
=== Week 9 (October 30): Obfuscation, HTTP POST, Bluetooth === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We&#039;ll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).&lt;br /&gt;
&lt;br /&gt;
=== Week 10: Final Project Workshop AKA Open Questions/Issues (November 6) === &lt;br /&gt;
&lt;br /&gt;
Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We&#039;ll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.	&lt;br /&gt;
	&lt;br /&gt;
=== Week 10 (November 6): Final Project Workshop AKA Open Questions/Issues === &lt;br /&gt;
&lt;br /&gt;
	&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mmmm... Python. See my [[Python_Setup_Notes]] notes on the Wiki to get started. &lt;br /&gt;
&lt;br /&gt;
=== Week 12 (November 20): Playing (with) the future (WAP + XHTML) === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wireframe presentations for finals. I&#039;ll be introducing WAP, WML, XHTML MP, CHTML and CSS and we&#039;ll at look at how and why Docomo was so successful with it&#039;s iMode platform. If there&#039;s time we&#039;ll look at the [http://wurfl.sourceforge.net WURFL](no, it&#039;s not a Star Trek character) and look at a few examples in PHP or Ruby.&lt;br /&gt;
	&lt;br /&gt;
=== Week 13 (November 27): Final Project Presentations ===&lt;br /&gt;
	&lt;br /&gt;
=== Week 14 (December 4): Final Project Presentation ===&lt;br /&gt;
&lt;br /&gt;
Guest Critics will be posted here.&lt;/div&gt;</summary>
		<author><name>Deprimer</name></author>
	</entry>
</feed>