Summer 2018 | University of California, San Diego CSE Department
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.
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.
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