CSE 252 Web Application Programming (3 credits)

An introduction to programming concepts and practices for creating applications which use the web as the delivery platform. Students will learn technologies including HTML, JavaScript, AJAX, client side programming and server side scripting to create interactive web applications.  This course is not open to CSE students without permission of instructor.

Prerequisites: 

CSE 153 or CSE 163 or CSE 174

CSE 252 is a third-tier course in the CSE2 "Computer Programming" thematic sequence.

Computer software plays an important role in our daily lives: Our mobile phones, laptop computers, online banking, Internet applications such as YouTube, video games and movies, cars, and almost all aspects of daily life are touched by software. In your personal and professional life you will utilize computer software. It is also likely that you will select, or even influence the design of, software that is used in your professional or personal life. This thematic sequence will give you a deep understanding of how software works and is created, its limitations, and its potential. You will be able to read software and therefore be able to make informed decisions when selecting or participating in the design of business, scientific, or information systems that utilize computer software.

The CSE2 thematic sequence consists of both of the following introductory computer programming courses...

  • CSE 174, Fundamentals of Programming and Problem Solving 
  • CSE 271, Object-Oriented Programming 

Followed by one of the following courses... 

  • CSE 274, Data Abstraction and Data Structures 
  • CSE 252, Web Application Programming 
  • CSE 283, Data Communications and Networks 

CSE 252 is a course in which you extend basic programming skills developed in a first-semester programming course into interactive web applications targeted at small web sites. 

CSE 252 is a third-tier course in the CSE4 "Web and Game Applications" thematic sequence.

Given the prevalence of computing devices, it is important that we understand what computers do and how they do it. The web game applications thematic sequence is designed to provide students with an understanding of how computer software is created and designed and how it functions to make possible popular applications such as computer games and the World Wide Web. Courses in the sequence provide an introduction to fundamental programming concepts.  These concepts are applied to create computer games and web applications. 

The CSE4 thematic sequence consists of one of the following introductory computer programming courses...

  • CSE 153, Introduction to C/C++ Programming 
  • CSE 163, Introduction to Computer Concepts and Programming 
  • CSE 174, Fundamentals of Programming and Problem Solving 

Followed by both of the following courses... 

  • CSE 251, Introduction to Game Programming 
  • CSE 252, Web Application Programming 

CSE 252 is a course in which you extend basic programming skills developed in a first-semester programming course into interactive web applications targeted at small web sites.

Required topics (approximate weeks allocated)

  • Introduction, basic web architecture (servers and browsers), introduction to web standards and protocols (1 week) 
  • Static web pages, markup languages and style sheets (HTML, CSS, etc) (2 weeks)
  • Web-programming language concepts and tools (JavaScript, actionscript, Ajax etc.) (4 weeks)
  • Dynamic web pages (1 week) 
  • Server side programming and web application architectures (2 weeks)
  • Database concepts and connectivity (3 weeks) 
  • Sessions and applications (1 week) 
  • Exams and presentations (1 week) 

Learning Outcomes

1. Discuss and apply network standards and terminology needed to define web-based applications.

1.1. Discuss the source of Internet standards (e.g. Internet Engineering Task Force).

1.2. Define terminology related to the Internet and web sites.

1.3. Apply standards needed to implement web applications such as domain naming, IP addresses.

2. To explain and demonstrate the overall architecture of a web-based application.

2.1. Explain the different roles and responsibilities of clients and servers for a range of possible applications.

2.2. Explain and demonstrate a practical understanding between Web servers and browsers.

2.3. Discuss security issues and strategies in an enterprise-wide web-based application.

2.4. Identify and compare current web technologies (e.g., browsers, web-servers, N-tier architectures, middleware, markup languages, scripting languages, the applet concept, etc.)

3. To design and program client-side applications.

3.1. Identify current technologies and standards for implementing client-side applications.

3.2. Design and write web-sites using current languages (e.g. HTML and CSS).

3.3. Design and write client side programs that handle simple events using current languages like JavaScript and DHTML.

3.4. Design and implement a simple interactive web-based, database-driven web site, (e.g. a simple web form that collects information from the client and stores it in a database on the server).

4. To design and program server-side applications.

4.1. Identify current technologies and standards for implementing server-side applications.

4.2. Explain application interaction patterns.

4.3. Explain and implement applications using sessions.

4.4. Explain alternatives for error handling.

5. To select and use appropriate support tools for web site creation and web management.

5.1. Illustrate how interactive client-server web applications of small size can be built using different web technologies.

5.2. Identify appropriate support tools for web site design and implementation.

5.3. Select from a range of tools that will ensure an efficient approach to implementing various client-server possibilities.

6: To engage other learners by working in a team to design one or more web-applications and to communicate your design and implementation to others.

6.1: In a team environment, given the requirements for a web application, brainstorm a design for a web application and implement it.

6.2: Document the design and communicate it to other members of the team and the class.