CSE 135: Server-Side Web Languages

Summer 2017 | 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 computer scientists and while there are many site builders, few are truly skilled in the field. One of the primary reasons for this is the sheer number of programming technologies in a modern Web site. To attack the construction of Web site technologies it is often necessary to divide the study between those which are primarily client-side and those that are server-side In this class we present a complete overview of server-side Web technologies in light of the role in a complete Web system. We start first with a quick review of the environment of Web development with a full overview of pieces that may have missed by students not versed in client-side development. Next we make sure to in more detail discuss the architecture of the server-side discussing HTTP, Web servers, server-side programming technology in general and infrastructure issues. Once the environment is well understood we turn our attention to the programming technologies starting with older technologies, working our way through scripting environments such as PHP and server-side programming environments such as Java servlets. The main aim of the survey approach is to emphasize the "sameness" and reliance on HTTP as opposed to the differences of framework or language issues. Special topics including Web application security, Web services, delivery optimization, server-side JavaScript, and general site management. These topics as well as the cultural effects on Web app developers are woven throughout the course. Node.js and the use of server-side JavaScript for a full end-to-end JavaScript application solution will be explored in this edition of the course in support of a SoundBoard application written in the previous course iteration.

Tentative Schedule

Week 1 : August 7-13

Week 2 : August 14-20

  • Web Programming Intro 1-up 3-up
  • Server Side Scripting and PHP 1-up 3-up
  • Session Management

Week 3 : August 21-27

Week 4: August 28-September 3

  • REST and API Introduction
  • Traditional DB Driven Web Apps, MVC and Templates
  • SPA Focused DB Driven Web Apps

Week 5: September 4 - September 8

  • Delivery and Performance
  • Security
  • TBD or Analytics and Monitoring
  • Sep 8: Final Exam 8-11 @ TBD

Grading

  • Homework - 40%
  • Midterm - 25%
  • Final - 35%

Homework

All the homework is going to eventually support the development of a Web end point using NodeJS. Other technologies will be explored along the way such as CGI or PHP but the main emphasis is server-side JavaScript. Given that some students will have little experience with client-side technology the form of the assignments may favor more of a REST style end point but students will appropriate background in client-side technology have the opportunity to augment their solution appropriately. Performance and security along with standard programming practices for quality is integral for successful mastery of the project.

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. 30mins to 1hr, Thursday 3-5PM @ CSE TBD and by arrangement
Off Campus Office Hours: By appointment @ PINT Main Office

Teaching Assistants

Justin Lazarow

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

Jonathan Shamblen

E-mail: jshamble@eng.ucsd.edu
Office Hours: Th 12pm-1pm Pepper Canyon Hall 106, Fri (generally online) 1pm-2pm

Vicky Papavasileiou

E-mail: vpapavas@eng.ucsd.edu
Office Hours: Mon 6-7pm (generally online), Fri 5-6pm B260A


Class Slack Channel