I am a lecturer in a small/medium sized university and I teach a final
year undergraduate level course called web-based applications. The
focus, as the name implies, is on the development of applications that
utilize the web. I am currently looking at the GWT tool and other
Google tools to use for the assignments/projects associated with this
course. I was just wondering if the various licenses associated with
these tools allow this? Also, does anyone have any
recommendations/advice on using this tool in this manner?
I am starting to look at using the google web tookling and google
services (such as the data api, calendar api, search api, maps api,
talk api,) to create powerfull applications that have very low overhead
on the application server.
The idea here is, use GWT to move most of the presentation logic from
the server to the client. Use the google services to move some of the
database and other complex logic off the application server and onto
the powerfull google system. The result is application developers need
to invest in only light weight applciation servers that perform very
quickly, contain many powerfull features leveraging existing services,
and look and feel very good. In some cases app developers do not even
need to invest in a app server at all.
Just a few crazy ideas :)
Definitely the licenses allow you to do this. And on behalf of the
team, I think GWT could be a great teaching tool and would encourage
you to use it for this. (Of course, I'm quite biased!)
Scott
1.) Ensure you give them a nice semi complete project to work on. Most
people have their Java projects set up in a fairly predictable way
(lib, src, bin directories etc). The initial layout of the samples is a
bit confusing for beginner Java developers and doesn't have a nice
understandable build script - only a few "*.cmd" files (Some would
argue that these make it even easier - as long as you don't have to
integrate GWT into an existing application). If you want to give your
students something similar to other Java projects they've worked on,
ensure the demo project is more like a real Java project with an Ant
build file. The risk here is that to not do this will mean they'll
never be able to take that step from understanding GWT in a GWT project
and using GWT in a real Java project which uses GWT as a small
component.
2.) Think about whether you're course is going to concentrate on the
presentation layer or you want to give students a look at a best
practice web application with a business tier and persistence tier as
well. If you intend to do the latter, I would make sure that your base
project (the one given to students before their value addition) nicely
integrates all three tiers with something like Spring before the
students have to lay a hand on it. Lessons one the seperation of these
concerns will probably prove useful to students in years to come. If
you could get your students understanding Database Object Access
pattern too - well, heck, you've just given them more knowledge then
half the developers I know. Most courses I worked on tried to only show
one aspect of a complete application. Whilst this was admirable, it
meant that we never were exposed to complete ideas. Being able to
understand the presentation module in the context of the larger
application is as much a need as understanding the presentation model
itself.
Thanks for the information (also, thanks to everyone else who replied
to this post, all of the ideas are interesting and useful). The
web-application course deals with the client side, server side and
database management side of a web-app (as well as basic security). To
make the projects more meaningful, I have built a sort of mini
Java-based server where students create the client side (using Java and
Java Swing) to hook up to the server and process the information that
it sends (as well as store/manage the information within a database).
The server provides an online bidding system where clients can compete
for virtual contracts. At some point, the students come together in the
lab to see which system can gain the most contracts.
Maintaining and updating such a system is becoming unmanageable and so
I am looking for tools to replace the system. So far, in my opinion,
Google's various tools and APIs seem to provide what I need to replace
the system and give the students the chance to experience some
real-world tools/APIs.