View on GitHub



COMPSCI 326 Web Programming

Fall 2020

Professor Emery Berger



COMPSCI 187 and/or 186. This course assumes a good understanding of programming at the 187 (data structure implementation) or 186 level (using data structures), basic command line usage, understanding of version control systems (e.g., git), and object-oriented programming concepts and techniques are helpful. Previous JavaScript background, while not required, is also helpful. We also assume a level of maturity for success in working in a team-based environment.

Integrative Experience

This course satisfies the Integrative Experience (IE) requirement. The upper-division integrative experience provides a structured context for students to reflect on their own learning and explore the connections between the broad exposure provided by General Education and the more focused exposure of their major. You can read additional details on the integrative experience website. The IE requirement is fulfilled by this course through the application of extensive team-based learning. Furthermore, this course embraces the IE through a substantial team project that is entirely student driven and explicitly integrates the material covered in this course with the experiences, learning, and knowledge attained by every unique person enrolled in this course.


The learning outcomes of this course are:

Course Structure


Lectures will be led by the professor and will provide a high-level overview of the course material. The presentation format will include a variety of slides, written notes, programming examples, activities, etc. All material will be available through the course learning management system site (e.g., Moodle, Piazza). You are expected to attend every lecture and arrive promptly so you do not disturb others.

The use of laptops or other electronic devices during class, including phones, is not allowed without prior consent of the professor. Phones should be silenced or turned off.


The Lab section is led by a teaching assistant (TA) for this course. There will also be undergraduate course assistants (UCA) assigned to your lab section. You are expected to attend every lab section. Labs are used to begin lab exercises in groups as well as to work on the end of semester project. Missing a lab section does not excuse you from any activities that occur during that time. Do not ask to make up any missed work during lab section time.

Please turn off or silence your phone during lab.

Rules for Success

Student Responsibilities

This course has seven important rules. If you follow these rules, your odds of learning the material and achieving a good grade in this course will improve greatly.

  1. Do the assigned reading from the book.
  2. Read the assignment documentation early.
  3. Do your work on time, submit your work on time, make sure you submitted the correct work.
  4. Communicate with other students in the course, the professor, and any other course staff for help.
  5. Be honest in the work you do and the submissions you make.
  6. Communicate with me and others in the course with respect and understanding.
  7. Do not ask to submit assignments after the due date.

Instructor Responsibilities

You can expect from us:

Grading Policy

The anticipated breakdown of course grades is as follows; this is subject to change.

Grading Notes


Most classes will have in-class participation exercises. You are required to complete participation exercises the day after each lecture to be given credit.


Labs are small individual assignments performed during lab. These must be submitted during the lab period to count for credit.


Homeworks are individual programming assignments that reinforce material taught in class. In general, these are one-week long assignments.

Team Project

The team project encompasses the last third of the semester - approximately 4 weeks. You will be required to work in a team of 2-4 students to design and implement a web application using the three important components of web applications including HTML, CSS, and JavaScript. The design and implementation of the application is entirely up to you, but it must solve a real-world problem, be connected to work you have done in other areas (general education), connect to your discipline (e.g., CS, Informatics) and be relatively unique as compared to other existing applications (within reason). You are expected to not use any frameworks beyond Bootstrap; other libraries are allowed only with prior consent of the professor.

Final Grades

To evaluate your understanding of the course content, we will use scores achieved on each of the above assessment components. Your final grade will convey what you know from the course and how well you know it. Missing assignments can have a dramatic impact on your final grade so it is important that you are attentive to submission deadlines and avoid any missing work. The typical breakdown of percentages and final grades for this course are A (93-100), A- (90-92), B+ (87-89), B (83-86), B- (80-82), C+ (77-79), C (73-76), C- (70-72), D+ (67-69), D (60-66), F (0-59). This grading scheme may be adjusted based on the overall performance of students in the course.


Late submissions for any assessment component will not be accepted. It is your responsibility for maintaining your own schedule and being prompt with your submissions. We expect that you become familiar with the course submission software and verify that your submission has been properly uploaded. We will not accept late submissions due to lack of checking on this. We assume:

Assignment Submission

Assignments will be submitted electronically. You are responsible for submitting your assignments by the assigned due date. The due dates for assignments will be clearly indicated on the schedule and it is your responsibility to update your own calendar so you are aware of due dates.


Your first point of contact is the teaching assistant (TA) for your assigned lab section. That is, if you have a problem in the course, an assignment, a question about a participation/challenge/lab grade, or a question about the material, you should first approach the TA leading your lab. If they are unable to answer your question they will communicate this to the professor and the professor will provide an answer.

Online Discussion Forum

We will be using Piazza for all communication. The discussion forum should be your first choice for asking questions as others most certainly have the same question. You should check the discussion forum before asking your question to see if the same question has already been posted. We will not answer questions that have already been answered in the discussion forum. Think before you post. We expect you to do a reasonable amount of thinking to try to solve your problems before posting for help. Make sure you are articulate and clear with your post (i.e., think before you post). You should post questions related to assignments early rather than wait until the last minute. Questions that are posted very near an assignment deadline may not be answered. Course staff are expected to answer questions Monday through Friday. Do not expect prompt answers on Saturday, Sunday, and scheduled holidays and breaks.

Note: Do not send direct email to course staff unless your discussion section TA allows it or it is an emergency (death or extreme documented illness).

Equality Statement

The professor is dedicated to establishing a learning environment that promotes diversity of the students, including race, class, culture, religion, gender, sexual identity, and physical ability. It is important that this is a safe virtual classroom environment. We will practice being generous and respectful members of our classroom and computer science community. Anyone noticing discriminatory behavior in this class, or who feels discriminated against, should bring it to the attention of the professor immediately.


Accommodations are collaborative efforts between students, faculty, and Disability Services (DS). Students with accommodations approved through DS are responsible for contacting the faculty member in charge of the course prior to or during the first week of the term to discuss accommodations. Students who believe they are eligible for accommodations but who have not yet obtained approval through DS should contact DS immediately at (413) 545-0892. If you are a student with a documented disability and are registered with Disability Services, please contact me immediately to facilitate arranging academic accommodations. Reasonable arrangements will be made in accordance with your accommodations provided by DS in the context of this course.

Attendance and Participation

You are expected to attend class and lab regularly, read the assigned readings before class, and participate in class discussions. Your participation will be evaluated in a variety of ways. This includes any in class activities or activities that may be given during weekly discussion sections. You are responsible for maintaining your own schedule and ensuring that you are present during activities. Do not ask to makeup missed activities.

Course Incompletes

Students who are unable to complete course requirements within the allotted time because of severe medical or personal problems only may request a grade of Incomplete from the instructor of the course. Incomplete grades are warranted only if a student is passing the course at the time of the request and if the course requirements can be completed by the end of the following semester. Furthermore, an incomplete will be granted if at least 75% of the work has been completed for the course. Otherwise, the recommended course of action is to withdraw and retake the course in the future. Please see the Academic Regulations Section IV Grading System and Credit Guidelines for further details.

Note: an incomplete means you are on your own to complete the material agreed upon by the instructor of this course. Do not expect additional help or one-on-one teaching of the material past the course completion date. It is your responsibility to complete the remaining material.

Academic Honesty


It is very important in all courses that you be honest in all the work that you complete. In this course, you must complete all assignments, quizzes, exams, etc. on your own unless otherwise specified. If you do not you are doing a disservice to yourself, the instructors for the course, the School of Computer Science, the University of Massachusetts, and your future. We design our courses to provide you the necessary understanding and skill that will make you an excellent computer scientist. Assignments and exams are designed to test your knowledge and understanding of the material. Plagiarism and academic honesty of any sort may seem like an easy way to solve an immediate problem (which it is not), however, it can have a substantial negative impact on your career as a computer science student. There are many computing jobs out there and many more people working hard to get those positions. If you do not know your stuff you will have a very difficult time finding a job. Please take this seriously.

We will carefully review your submissions automatically and manually to verify that “cheating” has not taken place. If you are suspected of plagiarism we will follow an informal path to determine if academic dishonesty has taken place. If you are found guilty you will receive an F for the course and it will go on your permanent record at UMass. This will disrupt your schedule for completing courses and may lead to you not completing your degree in a timely fashion. You should carefully review the Academic Honesty Policy, Avoiding Plagiarism, and the Academic Honesty Flowchart to understand what academic honesty is, how you can avoid it, and the procedure we will follow if you are under suspicion. In general, you should review all documentation described by UMass’ Academic Honesty Policy and Procedures.

Specifics for this course: