CSE 134B: Web Client Languages

Fall 2018 | University of California, San Diego CSE Department

Course Statement

Web programming is by far one of the most difficult forms of programming facing today's computing professionals. While there are many Web developers, few are truly skilled in the field. A primary reason for this lack of true expertise is the sheer number of technologies required to masterfully build a modern Web application and the perception of continuous change. Couple this challenge with a common lack of formal study of the delivery, security environment and other core aspects of the medium and we arrive at the inconsistent state of knowledge and development practices. To more appropriately address the study of web application development we divide and conquer by focusing on client-side and server-side individually, but acknowledge that both are required in any modern site or application. In this class we present a complete overview of client-side web technologies in light of the role in a complete Web system meaning we must present examples in context with working network or server-side components. To this end we start first with base ideas and environmental context, because without such grounding we are often set on the wrong course. We shift next to study presentation technologies such as HTML, CSS and images in support of static web sites. We continue our exploration by discussing client-side interactivity using JavaScript with a focus on rise of single page applications and their related frameworks. Usability, appropriate user-interface design, network awareness, and security will be a significant emphasis through-out the class and will be an important factor in homework and project grading.

Tentative Schedule

Week 0

  • Sept 28: Introduction

Week 1

  • Oct 1: Medium and Themes
  • Oct 3: Browsers
  • Oct 5: HTTP Part 1
  • Oct 7: Homework #1 Due

Week 2

  • Oct 8: HTML, Sites and Process
  • Oct 10: HTML
  • Oct 12: HTML
  • Oct 14: Homework #2 Due

Week 3

  • Oct 15: CSS
  • Oct 17: CSS
  • Oct 19: Midterm

Week 4

  • Oct 22: Images and Embeds
  • Oct 24: Forms
  • Oct 26: HTTP Part 2
  • Oct 27: Homework #3 Due

Week 5

  • Oct 29: JavaScript Part 1
  • Oct 31: JavaScript Part 2
  • Nov 2: JavaScript Part 3

Week 6

  • Nov 5: DOM & Events Part 1
  • Nov 6: Election Day
  • Nov 7: DOM & Events Part 2
  • Nov 8 DOM & Events Part 3
  • Nov 11: Homework #4 Due

Week 7

  • Nov 12: Veterans Day Holiday
  • Nov 14: Review + UCD & IA Basics
  • Nov 16: Midterm

Week 8

  • Nov 19: Ajax Part 1
  • Nov 21: Ajax Part 2
  • Nov 22: Thanksgiving
  • Nov 23: No Class

Week 9

  • Nov 26: SPA Apps Part 1
  • Nov 28: SPA Apps Part 2
  • Nov 30: SPA Apps Part 3
  • Nov 30: Homework #5 Due

Week 10

  • Dec 3: Web Components
  • Dec 5: Emerging Web Tech / Free Topic
  • Dec 7: Conclusions
  • Dec 7: Homework #6 Due
  • Dec 10: Final Exam (8-11AM)

Grading

  • Homework - 45%
  • Midterms - 30%
  • Final - 25%

Homework

The emphasis this quarter will more syntax oriented for a firm mastery of core principles. The final two assignments will allow us to make a basic CRUD (Create Read Update and Delete) application. You will be using the Google Cloud Firebase service to execute the project. You will be allowed to use Vanilla JS, jQuery and VueJS only to build the application. Details of the topic matter for the project will be revealed later to avoid overly focusing on the topic domain.

  • Homework 1 : HTTP and Medium Exploration (5%)
  • Homework 2 : HTML Syntax Exercise (5%)
  • Homework 3 : HTML & CSS Syntax Exercise (5%)
  • Homework 4 : JavaScript Syntax Exercise (5%)
  • Homework 5 : Project: Part 1 (Prototype) (10%)
  • Homework 6 : Project: Part 2 (Functional App) (15%)

Related Textbooks

Other Resources

Contact Information

Prof. Thomas A. Powell

E-mail: tpowell@pint.com
Phone: 858.270.2086
On Campus Office Hours: After lecture every day for aprox. 15mins to 1hr, Wednesday 2:30-4:30PM @ 2124 and by arrangement
Off Campus Office Hours: By appointment @ PINT Main Office
Slack availability up until 10pm

Teaching Assistants

Abhilash Srivastava

E-mail: a8srivas@ucsd.edu
Slack Handle: @Abhilash (TA)
Office Hours: Thu 4-5 PM (CSEB 240A)
Virtual OH: Tuesday 4-5 PM (Slack)

Asha Tulsyan

E-mail: atulsyan@ucsd.edu
Slack Handle: @Asha Tulsyan (TA)
Office Hours: Monday 11-12AM (CSE B240A)
Virtual OH: Tuesday 10-11 AM (Slack)

Tutors

Lihao He

E-mail: lih046@ucsd.edu
Slack Handle: @Lihao (Tutor)
Office Hours: Monday 2-5 and Thursday 2-5 @ B230
Virtual OH: Monday & Thursday 9 - 11pm (Slack)

Justin Huynh

E-mail: juh079@ucsd.edu
Slack Handle: @Justin (Tutor)
Office Hours: Friday 10:30-11:30AM @ CSE B215
Virtual OH: Friday 11:30-12:30 (Slack)

Ziang Jing

E-mail: z1jing@ucsd.edu
Slack Handle: @Andy Jing (Tutor)
Office Hours: Tu 1pm-2pm at CSE B215
Virtual OH: Thursday 1pm-2pm (Slack)


Class Message System