Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
Check out the new SourceForge HTML5 internet speed test! No Flash necessary and runs on all devices. ×

Java for Web Developers Courseware? 35

brentlaminack asks: "I've been asked by a local college continuing education department to put together a series of professional development courses on web programming in Java. Clearly, there are lots of books out there on Java, but what would you recommend for a professional development course? The material should have good examples, meaningful exercises, (an underrated and very difficult part of putting together courses) and not be 2000 pages or $500 per copy. The material should also cover some Object Oriented architecture and design patterns. As to which web framework... I'm open to suggestions on that as well. After all the smoke clears, I'll try to summarize the responses on my journal."
This discussion has been archived. No new comments can be posted.

Java for Web Developers Courseware?

Comments Filter:
  • Book recommendation (Score:2, Interesting)

    by desNotes ( 900643 )
    I recommend Fundamentals of OOP and Data Structures in Java published by Cambridge Unviersity Press. It is used in an introductory course on classial data structures used in Java. This book was (and may still be) used in OOP introductory classes utilizing Java instead of the historical use of Pascal.

    I found it to be a good learning tool. While I have met one of the authors, I am in no way affliated with him or the book. This is just my pesonal opinion.
  • you'll be teaching more about XML than java itself. do your self a favor and convince your superiors to NOT do this in java. in fact, as much as I cringe at the point i'm going to make, do it in .NET. It'd be nice to teach it in something like Django, or Rails, but lets be honest here, no one would go for it. They might go for .NET.
    • you'll be teaching more about XML than java itself.

      Ummmm. No.

      The only XML file you'll be touching for vanilla web development in Java is web.xml, which is the webapp deployment descriptor. And for the most part, this file is very simple to create and manage, even by hand. And any modern IDE has wizards that take care of this for you.

      Now EJB development, otoh, can evolve into XML hell. But metalanguages like xdoclet make this less painful.

      Kindly take your FUD elsewhere...

  • The "correct" method is:

    1. Teach them how to program and read documentation.

    2. Make them catch up on the relevant RFCs.

    3. Give them the servlet JavaDocs.

    This idea of specialized training in programming had got to go. If they know how to program and read standards, that's all they need to know in order to grasp the entire concept.
    • Re:*sigh* (Score:5, Informative)

      by aprilsound ( 412645 ) on Friday May 19, 2006 @11:04PM (#15370611) Homepage
      This idea of specialized training in programming had got to go. If they know how to program and read standards, that's all they need to know in order to grasp the entire concept.

      I wouldn't say that this is necessarily the way for a "continuing education" course to be taught. Fundamentals can take a year or two to teach. The submitter didn't give a whole lot of context, but I'm guessing this is perhaps a course at a community college (low cost, outsider putting materials together, etc.)

      Since it must be in Java appropriate topics might include:

      • EJB3/ORM
      • The MVC Pattern
      • Component based frameworks (e.g. JSF)
      • AOP, IoC (i.e. Spring or Seam or some such), although its not just a web programming topic, you can't avoid it.

      While we're on the subject of JSF, I should plug Facelets [java.net], which vastly simplifies the view side of things.

      Your biggest concern will be having enough time for the students to get their head around whatever framework you do choose. Using Java for a small application is like sandblasting a soup cracker (to quote the bard [dilbert.com]). You could really spend a whole course on one part of the MVC.

      • Ah, just checked the homepage, local college = Georgia Tech. Not exactly a community college. Still, continuing education is more focused on the trade, not the fundamentals I would think. I'd still recommend JSF [apache.org] w/ Facelets [java.net].

    • 1. Teach them how to program and read documentation.
      2. Make them catch up on the relevant RFCs.
      3. Give them the servlet JavaDocs.

      Java - like most OO environments - is much more than a programming language, besides learning best programming practices, you need to learn the 'libraries'. On top of that, lots of (open source) frameworks exist, in particular when it comes to writing web-apps. And to complicate even further, some of these frameworks can interact but overlap with their capabilities...

      It's

  • The Head First series from O'Reilly make for good textbooks, if only for the "workbook" exercises and discussion questions.

    Also, any Java professional development course should include preparation for the Java Sun Certified Programmer exam. I recommend the McGraw Hill/Osbourne Guide [amazon.com] - helped me score a 98%.
  • Two things: (Score:3, Insightful)

    by SanityInAnarchy ( 655584 ) <ninja@slaphack.com> on Saturday May 20, 2006 @12:50AM (#15370845) Journal
    1.) Does it really have to be Java? I know that's what they asked for, but always be aware of the alternatives. If you think Java sucks for web development, tell them so up front, it'll save you embarassment when some kid says "I had a few minutes of free time at the end of the assignment, so I redid it in Rails."

    2.) Whatever you end up doing -- and I know some professors that don't use a book at all, by the way -- make sure at least one of the development environments you use is entirely free (as in beer). Open source is better, but at the very least, they should be free. The last thing you want to do to them is add software licensing to the long list of expenses they'll face coming out of college. Big, expensive tools are fine, so long as they can at least cope with free products, even if the free ones are inferior.
    • You should be able to do the entire course in open source tools. Apache Tomcat for the web server, Eclipse for the dev environment, SubClipse to get everyone on the source control bandwagon. The only thing missing is Open Source Java.

      Having said that, I wonder what the target audience is for this class. EJB strikes me as massive overkill for all but a tiny handful of projects. 90% of the time (at least), I would guess that all the conceptual complexities it brings don't really provide any long-term bene
      • Having said that, I wonder what the target audience is for this class. EJB strikes me as massive overkill for all but a tiny handful of projects.

        Web programming in Java does not necessarily mean EJB. You can use POJOs (plain old Java objects), Hibernate, Spring, or other simpler solutions. Also note that EJB3.0 is significantly simpler to use than EJB2.0. And your comment about JSPs - JSPs are about as simple as it it gets. And if it was a general web programming class, I wouldn't foist a framework o

      • You have to keep in perspective why there was the big push for EJB's when the spec was first released: Big name vendors charging Big Bucks for their "J2EE Certified" Application Servers. For most projects, EJB's are tremendous overkill. Entity beans, while scalable, are difficult to maintain. I've never had a project where I recommended Entity beans. If they need good horizontal scalability, I'll recommend Session Beans acting as a facade to Hibernate ORM objects.

        What you gain from EJB's is scalabilit

      • I'm still convinced that Rails is highly suited for the stuff they're doing right now, whereas the EJB tech they're using seems highly suited for deploying to the enormous server farms that they hope to need in the future.

        Java offers a lot between these two scales of development. Anyone thinking of starting a project in Rails should seriously consider matters of performance, internationalisation and the ability to scale up their project later. What looks like a small Rails project now could easily grow, a
  • The way I learned (Score:3, Interesting)

    by Parham ( 892904 ) on Saturday May 20, 2006 @02:48AM (#15371114)
    Assuming that the students already have a somewhat firm knowledge of Java, then all they need to be taught is how to set up a Tomcat server [apache.org] and how a tomcat server works (paths and such). Then simply refer them to the HttpServlet [sun.com] class. I think learning how the server runs and how it handles files is a lot more difficult than writing the actual code.
  • This might seem a highly unusual source to make the most of the first hour on a Java course, but I've seen this appendix [yale.edu] to a book that is actually on Operating System Concepts [yale.edu] provide a better introduction (e.g. for several students on a university "101" course) to anyone who has ever programmed anything than tons of "heavy" and expensive books. They'll have to read them, too, but afterwards (i.e. having been fed this little link to a free PDF gem in a footnote to the course description already)...
  • SafariU (Score:3, Informative)

    by Edward Teach ( 11577 ) on Saturday May 20, 2006 @03:59AM (#15371285)
    Look at SafariU [safariu.com]. You can create custom books from O'Reilly and several other publishers.
  • by Sven Tuerpe ( 265795 ) <sven.gaos@org> on Saturday May 20, 2006 @04:52AM (#15371391) Homepage

    Security is a must for Web developers. There is a set of typical mistakes that are frequently made in Web applications, and most of them are not fixed automagically by using Java. Fortunately plenty of resources are available on the Net:

    Make sure your developers read and understand this.

  • You might like to consider Stripes [mc4j.org] as the web framework for the course. One individual recently switched to using it to teach a masters level course in Java web development (at a university in Nice, France).

    On the plus side it:
    - Has comprehensive and easy to follow documentation
    - Is much simpler to grasp for new developers than Struts, JSF etc.
    - Is more OO than most MVC web frameworks, without forcing a component model on you
    - Doesn't require gobs
    • You might like to consider Stripes as the web framework for the course.

      What is the point of teaching a framework that isn't widely used and is non-standard, no matter what the quality?

      JSF (a JSR standard) has all the momentum behind it. There are tools for very fast development like Studio Creator. There are powerful components from many vendors, and exciting projects based on it like facelets.

      What developers personally use is one thing. What they teach is another, and they have a responsibility to teach
  • Suggestion (Score:3, Interesting)

    by metamatic ( 202216 ) on Saturday May 20, 2006 @09:40AM (#15372034) Homepage Journal
    Personally, I thought Java for the Web with Servlets, JSP, and EJB by Budi Kurniawan, New Riders publishing, was really good.

    It goes through J2EE systematically, is clear, and has good examples.

    I wouldn't introduce frameworks of any kind until you've done the basics of J2EE. Otherwise, you're introducing people to a solution before they know what the problem is.

    Also, most frameworks seem to me to be not worth (a) the pain of learning them and (b) the added dependency risks. They do things which simply aren't that hard to do.

    Struts is my favorite example. Visit the web site and they throw a ton of complex crap at you, without ever answering the simple question "What compelling problems does this solve?"
    • If he is teaching a modern class and wants to keep with the times, I'd introduce a framework at some point. I'd actually suggest 2 frameworks: 1) struts; 2) java server faces. Why because struts is moving towards interoperability with faces or moving to faces, not sure what the project is doing, but once they learn struts, many of the other frameworks use similar concepts. Like the MVC ( model view controller ).
      • A breathtaking piece of Argumentum Ad Novitatem, congratulations.

        Two years ago people trying to be trendy and teach frameworks would have been teaching Struts. Then Struts 1.0 was put in maintenance mode, and Struts Ti (2.0) was to be merged with Open Symphony. Then Struts 2.0 was forgotten in favor of Shale [apache.org] and JSF.

        That's the trouble with trying to be "modern" and "keep with the times"--by the time you've finished teaching the class, the stuff you were teaching is probably abandoned, deprecated or obsolete
        • Yeah, but the MVC has not changed, and the frameworks are really not that different. The concepts leared in one framwork are then transaferrable skills that can be used to easily learn a second framework. JSP tag libs are a framework. Is that dead? No it now live on in Struts, Shale, Velocity, and JSP. They are all building on each other. So learning one or more frameworks that are current at the time of teaching will be applyable at the time the course is done. Also rememenber that the class should
          • Yes, people should absolutely learn MVC and taglibs. But MVC and taglibs are part of standard J2EE, they're not added on by frameworks--so there's still no need to go near any trendy framework-of-the-month.

            And it's more like saying "Don't teach ASP.NET 1.0, because it's about to be completely replaced by ASP.NET 2.0." Except, at least ASP.NET is part of the standard, whereas Struts isn't. So it's more like saying "Don't teach WinForms using Mono"...
            • Frameworks generally tend to push you into using the MVC, where as just coding for J2EE does not. Frameworks are a good way to understand MVC. BTW: dot-net is a framework as it is referred to as the dot-net framework. History is obsolete by the time it is published and taught, does that mean we should not teach history either?
  • by kanly ( 216101 ) on Saturday May 20, 2006 @11:34AM (#15372400) Homepage

    Having just been through this with a friend of mine, who has decades of OO experience in desktop programming, beware of prerequisites that you don't realize they need:

    • Sockets, Ports, Packets. Until you get across the idea that all internet applications communicate through bytestreams, and standard protocols, not much will make sense. Most programmers either haven't used RPC at all, or have used something like COM to do it, not TCP/IP.
    • Multithreading. The idea is still alien to a lot of folks, even people well-versed in Java. They just know that they have to be careful when they call Swing, but not why. Writing web apps, you must have at least an inkling of what thread safety is, and when to synchronize. A brief comment about deadlocks wouldn't be amiss.
    • Permissions. Some people have mentioned security - that only covers the basic part. Teach your students to always consider "What is this {class|person|request|application} allowed to do?" There are lots of things that you can do in a desktop application, including Java, that won't fly under tomcat running in Security Mode. "I just asked for the user's home directory, how come my app won't run anymore?"

    If you get any one of these wrong, your web app is doomed to failure. These are tough concepts for some, but they aren't optional.

  • Marty Hall's materials and courses are fantastic. Check out http://www.apl.jhu.edu/~hall/ [jhu.edu]
  • Check out this Flash demo for Java Studio Creator 2.1 [sun.com].

If you fail to plan, plan to fail.

Working...