Skip to main content Link Search Menu Expand Document (external link)


Fall 2022

Professor Emery Berger


COVID-19 and Face Covering Policy

While masks are not currently required by the University, they remain an effective tool for battling the ongoing COVID-19 pandemic. Students attending class are welcome to wear masks, and their decision to do so will be treated with respect.


COMPSCI 220 (or 230) with a grade of C or better, or INFO 248 and COMPSCI 186/187, with a grade of C or better in each.

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:

  • Students will learn and apply HTML to structure content in a browser
  • Students will learn and apply CSS to style content in a browser
  • Students will learn and apply the JavaScript programming language
  • Students will learn and apply the fundamental architecture of a front-end web application
  • Students will learn and apply the fundamental architecture of a back-end web application
  • Students will learn and apply the connection between front-end and back-end
  • Students will learn and apply a RESTful web application
  • Students will learn and apply the fundamental construction of a modern complete web application

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, Slack). 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 allowed only with prior consent of the professor. Phones should be silenced or turned off.


The Lab section is led by teaching assistants (TAs) 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

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

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

Instructor Responsibilities

You can expect from us:

  • Timely release of course assignments.
  • Timely release of scores achieved on course assignments.
  • To respond to questions in the discussion forums in a reasonable amount of time during the week and normal working hours.
  • Be respectful of your ideas and value the diversity you bring to the virtual classroom.
  • Be open to dialogue that challenges me.
  • Be present during my stated office hours.
  • Ensure the proper running of the course in the online format.

Grading Policy

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

  • Participation (5%)
  • Labs (5%)
  • Homework (10%)
  • Exams (50%)
  • Team Project (30%)

Grading Notes

  • While individual projects/assignments/labs/exams will not be curved, final grades are generally scaled (though this is at the discretion of the instructor).
  • Final grades are assigned based on the overall weighted average as defined by the grading policy. For example, if you achieve an 89.93 then the final letter grade will be (for example) a B+, not an A-.


Most classes will have in-class participation exercises. You are required to complete participation exercises by the stated deadline.


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. 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) 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 substantial 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 strongly recommend that you commit your code early and often.

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 primarily relying on Slack for communication, but we will also have a Piazza site. 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 (e.g., 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.


The University of Massachusetts Amherst is committed to providing an equal educational opportunity for all students. If you have a documented physical, psychological, or learning disability on file with Disability Services (DS), you may be eligible for reasonable academic accommodations to help you succeed in this course. If you have a documented disability that requires an accommodation, please notify me within the first two weeks of the semester so that we may make appropriate arrangements. For further information, please visit Disability Services (

Attendance and Participation

You are expected to attend class and lab regularly, read any assigned readings before class, and participate in class discussions and activities. 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. It is generally not possible 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

Since the integrity of the academic enterprise of any institution of higher education requires honesty in scholarship and research, academic honesty is required of all students at the University of Massachusetts Amherst. Academic dishonesty is prohibited in all programs of the University. Academic dishonesty includes but is not limited to: cheating, fabrication, plagiarism, and facilitating dishonesty. Appropriate sanctions may be imposed on any student who has committed an act of academic dishonesty. Instructors should take reasonable steps to address academic misconduct. Any person who has reason to believe that a student has committed academic dishonesty should bring such information to the attention of the appropriate course instructor as soon as possible. Instances of academic dishonesty not related to a specific course should be brought to the attention of the appropriate department Head or Chair. Since students are expected to be familiar with this policy and the commonly accepted standards of academic integrity, ignorance of such standards is not normally sufficient evidence of lack of intent (


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:

  • Unless otherwise specified, assignments in this course are individual, not group, and direct collaboration is inappropriate. Any group work we will clearly mark as such.
  • While we support learning from your peers, the rule of thumb is that any learning will be in your head. Therefore, you should not leave an encounter (in person or electronic) with anything written down (or electronically recorded) that you did not have before. Thus, giving or receiving electronic files is specifically considered cheating.
  • Use of materials from previous offerings of this course, no matter the source and even if you are retaking the course, is prohibited.
  • We will employ various means, electronic and otherwise, to check for compliance with these course policies. We will pursue sanctions vigorously and the usual sanction we will pursue is an F in the course.