CS 635683 Emerging Technologies

Fall Semester, 2005

About the Course

Brief Overview

Topics

  1. Python, Python on Cell Phones, Zope

  1. Ruby, Ruby on Rails

  1. AJAX

  1. Extreme Programming

Books

Python Tutorial, Guideo van Rossum, http://www.python.org/doc/current/tut/

Python for Series 60 1.1.5 Documentation, http://www.forum.nokia.com/main/0,,034-821,00.html (see link on bottom of page)

Programming Ruby, Thomas & Hunt, http://www.rubycentral.com/book/ . The most recent version of the book is not on-line. You can purchase it at most bookstores.

Ruby on Rails documentation, http://documentation.rubyonrails.com /

Web Component Development with Zope 3, Philipp von Weitershausen

Extreme Programming Installed, Jeffries, Anderson, Hendrickson

Some Detail

I am interested in exploring web application technologies, development on mobile devices and ways to develop software quickly. The web is of course very important in business, technology and everyday live. However developing web applications is rather primitive and cumbersome. Any improvement in this area could have a big impact. Mobile devices, cell phones in particular, are a growing market. Cell phones that can support applications are now appearing in consumer's hands, which has interesting implications. Software development is now a global business, with India and China trying to replace USA as the main software developers and a number of other countries trying to replace India as the outsourcing capital. In this environment developers are under great pressure to develop software fast. There are development processes, tools and languages that support this developers.

With this background here is a list of things that I am considering for CS683 in the fall.

Ruby on Rails. This is a new framework for developing web applications and has a lot of promise. The developers paid attention to the difficulties with other web application frameworks. Developers are reporting that they can develop web applications in much less time using Ruby on Rails. While one can do a fair amount with Ruby on Rails without knowing Ruby, eventually one needs to use Ruby. I will not assume that students know Ruby, so will cover Ruby in the course. I will assume that students can learn the language quickly.

AJAX (Asynchronous Javascript + XML). Go play with Google maps at http://maps.google.com /. Try moving the map with your mouse. This is done with AJAX. Compare this with most other on-line maps pages. Try using Gmail, which also uses AJAX. Once you play with these web application you will see that they are an order of magnitude better than non-AJAX pages. AJAX makes many things possible on the web.

Python on Cell Phones. Most applications on cell phones are written in C or C++. Developing applications in C++ is very painful and slow. Some cell phones support J2ME which is less painful, but can be rather limited. Nokia now supports Python on their smart phones. Python development can be much faster than Java development. We will look at developing applications on cell phones using this system. Again I will not assume that students know and will cover it in class, however I do assume students in CS683 can learn Python quickly.

Zope. Zope is a web application server/framework written in Python. Once we have covered Python it would be easy to look at Zope and compare it with Ruby on Rails. If we have time we will look at Zope.

XP (Extreme Programming). There are a number of agile development methods (XP, Scrum, Crystal, DSDM, Feature Driven Development, Adaptive Software Development) that report to allow development teams to produce software faster and respond quickly to changes. In the world of global competition knowing about these development processes is important.

The leading edge of technology is often called the bleeding edge. There has not been time to polish the technology. There are rough edges (bugs, poor or no documentation, incomplete implementations, rapidly changing api, missing features, poor tool support) that make it harder to deal with the technology. This means that the course is a bit more work than normal. Since this will be the first time that I cover these areas and there are no textbooks covering these things the course will also be rougher than normal. This is the trade off one makes dealing with new technology. As a result the course will require a fair amount of work and initiative of the students.

The leading edge is also not necessarily mainstream. Indeed once a technology is in the mainstream it is no longer emerging or leading edge. This means that you will not find these technologies in widespread use. The job market for these technologies tends to be growing with a limited supply of people familiar with them.

Copyright ©, All rights reserved. 2005 SDSU & Roger Whitney, 5500 Campanile Drive, San Diego, CA 92182-7700 USA. OpenContent ( http://www.opencontent.org/opl.shtml ) license defines the copyright on this document.