Volunteers from the NetBeans community have led nearly two dozen NetBeans Platform Certified Training events (i.e., courses on how and why to use the NetBeans APIs for the development of robust Swing applications) for university students in Europe, Asia and Africa. NetBeans Dream Team member Tom Wheeler brought the training further into North America recently by teaching platform development to a group of more than 30 students at Southern Illinois Univerity's Edwardsville campus.
Below Tom tells all about it.
You're not exactly new to the NetBeans Platform, are you? Can you talk a bit about your past with the NetBeans Platform?
I've gained a lot of experience with the NetBeans Platform because I've been developing applications on top of it every day for nearly the past five years. My colleague Bruce Shimel and I gave a talk at JavaOne last year explaining how the NetBeans Platform helps us to create better applications. Outside of work, I am also actively involved in the community. I've served three terms on the project's Governance Board and I'm a member of the NetBeans Dream Team. While I have helped to improve the platform itself over the years, my focus has really been on giving presentations, writing documentation and generally trying to help developers understand how the platform works and how they can use it effectively.
How many students did you have?It's clear that interest in the NetBeans Platform is growing, but since the event was pretty informal I didn't know how many students would give up an entire weekend to learn about it. I figured we might have a dozen students. To my surprise, about 35 students actually took the class! We had even more students than computers in the lab; luckily, many brought their own laptops and so everybody was able to participate.
Where was the training held?
The training was held on the campus of Southern Illinois University in Edwardsville, but many of the students actually came from SIU's other campus in Carbondale. They drove about 200 miles that weekend — many even rented hotel rooms — just so they'd be able to attend. I really appreciate the effort they made because I know that both money and free time are usually in very short supply for college students.
Did you plan the entire event yourself?
Not at all! While I did lead the training sessions, Dr. Andreas Stefik was instrumental in getting the university to sponsor the event. Jarod Luebbert, a Computer Science student at SIUE, did a great job of promoting the training as evidenced by the great turnout we had.
Did the students end up doing any hands-on work during the course? If so, what exactly?
Yes, the training was a mix of lecture and labs with a lot of demonstrations. I organized the course material so that every section presented a specific concept like FileSystems API or Lookup API. I then showed how the code works and explained how it might be used in an typical application.
Every section concluded with some review questions, a recap of the most important points, and a hands-on lab where the students were able to try out what they'd just learned.
What feedback have you gotten from the students?
It's been very positive. I've gotten several e-mails from students telling me that they really enjoyed it and learned a lot. I'd like to share a few quotes with you:Nate Roney:
I learned a lot about the platform (and even some things about Java that I didn't know)!Robert Kennedy:
The event far surpassed my expectations... All in all I must say that you did a better job with the time you had than any other instructor that I've ever had could have done.Andreas Stefik:
I think the major highlight was getting some hands-on training with really simple NetBeans platform examples. The seminar really brought the material down to earth. Instead of saying, "This is philosophically why a FileObject is good," you had people actually make one and talked about the details of what the code does, outside of the context of an application. That was the best part.
Another view of the training area:
What are the trickiest parts of the NetBeans Platform and what's your approach to teaching those?
Because the NetBeans Platform is so modular, there are lots of APIs which build on top of other APIs. Consequently, it's sometimes hard to know exactly where to begin because a thorough explanation of one topic might mention some terms you haven't yet defined.
I try to solve this by giving a very high-level overview of the entire platform early in the course. This lets me illustrate the fundamental concepts without going into great detail and also gives the students an idea of how everything fits together. Later on in the course, we dive into each topic in-depth and I explain how to use these APIs by using lots of simple code examples. The result is that students know not only how to use the APIs, but also why they're useful.
Thanks for your time. Do you have any parting thoughts?
As I mentioned before, Andreas Stefik is an assistant professor in Computer Science at SIUE. Dr. Stefik told me that he finds the NetBeans Platform incredibly powerful and said that many of its innovations, such as services and dependency resolution, are fascinating to him as a professor. And although this power comes with a relatively steep learning curve, it's definitely worth the effort to learn because it lets you build on a proven foundation instead of reinventing everything.
One of his graduate students said that development project like SODBeans (custom compilers and debuggers for blind programmers) would take years longer without such a powerful framework. "I couldn't agree more," said Professor Stefik.
Finally, a final pic, proving that programmers and pizza are best friends the world over: