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.
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
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., This website, Moodle, Piazza). You are expected to attend every lecture (either synchronously or asynchronously through Zoom).
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 responsible for the lab assignments whether you attend synchronously or asynchronously. 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.
The anticipated breakdown of course grades is as follows; this is subject to change.
Participation (5%)
Labs (5%)
Homework (50%)
Team Project (40%)
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.
Individual projects/assignments/labs will not be scaled (curved), so don’t ask.
The instructor may or may not choose to scale final grades, so don’t ask.
Final grades are assigned based on the overall weighted average as defined by the grading policy. Grades will not be rounded up, so…don’t ask. For example, if you achieve an 89.93 then the final letter grade will be (for example) a B+, not an A-. Do not ask.
Homeworks are individual programming assignments that reinforce material taught in class. In general, these are one-week long assignments.
The team project represents a substantial component of the course and consists of various checkpoints throughout the semester. You will be required to work in a team of 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 JQuery; other libraries are allowed only with prior consent of the professor.
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:
You are an adult and have the ability to check and verify your work has been received properly.
You are capable of using GitHub, DropBox, Google Drive, or some other backup software to ensure that your work is not lost in the event of a computer failure.
You have a back-up plan in place in the event that your computer fails or your internet connection is unavailable. Make sure you have a plan B and C if your computer crashes or your internet is unavailable. This is your responsibility.
To ensure that you submit projects on time you should begin them early and not wait until the last minute to submit. You will be able to submit multiple times so submit early and often to ensure you have something in before the deadline.
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.
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).
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.
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.
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.
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.