CSE 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: 

CSE274 and CSE 283

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)

Learning Outcomes:

1. To be able to describe and use technologies to implement Web Applications

1.1. Describe the nature of the Web Applications, Frameworks and their various architectures including the role of the client (javascript programs) and backend servers.

1.2. Describe and utilize web protocols of HTML, HTTP/SPDY (2.0), CSS, JSON, XML.

1.3. Create modern web applications using responsive design technologies that include well designed html, css, javascript and ajaxcalls.

1.4. Describe and use javascript programming to create web applications.

1.5. Create interactive web applications using forms and other user input methods to gather and present data in interactive settings.

2. To be able to implement web applications utilizing contemporary technologies and tools

2.1. Implement web applications using AJAX and related back end server support.

2.2. Develop responsive design-driven programs.

2.3. Describe concepts related to using databases, both relational and non-relational.

2.4. Use concepts of MVC and templating in the creation of web applications.

3. To be able to describe and create programs that utilize proper error and security procedures as related to web applications

3.1. Describe and implement common error handling conditions as they relate to networked programming.

3.2. Describe security handling conditions that must be tested and handled by programs.

3.3. Describe security concerns relating to communication protocols such as HTTPS including strengths and weaknesses. Students will be able to implement and test situations using https.

3.4. Implement programs that properly catch, handle and recover from errors.