To introduce a student to an entirely a new way to build distributed, desktop and mobile applications. To provide a student with the solid foundation of the syntax and semantics of java Programming as well as application architecture, data access technology geared to facilitate the development of distributed systems. To familiarize the student with the development of N-tier web-based applications