The first semester will be an intensive study of a number of modern application development technologies:
Java
XML for exchange of structured data in distributed computing; XSLT, XPath, JAXP, Schemas, etc., for validating and processing such data
XMLSpy for an IDE in working with XML technologies
Design patterns in general; J2EE Design Patterns in Java programming
The open-source Eclipse IDE for Java programming
DB2 for labs and implementation of database concepts
Rational for application design and UML modeling
Websphere Studio Application Developer for transactional Web environment programming and J2EE
(If time) Lotus and Tivoli for collaboration and middleware management
Most of these tools are available free through the IBM Developer Skills Program, or come with the Java SDK. It will be recognized that Java, UML, XML, design patterns, and JSP are tools of wide applicability, not limited to IBM.
Part of this preparation will be done in lectures. There will also be lectures on various aspects of project development in any area: ethics, management, and economics. The labs will be used to integrate these subjects with the students’ previous background, and to begin planning and designing projects.
Projects will ideally be real-world applications, with a “client” from whom to get specs, test prototypes with, and eventually accept the finished project for real use. The availability of such projects is not guaranteed, however, in which case realistic applications will be chosen.
The second semester will be devoted to the implementation of the project software. Work will be done in teams of three to five students, who will be expected to work quite independently part of the time.
The use of newer technologies of software development means that some of the work will not involve conventional programming, but for planning purposes, think in terms of 5,000-10,000 lines of Java code as the equivalent program size.
Prior knowledge of Java will permit the capstone to proceed to the newer software technologies sooner and will permit a larger and more realistic project to be chosen. Students enrolled in this section who do not know Java are strongly encouraged to learn as much of it as possible over the summer.
A working knowledge of HTML is assumed. Students who have not used XHTML and style sheets should learn these topics over the summer. Superb tutorials at W3Schools make this inexpensive and painless.