Web Application Programming

Course number: 
CIS 2308
Semester: 
Spring 2016
Instructors:
Name E-mail Office location
Sally Kyvernitis sally.kyvernitis@temple.edu
Science Education and Research Center (SERC), Room 330
Prerequisites: 

CIS 2107 Systems and Low Level Programming  and
CIS 2168 Data Structures

Textbooks: 

This course uses online tutorials and reference materials. There is no textbook.

Topics covered: 

This course introduces techniques used in the design and implementation of web applications. Using development tools such as Netbeans, students write code for the browser (HTML, Cascading Style Sheets, javascript, jQuery, ajax) and code for the server. Students learn about internet protocols, such as http, and how to access web application objects that expose data from these protocols (e.g., request, response). Students write server code that incorporates SQL commands for database operations (insert, update, delete, select). Web application security is considered throughout the semestser; our web applications are impervious to hacks such as javascript and SQL injection attacks. Students write log on code and pages that are protected from unauthorized use. After learning about XML and JSON (two common formats for data transfer over the internet), students learn about ajax, a technique that performs a "partial page refresh" using javascript to make an asynchronous call to a web service (web API). Students learn how design patterns such as MVC (Model-View-Controller) are applied to the multi-tiered, distributed software that make up today’s web applications. Each student will create their own web application, expanding on its functionality each week in the lab.

Course goals: 
  • Students learn how to design and populate a database (primary keys, foreign keys, domain constraints) using a database management system such as MySql and a GUI front-end such as MySqlWorkbench.
  • Students learn how to create well designed HTML web pages that use CSS for styling and javascript for behavior.
  • Students learn about new trends on the client side, including jquery, ajax, and responsive design (layouts that change depending on the width of the browser).
  • Students learn how to create web applications that maximize code reuse. For example, JSP pages reference external style sheets, external javascript pages, and reusable java classes. Java classes manage functionality such as database connections, data validation, and database operations (insert, update, delete, join data from multiple tables).
  • Students learn how to write secure web applications: utilizing web server session object to store user credentials, pages that redirect unauthorized users to an error page, preventing SQL and javascript injection attacks, and more.
Attendance policy: 

A quiz is given each week in lab. There are no makeup quizzes (for any reason), but students can drop the lowest two quizzes. Attendance in letures is not required, but, in order to do well on the weekly quizzes, students need to (1) study recent lecture material and (2) review concepts learned in recent labs.

Accomodations for Students with Disabilities: 
Any student who has a need for accommodation based on the impact of a documented disability, including special accommodations for access to technology resources and electronic instructional materials required for the course, should contact me privately to discuss the specific situation by the end of the second week of classes or as soon as practical. If you have not done so already, please contact Disability Resources and Services (DRS) at 215-204-1280 in 100 Ritter Annex to learn more about the resources available to you. I will work with DRS to coordinate reasonable accommodations for all students with documented disabilities. (Disability Resources and Services).
Student and Faculty Academic Rights and Responsibilities: 
Freedom to teach and freedom to learn are inseparable facets of academic freedom. The University has a policy on Student and Faculty and Academic Rights and Responsibilities (Policy #03.70.02) which can be accessed through the following http://policies.temple.edu/PDF/99.pdf.