Web Engineering

COMP 120, Tufts University Department of Computer Science, Spring 2015

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.


  • Ming Chow, mchow@cs.tufts.edu
  • Office Hours: Wednesdays from 1 - 4 PM, or by appointment, on the second floor of Halligan Hall by the CS Main Office (hours are good until the last day of classes, April 23rd)
  • Please send all class questions (e.g., help on assignments and labs) via Piazza. DO NOT E-MAIL ME! Sign up at https://piazza.com/tufts/spring2015/comp120.
  • For emergencies or private matters, please e-mail or see me directly.
  • Tyler Lubeck, tyler@tylerlubeck.com
  • Office Hours: Thursdays from 3 - 4:30 PM, or by appointment. See Halligan Helper for location.
  • Will potentially add more if there is demand, but feel free to email me.

Class Time

  • Tuesdays and Thursdays, 1:30 - 2:45 PM in Barnum/Dana Hall 104


  • None


  • COMP 20: Web Programming or permission by instructor


  • Assignments, problem sets, labs (60%)
  • Final Project (25%)
  • Class participation and subjective factors (15%)

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:

  • Writing sane and sensible answers on quizzes
  • Asking appropriate questions in class
  • Answering questions when called on in class
  • Asking appropriate questions on Piazza
  • Answering questions well on Piazza
  • Organizing study groups
  • Interacting professionally with programming partners and course staff
  • Working out ideas with teaching assistants
  • Helping other COMP 120 students (or COMP 20 students for that matter) in Halligan

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.

Course Policies

Assignment Late Policy

Assignments (labs, homework) that is submitted electronically (most homework) will typically be due at 11:59 PM on a Tuesday or Thursday. We will grant an automatic extension of ten minutes at no cost to you. If you plan on submitting your work at midnight or at six, you will have nine minutes for last-minute changes.

An assignment is expected to be submitted on time. However, we recognize that the exigencies of college life occasionally interfere with on-time submission. If you have difficulty getting the assignment in on time, you have two options:

  1. For ordinary difficulties, each student is automatically issued three (3) "extension tokens." By expending an extension token, you can get an automatic 24-hour extension on all deadlines associated with a single assignment. To use an extension token, you must e-mail me at mchow@cs.tufts.edu. Thus must be sent before the assignment is due. At most two extension tokens may be expended on any single assignment. When you are out of tokens, late assignments will no longer be accepted: it will be returned ungraded, and you will receive no credit for the work.
  2. If a serious illness affects your ability to complete the assignment on time, your first step is to report the illness using the "Illness Notification Form" that is available in WebCenter for Students. We will make suitable arrangements. For extraordinary difficulties, such as bereavement, family emergencies, or other extraordinary unpleasant events, your first step should be to make contact with your associate dean for undergraduate education. You must take this step before the assignment is due. Ask your dean to drop me an email or give me a call, and we will make special arrangements that are suited to your circumstances.

Please understand that extension tokens are meant to be used. That is, you will not receive any special bonus at the end of the course if you do not use any of your extension tokens.


A lab is due one week from the day it is assigned.

Solutions to Assignments and Examinations

Solutions to assignments and examinations will not be posted for this course.



Schedule is subject to change.

Date Agenda Deliverables
Thursday, January 15th Course Roster PLEASE COMPLETE ASAP!
Tuesday, January 20th
Thursday, January 22nd  
Tuesday, January 27th NO CLASS (BLIZZARD)  
Thursday, January 29th Project 1, Leg 1: Data Schema and Wireframe Presentations Project 1, Leg 2: Implementing the Minimum Viable Product
Tuesday, February 3rd  
Thursday, February 5th Web Frameworks  
Tuesday, February 10th NO CLASS (SNOW)  
Thursday, February 12th Project 1, Leg 2: Implementing the Minimum Viable Product Presentations Project 1, Leg 3: The Benefactor
Tuesday, February 17th Project 1, Leg 3 Presentations; Distributed Memory Caching Systems  
Tuesday, February 24th Project 1, Leg 4: Optimizations
Thursday, February 26th Scalability. Case studies:  
Tuesday, March 3rd Guest Speaker: Dr. Noah Daniels (LA '01, GE '06, GE '13), Postdoctoral Associate at the Computation and Biology Group at MIT CSAIL, former Director of Data Analysis at Panjiva, Inc. and former Vice President of Research, IntrinsiQ Financial, LLC  
Thursday, March 5th Project 1, Leg 4 Presentations Project 1, Leg 5: Writing the API
Tuesday, March 10th    
Thursday, March 12th The Real Time Web Leg 8: The Final Project
Tuesday, March 24th Session Management  
Thursday, March 26th Project 1, Leg 6: Polling
Tuesday, March 31st  
Thursday, April 2nd Project 1, Leg 6 Presentations Project 1, Leg 7: Authentication and Authorization
Tuesday, April 7th Guest Speaker: Greg Raiz (E '98'), Founder & CEO of Raizlabs Project 1, Leg 8: The Final Project
Thursday, April 9th Mobile  
Tuesday, April 14th Looking Ahead  
Thursday, April 16th NO CLASS  
Tuesday, April 21st Final Project Presentations Teams [9, 14, 6, 15, 1, 16]  
Thursday, April 23rd Final Project Presentations Teams [2, 10, 11, 18, 7, 3]  
Tuesday, April 28th Final Project Presentations Teams [4, 12, 5, 13, 17, 8] Semester Group Project Performance Review Form (PLEASE COMPLETE)