Scripting For The Web

Fall 2020 online edition

Instructor: Lee Tusman
Pronouns: he/him
Course: CRN 64657 / MAT 3146
Office Hours: Wednesdays 10:30am - 12:30pm or by appointment

Course Description

Scripting For The Web is an upper level programming course designed to cohesively work with the web as technology, primarily through Javascript and its dynamic libraries and frameworks. We will build websites and web applications for clients and servers that use live data and interactivity as input, giving this work shape and form through code.

This course is designed to be flexible to student learning goals and interests. The Web is an evolving platform and technology. We will be covering a large array of programming interfaces, languages, frameworks and applications including HTML, CSS, Javascript, the DOM, NodeJS, Express, APIs, markdown, Bash, Linux, Git. Our goal will be to treat the web as a space for exploration and as a platform we can shape and on which to build projects that we envision.

Some of our learning will be difficult. Students will need to consistently write code and build websites and web applications multiple days a week throughout the semester in order to reinforce their learning and to complete their projects. In addition to our assignments, students are expected to do research out of class, to spend time debugging and solving coding errors and challenges, and to be bold and take charge of their learning.

This class is in Math and Computer Science, cross-listed with New Media, and we will take an expansive view of the web as medium to manipulate through scripting. In addition to our technical work we will discuss topics relating to our use of this technology such as privacy, user experience, accessible design, open source culture, and abuses of social media.

Learning Objectives

Additional Course Goals

Required Texts and Tools

University and Classroom Policies and Rules

Official Purchase College Academic Integrity Policy

The Purchase College academic integrity policy,, explicitly forbids cheating, plagiarism, and other forms of academic dishonesty. Plagiarism is the appropriation or imitation of the language, ideas, and/or thoughts of another person and the representation of them as one’s own original work. Students are responsible for familiarizing themselves with the definition of plagiarism and the acceptable methods of attribution.

Violation of any of the above may lead to formal disciplinary action and the following sanctions:

Students who have any questions or doubts about whether any activity is academically permissible should check with the instructor.

Plagiarism and cheating are taken seriously. You will be held accountable for Purchase’s Student Code of Conduct for Academic Integrity.

Class policy on Collaboration

I support collaborative learning with some important caveats.

Coding can be difficult, and struggling with the material is part of the learning process. Students are allowed to collaborate to learn from each other. Do not collaborate in order to simply find out a solution to a project. Each participant should contribute approximately equally, and what you turn in should be your own. Copying a solution from another student, even if you change a few minor things such as variable names, is not a collaboration. You may help someone learn something, but you can not tell them what to code. If you have questions about collaboration or academic integrity, get in touch with me via email, talk with me before or after class, or come to office hours.

Tutoring Support

All students at Purchase College can take advantage of our tutoring services in the Learning Center and the Einstein Corner. This semester these will be held online via Zoom. These are free, 45-minute, peer-to-peer tutoring sessions in a variety of subjects and in writing across the disciplines. I encourage you to take advantage of this service to help you excel in this class, as well as your other courses. Please visit the Learning Center and Einstein Corner websites for more information.


You will have in-class and outside of class coursework and homework in the form of code sketches and projects. All work is to be submitted on time by noon on the day of classtime. For each day late, your grade will drop a part letter grade. For most assignments, you will link to a website hosted on the internet.

Academic Accessibility

The Office of Disability Resources collaborates directly with students who identify with disabilities to create accommodation plans, including testing accommodations, in order for students to access course content and validly demonstrate learning. For students who may require accommodations, please contact the Office of Disability Resources as soon as possible: 914-251-6035, (Student Services Building, #316A),

It is my goal that this class be an accessible and welcoming experience for all students, including those with disabilities. You are welcome to talk to me at any point in the semester about course design concerns, but it is best if we can talk as soon as possible about the need for any adjustments.

Tentative nature of the syllabus

If needed, this syllabus and the course outline may (and will!) be revised to better suit the class. It is the responsibility of the students to keep up to date with any changes. Always check our class GitHub repository for the latest information. The most up-to-date syllabus will also be on the class Moodle.

Classroom Community


Don’t miss class our Zoom class on Wednesdays! We only have one of these a week!

Learning programming is a cumulative effort. More than most other courses each of our classes will build on what you have learned in previous classes. Missing class sets you back in this process. It is important that you attend every class.

Here’s my policy: Three absences will lower your grade by one letter. (i.e. an A will became a B). With each additional unexcused absences, the grade will drop an additional unit for each absence. I will take attendance at the beginning of class, often with a brief check-in quiz. If you miss the quiz or are more than 15 minutes late, that is the equivalence of an absence. If there is an emergency or otherwise extenuating circumstance that prevents you from attending class, please email me.

We will be covering critical concepts and working on code and projects in-class and you are responsible for reviewing our class site and reaching out to your peers outside of class time to catch up on what you have missed.


We will be using the online messaging and chat software Discord. You can access it through a web browser or download a standalone application. We will use it outside of our Zoom sessions. If you have a question and want help, ask in the #questions channel. For any big important news I will put official class announcements on the #announcements channel and I will also post it to Moodle or email the entire class.

You are welcome to ask and answer questions and have ongoing conversations. Please keep announcements a channel just for me to post class announcements. Please remember to be respectful and treat this as a virtual extension of the classroom.


We are all learners and educators. Your experience and participation is valid and necessary. I am not the sole source of information. You are responsible for and encouraged to be in charge of your own education. Leap forth into areas of interest. Teach and learn from others.

Requesting Help


40% weekly homework assignments (weeks 1-10)
20% Mid-semester project
20% Final Assignment (weeks 11-14)
20% Participation and attendance, and preparedness

A 93 - 100
A- 90 - 91
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 59 and below