ECS 162: Web Programming

Subject
ECS 162
Title
Web Programming
Status
Active
Units
4.0
Effective Term
2019 Winter Quarter
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Description
Technical aspects of building websites, including both server-side and client-side software development. GE: SE, VL.
Prerequisites
ECS 030 or ECS 034 or ECS 036B; or equivalent programming experience in C and the Unix environment.
Enrollment Restrictions
Pass One open to Computer Science and Computer Science Engineering Majors only.

Summary of Course Content
Students will acquire a working knowledge of website development, including both front-end (client) and back-end (server) software design and implementation. Topics will include:

  1. Front-end Web deveopment
    1. HTML and CSS
    2. Object-oriented Javascript
    3. Buttons and other interactive elements
    4. Asynchronous and event-driving software
    5. Graphics and visualization
    6. Elementary design
  2. Back-end Web development
    1. Server implementation using a framework
    2. Routing HTTP requests and synthesizing dynamic Web pages
    3. Data transfer with AJAX
    4. Callback functions
    5. Cross-domain data services such as JSONp or CORS
  3. Database introduction
    1. Setting up a simple database
    2. Using a database with SQL
  4. Security introduction
    1. HTTPS and encryption
    2. Logins and authentication
    3. Common attacks such as cross-site scripting and database injection
    4. Input sanitization and other defensive practices

Illustrative Reading
Eloquent Javascript, by Marijn Haverbeke (2014) Interactive Data Visualization for the Web, by Scott Murray (2013) The Node Beginner Book, by Manuel Kiessling (2001) Using SQLite, by Jay A. Kreibich (2010)

Potential Course Overlap
Client-side Web site development is taught in Design 157, Interactive Media. That course has several design prerequisites and focuses on effective visual and interaction design. This course has a different programming prerequisite, does not cover design issues except peripherally, and covers server-side as well as client-side software development. There is a plan to collaborate with Design 157 students to gain experience working in designer-programmer teams. Data visualization using the Web will be taught in the new Statistics 141B. This will be one small topic among many in that course.

Final Exam
Yes Final Exam

Justification for No Final Exam
Final exam

Course Category