COMP 20: Web Programming (ONLINE)

Tufts University Department of Computer Science, Summer Session A

NOTE: For the spring 2019 syllabus, go here


Teaching Assistants




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 20.


On the first day of class, the first three weeks will be opened for everyone to accomodate those who want to work ahead on assignments. This is to be flexible for those who are working or have travel planned.

Week 1: The Fundamentals

By the end of this week, you will learn how the web works, use the developer tools in a web browser to see HTTP request and response headers and data, and use Git and GitHub.

Week 2: Developing Front End Content

By the end of this week, you will be able to create a static website with a few pages using HTML and CSS --from scratch, and you will create a web page that responds depending on screen width on a web browser.

Week 3: The JavaScript Programming Language

By the end of this week, you will learn the JavaScript programming language and the important aspects of the language including data structures, functions, built-in object, and event handling; use JavaScript in an HTML document to manipulate contents on a web page after it is loaded via Document Object Model; create a web page using the Google Maps JavaScript API.

Week 4: Making Front End Content Interactive and Dynamic

By the end of this week, you will learn how to download data from a remote location and use the data to update a portion of a web page, store a small amounts of data persistently on a web browser, and use a JavaScript front-end framework.

Week 5: Developing the Server Side

By the end of this week, you will create a server-side (or back-end) application and deploy it to Heroku where it can be made publicly accessible.

Week 6: Web Security

By the end of this week, you will learn the basics of web security including to never trust user input, break a web application, and identify vulnerabilities in a web application.

Workload: All The Labs with Expected Length and Difficulty

Generally speaking, workload is hard to say because the skill-set of the students varies: from those who have just completed Introduction to Computer Science and/or Data Structures to those who already have a Computer Science degree. In terms of number of hours you should expect to spend per week, my rough estimate and expectation is anywhere from 3 to 10 hours of work a week.

Course Policies


All labs for a given week are due on the following week on a Wednesday at 11:59 PM (so yes, a week-and-a-half to do all labs for a week). The new week will be made available on Monday morning at 10 AM. Late labs are not accepted.

Expectations and Structure of This Online Course

This course will be a fun one for sure. A few notes on the expectations and structure of this course:

1. What this course will NOT have and what I will NOT do:

There are many good reasons why I will not do any of the above items:

Adding constraints and extra burden to your lives especially during the summer will not fit well with anyone. Extra constraints and burden also defeat the purpose of an online course. Thus, you will probably not see me at all this summer.

2. You are on your own pace.

You can choose to:

  1. Pace yourself during the week
  2. Do everything during the weekend
  3. Do everything during the last minute
  4. Don't do any of the work

Your choice, but the latter three choices are not wise.

3. You are responsible for your own learning.

A very important point: if you want everything gone over in lecture or in notes, then this is not the course for you. More importantly, that's not how things work in real life.

4. You will learn by doing.

Each week, there will be at most three labs (and a quiz every other week) to hone your skills and to aim at the crux of the matter for the week. Here's an analogy: you don't learn how to cook simply by just reading cookbooks and watching YouTube videos. You learn by making, using your hands, and making mistakes.

5. You will learn by asking questions.

It is your responsibility to ask questions early and to ask for help...

6. ...and I expect the Piazza board to be very active and civil.

Share thoughts and respond to other people's questions. I will be online constantly, thus the idea of set office hours almost becomes moot point. It is no secret that I respond very quickly unless I need to be away.

There is a very good post published by Northeastern University: "How To Be a Successful Online Learner." Link: