CIS 308: Development of Multi-Tier Client/Server Systems

CIS Department, Temple University

Syllabus

Spring 2009

 

Instructor        David Lefkovitz

                        Room 315 Wachman Hall

                        215-204-5550

                        lefkovitz@cis.temple.edu

 

Course Description

 

The objective of this course is to teach the principles and development of multi-tiered distributed systems. The system concept of a three layer architecture is introduced: The Presentation layer or user interface, the Application Logic layer, and the Database Service layer.  Multiple tiers of program components can then be distributed over these three layers via the internet or other types of networks.  Within this architecture is a substructure of client and server sites, which are described by the functions of and relationships among the browser, web server, operating and file systems, middleware, database server, and application servers.  Specific programming languages and tools for developing various types of client/server side processing and remote connectivity are reviewed or taught, including Java, Javascript, JSP, Servlets, Java Beans, HTML, XML, RMI and CORBA, and EJB.  About 40% of the course is devoted to the above-described theory and programming techniques.  The remainder of the course will be devoted to putting some of these principles and techniques into practice using the Java/RMI/ technologies.  A series of progressively sophisticated problems will be designed and programmed in the lab.  These will include a term project implemented by teams of 2.

 

Objectives of the course are to (1) understand the principles of web interactivity and networked deployment of components, (2) understand the means of scalability, (3) design, code and debug web deployed components, (4) be introduced to current development tools, and (5) learn about some issues related to operational efficiency and re-usability.

 

Pre-Requisite

 

CIS 223: Data Structures and Algorithms

 

TextBook

Beginning Jsp 2.0: Build Web Applications Using Jsp, Java, And Struts, by Galbraith, et al, WROX Press, 2003, ISBN:1-861000-831-7.

 

Grading

 

There are 11 project assignments.  These comprise 70% of the course grade.  A midterm exam comprises 10% and a final exam the remaining 20%.  Each project assignment is given a letter grade based on a curve.  These are then converted to the GPA numeric equivalent from 0 to 4, weighted by the Project Weight shown in the Project Schedule, summed and divided by 23, which is the total of the Projects Weights, and multiplied by 0.7.  The exam is graded the same way, making up the other 30%, and added to the numeric score of the projects.  The result is a number from 0 to 4, which is converted back to the letter grade for the course.  The formula is:

 

0.7*(Swigi)/26 + 0.1m + 0.2*f

 

where wi is the weight of Project i, gi is the numeric grade of Project i, m is the numeric grade of the MidTerm exam and f is the numeric grade of the Final exam.

 

Each project has a deadline, shown in the Due Date column of the Project Schedule.    Project submission policy is that a project assignment turned in by the Due Date gets the full letter grade.  It can be turned in up to one week late (Late Date) but will be downgraded by 1 letter grade.  It will not be accepted after the Late Date.