CSE 134B: Web Client Languages

Summer 2017 | University of California, San Diego CSE Department

Course Statement

Web development 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 is the sheer number of technologies required to masterfully build a modern Web application. Add to this challenge a common lack of understanding of the delivery, security and even medium of the Web. This class attempts to arm students with appropriate fundamental knowledge to excel in future Web focused pursuits. To appropriately address the study of Web applications 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 base material for context, because without it we are often set on the wrong course. We shift next to the core markup and presentation technologies such as HTML5 and CSS. We continue our exploration by discussing client-side interactivity using JavaScript with a focus on rise of single page applications and their related frameworks particularly employing an "offline first" mobile focused pattern. 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 3: Introduction
  • July 4: Holiday
  • July 5: Intro Contd. 1-up 3-up
  • July 6: Markup Part 2

Week 2

Week 3

Week 4

  • July 24: JavaScript Part 1 1-up 3-up
  • July 25: JavaScript Part 2 1-up 3-up
  • July 26: Ajax and HTTP Part 1
  • July 27: Ajax and HTTP Part 2
  • July 30: Homework #3 Due

Week 5

  • July 31: PWAs
  • August 1: Performance Optimization
  • August 2: Futures
  • August 2: Homework 4 Due
  • August 3: Conclusions
  • August 4: Final Exam (8-11AM)

Grading

  • Homework - 45% (10,10,10,15)
  • Midterm - 25%
  • Final - 25%
  • Attendance & Participation - 5%

Homework

The emphasis this quarter will be building a Web application to create SoundBoards. The idea being a soundboard is a 9-up collection of sounds often on the same topic with buttons to trigger each sound. You will be able to build arbitrary SoundBoards with your application. To accomplish this your application will have an authentication layer, CRUD (Create,Read Update, and Delete) facilities for record management, simple alerting and will be multiuser based. You will get to use Google Cloud's Firebase technology to implement this project. You may use VanillaJS/jQuery, VueJS or Polymer to execute your application. No other forms of execution will be allowed. Students will be encouraged this session to build their application using an offline first pattern employing service workers. To this end some emphasis on performance will be placed throughout all assignments. Important Note: Conformance testing will require you to purchase a cheap Android phone for testing.

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 3-5PM @ TBD and by arrangement
Off Campus Office Hours: By appointment @ PINT Main Office Online: Literally on demand via Slack or Zoom.us

Teaching Assistants

Justin Lazarow

E-mail: jlazarow@eng.ucsd.edu
Office Hours: Mon 11:30am-12:30pm & Wed: 11:30am-12:30pm @ B260A

Jonathan James Shamblen

E-mail: jshamble@eng.ucsd.edu
Office Hours: Tu 11:30am-12:30pm & Thu: 10:30am-11:30am @ B260A


Class Message System