New Building Website

CSA 383 Client/Server Programming (3 credits)

 

Typically offered both semesters.

Catalog description:

An introduction to the software, concepts and methodologies necessary to design and implement enterprise-wide client server systems. The costs and benefits of client server applications will be examined. Different client server architectures will be presented with emphasis on the way in which Web technology and the Internet can be used to implement client -server systems. Students will design and construct client-server systems utilizing remote servers on multiple platforms and several different client platforms. Testing of GUI and performance tuning will be presented. Projects will be used to enable the students to apply the principles and techniques presented in class.

 

Prerequisites: CSA274 and CSA 283

Objectives:

  • To investigate distributed development techniques and network application architectures.
  • To give the student the ability to design and implement robust clients and servers.
  • To give the student an in-depth understanding of the requirements involved in handling heterogeneous environments.
  • Teach fundamental concepts of accessing network databases.
  • To give students an understanding of thick clients, thin clients, simple GUIs, and applets.
  • Expose students to fundamental concepts of web-server programming, web-services, and web-service frameworks.
  • Prepare the student to utilize testing techniques for insuring security and robustness

 

Required topics (approximate weeks allocated):

  • Introduction/Overview (.5)
  • Architectures (.5)
    • N-Tier Architectures
    • Thick/Thin Clients
    • Delivery Systems
    • Jws, Browsers, Software Distribution issues
    • Application/DBMS Servers
    • Server Environments
  • Thick Client Programming (5.5)
    • Server Programming
    • Threaded Servers
    • Protocols
    • Error Handling/Recovery
    • Testing Techniques
  • Writing Thick Clients (1.0)
    • Basic GUI's
    • Distribution Techniques
    • Connecting To Databases
    • Xml Processing
    • Management Techniques
    • Managing Projects, Releases
  • Thin Client Programming (4.5)
    • Web Server as Application Server
    • Html
    • Modules/CGI
    • Dynamic Code
      • Forms
      • Sessions
      • Database Access
      • Security
        • authentication
        • Safely Handling Sessions
        • Safely Handling Data Provided by Users
      • Stateless Programming
    • Using Databases
    • N-Tier Programs
    • Browser Side Technologies
    • Javascript
  • Web Services (3)
  • Exams/Presentations (1)