CSE 134B: Web Client Languages

Summer 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 1

  • July 2: Introduction
  • July 3: Fundamentals
  • July 4: Holiday
  • July 6: Fundamentals Part 2
  • July 8: HW 1 Due

Week 2

  • July 9: Markup Theory
  • July 10: Element Review
  • July 11: Images and Media Elements
  • July 12: Forms and Interactions
  • July 15: HW 2 Due

Week 3

  • July 16: CSS Part 1
  • July 17: CSS Part 2
  • July 18: CSS Part 3 and Review
  • July 19: Midterm
  • July 22: HW 3 Due

Week 4

  • July 23: JavaScript Part 1
  • July 24: JavaScript Part 2
  • July 25: DOM
  • July 26: Ajax Part 1
  • July 29: HW 4 Due

Week 5

  • July 30: PWAs
  • July 31: Performance
  • August 1: Futures
  • August 1: HW 5 Due
  • August 2: Review
  • August 3: Final Exam (8-11AM)

Grading

  • Homework - 45%
  • Midterm - 25%
  • Final - 25%
  • Participation - 5%

Homework

The emphasis this quarter will be building a Web application to manage bug reports (aka issues). The app will eventually become a progressive web application (PWA) using the service worker API. We will explore performance and framework free development. To validate our execution a cheap Android phone must be purchased for real hardware testing and grading emphasis will focus on correct function on a reference device. Teams of up to 3 will get to design their application with a mobile first, web standards focus. The application will have an authentication layer, CRUD (Create,Read Update, and Delete) facilities for the issues. You will be required to use Google Cloud's Firebase technology to implement this project.

  • Homework 1 : Fundamentals Review
  • Homework 2 : HTML Element Testing
  • Homework 3 : CSS Styling and Prototype
  • Homework 4 : JS App Part 1
  • Homework 5 : JS App Part 2

Related Textbooks

Other Resources

Contact Information

Prof. Thomas A. Powell

E-mail: tpowell2@ucsd.edu
Phone: 858.270.2086
On Campus Office Hours: After lecture every day for aprox. 15mins to 1hr, Wednesday 3-5PM @ 2124 and by arrangement
Off Campus and Virtual Office Hours: By appointment @ PINT Main Office

Teaching Assistants

Valentin Robert

E-mail: vrobert@ucsd.edu
Slack Handle: @Valentin (TA)
Office Hours: TBD
Virtual OH: TBD (Slack)

Tutors

Lihao He

E-mail: lih046@ucsd.edu
Slack Handle: @Lihao (Tutor)
Office Hours: TBD
Virtual OH: TBD (Slack)

Chao Zhou

E-mail: chz157@ucsd.edu
Slack Handle:
Office Hours: @Chao Zhou
Virtual OH: TBD (Slack)

Justin Huynh

E-mail: juh079@ucsd.edu
Slack Handle: @Justin (Tutor)
Office Hours: TBD
Virtual OH: TBD (Slack)


Class Message System