CSSE x440, Fall 2020

Web Technologies

This course is an opportunity to learn about the modern Web from front to back. Students will explore a sample of modern Web technologies, understand how they work and why they exist, and use them to build increasingly complex infrastructure. We will drive the course through programming projects in JavaScript, because it is a single language that will let us easily explore as many aspects of the web as possible. This course is cross-listed as CSSE 4440 and 5440. The only difference will be in project rubrics and the depth of achievement in course outcomes.

Basic Information

F2F Meeting Section 01: E223, MW 6:40-7:55
Online Meeting Asynchronous, Blackboard
Instructor Benjamin VanderSloot, Assistant Professor
Instructor Email vanderba1@udmercy.edu
Instructor Phone TBD
Office Hours E321, TBD or by Appointment
Readings "The Missing Link: An Introduction to Web Development and Programming" by Mendez, "Web Accessibility for Developers" by Gay and Karazov, Eloquent Javascript by Haverbeke, and W3Schools' online resources
Credit Hours Section 01 and 02: 3
Prerequisites CSSE 1720 and CSSE 1722

Course Structure

I'd like to make clear that I understand that this is an exceptional semester. I hope that this course reflects that. No student should have to come to class if they feel unsafe. However, this class is not just about learning the technical aspects of the Web. It is also about thinking critically about why these technologies are the way they are and how those technologies affect the world via discussion.

To provide the strongest discussion while still allowing everyone to feel safe, this course will be offered in two sections simultaneously. One is asynchronous and online and the other incorporates our face-to-face meetings. Both sections will interact frequently in online discussion and can collaborate.

If you have concerns or questions about this, please reach out to me. I'll be asking for feedback on this, since I'm learning what works and what doesn't in a hybrid course at the same time as you, and you will have a very different perspective.

Communication Channels

Please follow Blackboard TODO. This will be the primary form of ongoing communication from me to you about course logistics. We can also use email for more direct communication. Gitlab is also an important aspect of the course, as this will be how your projects are assigned, submitted, and auto-graded. At the beginning of the course I will request all students provide me with a GitLab username to associate with the course for this purpose.

Outcomes

By the end of this course, students should:

  1. Practice proficiency in already-created JavaScript projects
  2. Understand common abstractions in Web Programming (e.g. REST, MVC, DOM)
  3. Be able to implement a REST API for use by a website
  4. Understand aspects of the Web as a broader ecosystem
  5. Know how to defend against common Web attacks
  6. Consider impacts of the Web on disadvantaged communities and how to mitigate them

Grading

Grades are assigned by the following proportions:

Discussion Participation 20%
Projects 30%
Midterm Exam 20%
Final Exam 30%

Letter grades are assigned as follows. However, I reserve the right to lower point thresholds for all letter grade levels if I feel I graded too harshly through the semester. I will do my best to be transparent about this, to ensure as much fairness as possible.

Letter Grade Numeric Grade
A 93 - 100
A- 90 - 92.99
B+ 87 - 89.99
B 83 - 86.99
B- 80 - 82.99
C+ 77 - 79.99
C 73 - 76.99
C- 70 - 72.99
D 60 - 66.99
F 0 - 59.99

An important note: discussion participation is evaluated as online forum participation for online-only students and a combination of online and in-person discussions for students that meet face-to-face. Rubrics for discussion grading will be provided on Blackboard and project specifications will include their rubrics. Additionally, projects will be group-work, and by default group members will get the same grade.

Class Schedule

Class is structured in week-long blocks. Each block is guided by one or two topics with required readings. Below is the planned structure of the course.

Week Topic(s) Reading Project
Week 1, Aug 24 Introduction & Static Sites This Syllabus
Week 2, Aug 31 Javascript/TypeScript EJ Chp. 1-4
Week 3, Sep 7 Functional Programming & Asynchrony EJ Chp. 5, 11 Project 1 Released
Week 4, Sep 14 DOM, Events, & jQuery EJ Chp. 13-15
Week 5, Sep 21 HTTP & Forms EJ Chp. 18 Project 2 Released
Week 6, Sep 28 REST APIs & NoSQL Databases Wikipedia Article on REST and CouchDB User Guide Sections 1.1 and 1.3
Week 7, Oct 5 Sessions & Tracking W3 JS Cookies and W3 AJAX Project 3 Released
Week 8, Oct 12 Accessibility & Availability WAD Chp.2 Midterm Exam
Week 9, Oct 19 Templating & Web Hosting Liquid Basics and Tags Project 4 Released
Week 10, Oct 26 DNS & TLS ISOC DNS for Non-Experts and tls13.ulfheim.net
Week 11, Nov 2 AI on the Web TBD Project 5 Released
Week 12, Nov 9 Dynamic Frontends via Angular TBD
Week 13, Nov 16 Targeted Advertisement & Modern Tracking TBD Project 6 Released
Week 14, Nov 23 Web Security TBD
Week 15, Nov 30 Students' Choice & Exam Review
Exam Week, Dec 7 Final Exam

Projects will be released at noon on Friday of the week noted in the schedule.

Policies

The most important policy of this course is that respect is universal. If you do not feel that you are being respected by me, or anyone else at the University in regards to this course, please reach out to me, even anonymously if you prefer. In exchange, I ask that you treat everyone else in the course with respect.

Code of Conduct

I am committed to providing a safe, educational, and enjoyable class. I do not tolerate harassment in any form.

Harassment includes—but is not limited to—unwelcome conduct or offensive verbal comments related to gender, gender identity, gender expression, sexual orientation, age, disability, physical appearance, body size, race, national origin, or religion; deliberate intimidation, stalking, following, unwelcome or unauthorized photography or recording, sustained disruption of talks or other events, inappropriate physical contact, and unwelcome sexual attention. Similarly, encouraging others to engage in such behavior is not permitted, nor are false accusations of harassment.

If you feel that you are being harassed, or observe someone harassing another student, I encourage you to request that the harasser stop if you feel safe to do so. They are expected to comply. Please notify me of any such incidents.

If I am made aware of any incidents, I will either investigate them myself or refer them to the Office of the Dean at the accuser's discretion. If the accusation falls under the scope of Title IX, I am required to report it to the Title IX coordinator and take no further action myself.

This Code of Conduct is adapted from the USENIX Organization.

Collaboration

Collaboration is an important part of computer science. However, an important part of education is evaluation so we can know what everyone has learned. To reflect this, I ask that students do not collaborate on exams and do not collaborate between teams on projects. Collaboration on exams is considered any discussion of the course material during the exam. Collaboration on a project is sharing or showing any code, written or found online. Finally, please don't help write drafts for Blackboard discussion posts. Mistakes and misunderstandings happen in discussions, and sorting these out (and seeing others do so) are important learning experiences.

Attendance

Students are requested to attend as frequently as they are comfortable with. If you miss a class section, you'll be asked to watch the lecture recording or participate in online discussion as alternate means of participation.

Title IX

Detroit Mercy encourages any student experiencing potential sexual harassment, sex or gender-based discrimination or sexual misconduct to contact Marjorie Lang, Title IX Coordinator, at 313-993-1802 or langma@udmercy.edu to obtain resource information and reporting options. Faculty are committed to supporting students and promoting a safe, respectful environment. Therefore, if a student shares information regarding potential sex or gender-based discrimination or misconduct with a faculty member, that faculty member will share this information with Title IX Coordinator Marjorie Lang, so that she can provide you with comprehensive information regarding your rights, options, and available resources. When sharing information with a faculty member or other employee of the University, you may choose to withhold identifying information until you have spoken to a confidential resource at the University. With the exception of the Wellness Center or School of Dentistry Office of Health & Wellness, all employees at the University are mandatory reporters. For additional information about policies, resources and reporting options, please visit udmercy.edu/titleix.

Title IX protections include assistance with pregnant and related parenting accommodations. Requests for such accommodations should be submitted with appropriate medical documentation to Laura Bagdady, Student Disability and Accessibility Support Services, bagdadlm@udmercy.edu. Questions or concerns regarding provision of medically necessary accommodations related to pregnancy or parenting may also be submitted to Marjorie Lang, Title IX Coordinator, at 313-993-1802 or langma@udmercy.edu.

Disability Support Services

If you require an accommodation due to a disability, pregnancy, emergency medical condition or need special arrangements in case of a building evacuation, please contact:

Laura Bagdady
Assistant Director
Disability & Accessibility Support Services
Student Success Center, Room 319
McNichols Campus Library
Email: bagdadlm@udmercy.edu
313-993-1158

It is very important for students to be proactive with regard to requesting their disability accommodations, every semester. While it is never required that you disclose your disability to your professors, all students at Detroit Mercy are encouraged to talk with their professors to discuss their needs and concerns. You must be registered with Disability & Accessibility Support Services and faculty must receive official notification from their office before they can make arrangements for your accommodations.

https://www.udmercy.edu/current-students/support-services/disability.php

Religious Observances

It is the policy of the University of Detroit Mercy to respect the faith and religious obligations of each student. Students with exams and classes that conflict with their religious observances should notify their instructor at the beginning of the semester in order to work out a mutually agreeable alternative. Please note that, regardless of whether an absence is "excused" or "unexcused," the student is responsible for all missed course content and activities.