More on Embedded Development Tools, Watch to program

In my digital systems design class we have used the eZ430-F2013 development kits – they are cheap (about 20 €) and most students get it working 🙂

I have seen TI has a new development kit which is really interesting: „eZ430-Chronos Wireless Watch Development Tool“ – Could be an useful basis for wearable computing projects – perhaps we should get them for the class on pervasive computing next term?

The TI commercial is on youtube:
http://www.youtube.com/watch?v=LDJIBydJvoM

Some years back IBM had a Linux watch as research platform. Gábor Blaskó published some concepts and protoytpes on how to interact with a watch computer, e.g. with strokes [1] or with a string [2].

[1] Gábor Blaskó and Steven Feiner. An Interaction System for Watch Computers Using Tactile Guidance and Bidirectional Segmented Strokes. Proc. 8th IEEE International Symposium on Wearable Computers (ISWC 2004), Arlington, VA, USA, 31 October – 3 November, 2004. pp.120-123.

[2] Gábor Blaskó, Chandra Narayanaswami, Steven Feiner. Prototyping Retractable String-Based Interaction Techniques for Dual-Display Mobile Devices. Proc. ACM Conference on Human Factors in Computing Systems (CHI 2006), Montreal, Québec, Canada, 22 – 27 April, 2006. pp.369-372.

DIY Segway – to motivate embedded programming?

Elektor magazine features in the current issue a DIY Segway called Elektor Wheelie. The system is build around a ATMEGA32 and has obviously a lot of mechanics. For sensing an ADXL320 (acceleration sensor) and an IDG-300 (gyro) are used. Looks like a fun project – and you have full access to the software (not sure what you really would program differently, perhaps one can tune it to get faster 😉

Perhaps it could be a platform to motive embedded programming – with clear real-time constraints, as it hurts if you fall off… Next term we are teaching digital system design and programming of microcontroller systems – should we get one for the lab? Someone willing to built it?

A service for true random numbers

After the exam board meeting at Trinity College in Dublin (I am external examiner for the Ubicomp program) I went back with Mads Haahr (the course director) to his office. Besides the screen on which he works he has one extra where constantly the log entries of his web server is displayed. It is an interesting awareness devices 😉 some years ago we did a project where we used the IP-address of incoming HTTP-requests to guess who the visitors are and to show their web pages on an awareness display [1], [2]. Looking back at web visitors works very well in an academic context and with request out of larger companies where one can expect that information is available on the web. Perhaps we should revisit the work and look how we can push this further given the new possibilities in the web.

The web-server Mads has in his office is pretty cool – it provides true random numbers – based on atmospheric noise picked up with 3 real radios (I saw them)! Have a look at the service for yourself: www.random.org. It provides an HTTP interface to use those numbers in your own applications. I would not have though of a web service to provide random numbers – but thinking a little more it makes a lot of sense…

[1] Schmidt, A. and Gellersen, H. 2001. Visitor awareness in the web. In Proceedings of the 10th international Conference on World Wide Web (Hong Kong, Hong Kong, May 01 – 05, 2001). WWW ’01. ACM, New York, NY, 745-753. DOI= http://doi.acm.org/10.1145/371920.372194

[2] Gellersen, H. and Schmidt, A. 2002. Look who’s visiting: supporting visitor awareness in the web. Int. J. Hum.-Comput. Stud. 56, 1 (Jan. 2002), 25-46. DOI= http://dx.doi.org/10.1006/ijhc.2001.0514

Teacher Training: mobile phone programming in JAVA

Yesterday evening we organized a teacher training session on JAVA programming for mobile phone. We introduced them to the basics of Java ME and gave a tutorial on using Netbeans with mobility pack for creating applications. One idea for using the phone as an application platform is to increase motivation.

In some of the discussions we came across the issue of “how to teach programming” in school. I personally thing that explaining and learning the basic concepts of statement, variable, if-then, and loop is best done with not much around… I showed some of the activities on the OLPC for programming: Pippy (http://wiki.laptop.org/go/Pippy) and Turtle Art (http://wiki.laptop.org/go/Turtle_Art) and we talked about processing (http://www.processing.org/) as a further option.

Prototypes of unconventional user interfaces

In Linz the students of the course unconventional user interfaces showed their first set of functional prototypes. The topics are related to interactive mirrors, context-aware advertisement posters, healthy rear-seat entertainment, and text input while driving. The assignment was to create a system that allows creating an authentic user experience for the concept. The technical solutions were very different and ranged from a dismantled keyboard to a system using a micro-controller, from a two-way mirror with display behind to direction detection in front of an advert. Even though the prototypes were fairly simple most of them showed impressively how much of an idea a functional prototype can transport.

Great tutorial on eXtreme Programming/Agile Methods

Today Karl-Heinz Sylla and Reinhard Budde (both senior researcher at Fraunhofer IAIS) gave for the summer research project a tutorial on agile methods for software engineering. The experience they have from large scale real world projects is impressive! We looked at different approaches to software construction and discussed the pros and cons. Short iterations, user stories, pair programming and test driven development seem to fit very well to our work approach and project goals. A good starting point for more on the topic in particular with a teaching perspective are the following 2 papers: LeJeune, N. F. 2006. Teaching software engineering practices with Extreme Programming. J. Comput. Small Coll. 21, 3 (Feb. 2006), 107-117 and Schneider, J. and Johnston, L. 2003. eXtreme Programming at universities: an educational perspective. In Proceedings of the 25th international Conference on Software Engineering (Portland, Oregon, May 03 – 10, 2003). International Conference on Software Engineering. IEEE Computer Society, Washington, DC, 594-599.

From a user interface engineering perspective is very positive that agile methods are good to integrate with user centred design – in my experience much better than traditional software construction processes. Especially the fact that XP (eXtreme Programming) is open to change in functionally throughout the process is a key.

In this summer research project one great challenge is that the students have to build up knowledge in various areas (e.g. search technologies, web technology, user interfaces) while creating high quality code. There is a very interesting paper that discusses software engineering issues in the context of web applications: Jazayeri, M. 2007. Some Trends in Web Application Development. In 2007 Future of Software Engineering (May 23 – 25, 2007). International Conference on Software Engineering. IEEE Computer Society, Washington, DC, 199-213.

Always when the discussion comes to programming languages a debate on strong typing starts. Especially in the web context this seems come up again and again…