COMP 120: Web Engineering

Tufts University Department of Computer Science, Spring 2017

Course Description

Web applications are complex systems that deliver a plethora of features to a large number of users (including developers), and also exhibit unique behaviors and demands in terms of performance, scalability, usability, and security. This course will discuss the limits of current web technologies, information and service architectures, caching, session and data management.

Instructor

Teaching Assistant

Class Time

Textbook

Prerequisites

Assessment

Class participation encompasses a variety of activities, all with the same purpose. To earn high grades for class participation, you must show that you are actively engaged in managing your own learning, developing new skills, and developing new ways of programming and problem-solving. You can be engaged in a variety of ways:

Nobody has to do all of these things; you can earn top grades for class participation by doing just a few things well. In particular, nobody is required to speak in class, but everybody should be prepared to answer questions if called upon.

Professional interactions with other students and with course staff are the same as those which are expected in any workplace. It is also professional for you to recognize that a member of the course staff may be present but not actually available to talk about COMP 120.

What is the Engineering Notebook and Why For This Class?

This semester, I am requiring each team to maintain a engineering notebook. This engineering notebook shall be in electronic format and be made online, one notebook per team. The notebook can be in form of a blog (e.g., Tumblr, GitHub, WordPress), thus an engineering blog --social media (e.g., via Twitter, Facebook, Snapchat) is not acceptable. Many professional engineers and engineering teams maintain notebooks for good reasons:

On top of these reasons, I want:

You may argue that a Git commit history serves the same purpose. However, Git commit history is largely for the source code. This course is much more than just writing code. Example: you will be drawing and communicating visuals.

At least one entry in your engineering notebook is required each week, starting on the week Leg 1 is due. At the very least, your team will need to highlight the wins and fails of the week, and plans for the upcoming weeks. The requirement for each entry in engineering notebook: a timestamp of entry. Back-dating is not acceptable.

Course Policies

  1. Because each leg of the semester project is team-based, no extensions will be granted.
  2. Because this class will have a number of guest speakers and student presentations, laptops or mobile devices are not allowed to be used in class unless specified. Phones must be silent. You are allowed to politely step outside of the class to take phone calls (e.g., for emergencies, job offers).
  3. While you are allowed to use third-party APIs, packages, or libraries for development, I will not help you with any questions or issues that you have with them.
  4. If you sabotage another team's work or presentation, your team will receive an F in the course.

Syllabus

Schedule is subject to change.

Topics:

Date Agenda Deliverables
Thursday, January 19 Course Roster PLEASE COMPLETE ASAP!
Tuesday, January 24th Leg 1 Assigned, Due Thursday, February 2nd: Your Job Is Not to Write Code
Thursday, January 26th  
Tuesday, January 31st Web Frameworks, Development Environment Tufts Engineering Student-Alumni Networking Night, Alumnae Lounge, 6 - 8:30 PM. RSVP: https://eventrsvp.tufts.edu/profile/form/index.cfm?PKformID=0x26658215a
Thursday, February 2nd Presentation Evaluation Form Leg 2 Assigned, Due Thursday, February 9th: Exploring Your Options
Tuesday, February 7th Web Services, Representational State Transfer (REST)  
Thursday, February 9th NO CLASS, SNOW DAY
Tuesday, February 14th Presentation Evaluation Form Leg 3 Assigned, Due Thursday, March 2nd: Implementing the Minimum Viable Product
Thursday, February 16th Guest Speaker: Sean Harrington (Class of 2014), Senior Software Engineer for the New England Patriots  
Tuesday, February 21st Work Day  
Tuesday, February 28th Static Content Optimization  
Thursday, March 2nd Work Day  
Tuesday, March 7th
Thursday, March 9th Dynamic Content Optimization and Distributed Memory Caching Systems  
Tuesday, March 14th NO CLASS, SNOW DAY  
Thursday, March 16th Presentation Evaluation Form  
Tuesday, March 28th Scalability. Case studies: Leg 5, Due Thursday, April 6th: The Technical Writing Seminar and Memory Caching
Thursday, March 30th Presentation Evaluation Form  
Tuesday, April 4th NO CLASS  
Thursday, April 6th Presentation Evaluation Form  
Tuesday, April 11th SPECIAL  
Thursday, April 13th    
Tuesday, April 18th Final Project Presentations, Day 1  
Thursday, April 20th Final Project Presentations, Day 2  
Tuesday, April 25th Final Project Presentations, Day 3 COMP 120 Spring 2017 360 Degree Performance Review
Thursday, April 27th NO CLASS