Java Enterprise Web Programming Course Outline from Buet

Course Name: Java Enterprise Web Programming: An Introduction to Java Programming and Web Development using Framework

Introduction
Java is a portable programming language which can be used any types of operating system. In addition to the PCs, workstations and servers there are now billions of Java enabled devices worldwide. This is why skilled Java Programmers are now in demand. Web based application is also an example of portable application development. That is why Java is considered an aristocratic way of Web programming.The Database Management and Administration (DMA) using Oracle Database 11g course offered from Information Access Center (IAC) is an essential database course for all database professionals who want to have a strong foundation and expertise in the industry's most advanced database management system, Oracle 11g.

Objectives
To enrich the learners with the knowledge of Object Oriented Programming, which is different from structured programming
To provide a comprehensive knowledge of Java Programming Language.
To introduce the idea of web programming
To introduce the idea of Model View Controller Design pattern in Web based software development
To make the students familiar with frameworks, which gives the opportunity to reuse the codes for quick development
To provide the knowledge of the secured web development technique

Outcome of the Learning
The students will learn software development using java and they will get the preliminary lesson for programming java enabled devices
The students will able to develop web based applications and deploy it to the web server for commercial use
The students will be able to write application for dynamic web sites which uses database storages
Students will be able to work in the following areas where the java programmers could play the significant roles as programmers:
In the outsourcing firms which develops software for different devices
The service organizations which provides services through web applications
The financial organizations requires secured web based development and they requires lots of java programmer for enable their services to the users through the Internet and SMS
In the scientific community java is very much popular for doing simulation and visual representation. So the researchers must require the knowledge of java programming

Class Schedule
The course length will be 8 weeks with two classes in each week and 3 hours in each class. The lecture plan of the course is as follows:

Week 1
Creating Java Applications
Using Classes and Objects
Control Statements
Methods

Week 2
Arrays
Classes and Objects
Inheritance
Polymorphism

Week 3
Exception Handling
Introduction to Java Web Development
MVC Architecture

Week 4
Web Development Basics: HTML, CSS, CGI scripts, and Java Technologies

Week 5
Servlets
Java Server Pages

Week 6
Servlets and Java Server Pages
Database and JDBC

Week 7
Java Standard Tag Library (JSTL)
Java Server Faces

Week 8
Ajax Enabled Java Server Faces

Detailed Course Content
Creating Java Applications
Introduction to Java Applications, Displaying Text with printf, Variables and Introducing Arithmetic Operators, Equality and Relational Operators.

Using Classes and Objects
Classes, Objects, Methods and Instance Variables, Declaring Class and Methods, Instantiating an Object of a Class, Declaring a Method with a Parameter, Instance Variables, set Methods and get Methods, Primitive Types vs. Reference Types, Initializing Objects with Constructors, Floating-Point Numbers and Type double, Creating Packages

Control Statements
if Single-Selection Statement, if - else Double-Selection Statement, while Repetition Statement, Counter-Controlled Repetition, Sentinel-Controlled Repetition, Nested Control Statements, Compound Assignment Operators, Increment and Decrement Operators, Primitive Types, Essentials of Counter-Controlled Repetition, for Repetition Statement, do - while Repetition Statement, switch Multiple-Selection Statement, break and continue Statements, Logical Operators.

Methods
Static Methods, static Fields, Notes on Declaring and Using Methods, Argument Promotion and Casting, Java API Packages, Generalized Scaling and Shifting of Random Numbers, Scope of Declarations, Method Overloading.

Arrays
Declaring and Creating Arrays, Examples Using Arrays, Enhanced for Statement, Passing Arrays to Methods, Multidimensional Arrays

Classes and Objects
Controlling Access to Members, Referring to the Current Object's Members with the this Reference, Overloaded Constructors, Default and No-Argument Constructors, Composition, Enumerations, Garbage Collection and Method finalize, final Instance Variables

Inheritance
Superclasses and Subclasses, protected Members, Relationship between Superclasses and Subclasses, Creating an Inheritance Hierarchy, Using protected Instance Variables, Using private Instance Variables, Constructors in Subclasses, Software Engineering with Inheritance

Polymorphism
Polymorphism Examples, Demonstrating Polymorphic Behavior, Abstract Classes and Methods, Polymorphic Processing, Operator instance of and Downcasting, Allowed Assignments Between Superclass and Subclass Variables, final Methods and Classes, Creating and Using Interfaces, Declaring Constants with Interfaces, Common Interfaces of the Java API

Exception Handling
Exception-Handling Overview, When to Use Exception Handling, Java Exception Hierarchy, finally Block, Stack Unwinding, printStackTrace , getStackTrace and getMessage, Chained Exceptions, Declaring New Exception Types, Assertions

Multi-threading
Basics of multi-threading, creating threads with Thread and Runnable, Synchronized blocks and synchronized methods, Thread join, sleep, yield, Timer class

MVC Architecture
What is MVC? Models, Views, Controllers, Routes

The Presentation Tier

Java Server Pages:
JavaServer Pages Overview, A First JavaServer Page Example, Implicit Objects, Scripting, Scripting Components, Scripting Example, Standard Actions, Action, Action, Action, Action, Directives, page Directive, include Directive, Custom Tag Libraries (Java beans and others), Creating a Custom Tag, Tag Attributes, Evaluating the Body of a Custom Tag

The Logic/Application Tier

Servlets:
Servlet Overview and Architecture, Interface Servlet and the Servlet Life Cycle, HttpServlet Class, HttpServletRequest Interface, HttpServletResponse Interface, Handling HTTP get Requests, Setting Up the Apache Tomcat Server, Deploying a Web Application, Handling HTTP get Requests Containing Data, Handling HTTP post Requests, Redirecting Requests to Other Resources, Session Tracking, Cookies, Session Tracking with HttpSession, Multi-tier Applications: Using JDBC from a Servlet, HttpUtils Class

The persistence Tier (Model)

Database and JDBC
Structured Query Language (SQL), Basic SELECT Query, WHERE Clause, ORDER BY Clause, Merging Data from Multiple Tables: Joining, INSERT INTO Statement, UPDATE Statement, DELETE FROM Statement, Creating Database books in Cloudscape, Manipulating Databases with JDBC, Connecting to and Querying a JDBC Data Source, PreparedStatements, Transaction Processing, Stored Procedures, Batch Processing, Processing Multiple ResultSets or Update Counts, Updatable ResultSets, JDBC, DataSource, Connection Pooling, RowSets

Java Beans
Overview, Using Java Beans to create model objects and access database

Java Server Faces
Java Web Technologies, Servlets, JavaServer Pages, JavaServer Faces, Web Technologies in Netbeans, Creating and Running a Web Application in Netbean, Examining a JSP File, Examining a Page Bean File, Event-Processing Life Cycle, Relationship Between the JSP and Page Bean Files, Examining the XHTML Generated by a Java Web Application, Building a Web Application in Netbeans

Ajax Enabled Java Server Faces
Accessing Databases in Web Applications, Building a Web Application That Displays Data from a Database, Modifying the Page Bean File for the AddressBook Application, Ajax-Enabled JSF Components, AutoComplete Text Field and Virtual Forms, Configuring Virtual Forms, JSP File with Virtual Forms and an AutoComplete Text Field, Providing Suggestions for a AutoCompleteText Field, Google Maps Map Viewer Component

Learning and Evaluation Method
The class room will be equipped with multimedia projector
The electronic document of class notes will be supplied
Two faculty members of CSE, BUET will be teaching during the demonstration in each class
Each student will get a PC to do proper practice and the class size will be not more than 30 students
There will be on line (during the classes) exams, offline (home work) assignments, and project works to solve practical problems
There will be quizzes in every week to evaluate the class performances of the last two classes.
A final exam will be held at the end of the course.

Further Query
Email: iac@cse.buet.ac.bd
Phone: 880-2-8618344-49 Ext-6438, mobile : 01552-015596