/js-f23-site

Course website for PSAM3210 Fall 2023

Plugin icon - 2

Mondays, 9:00 am – 11:40 am
Parsons 2 W 13th, Room 1201

Office Hours
Tuesdays, 1–2 pm
Fridays, 4–5 pm
See Slack for location details. Will change weekly until we have a better solution in place.

Instructor
Eric Li
lie@newschool.edu

Teaching Assistant
Alex Silva
silva892@newschool.edu

Links

External Links

Description

This is a computer science class first, and a design class second. We will focus on fundamentals of computing through the lens of JavaScript and its particulars before diving into the creation of a web based application using Vue. Students will learn about computing paradigms such as objects and arrays, functions, data structures, and algorithms. We will review what a modern JS stack looks like and how to call an API, with the final project being a web app that students will design and build. This is a fast paced course and students are expected to dedicate a good amount of time outside of class to assignments from this class.

Learning Outcomes

By the end of the semester, students should be able to:

  • Understand contemporary paradigms of computer science including arrays, loops, functions, and objects
  • Know how to read documentation and learn about new technical topics
  • Proficiently read and implement JavaScript as part of their own work
  • Know how to debug code effectively
  • Use Vue to build a web-based application

Community Agreement

  • Be respectful of each others’ comfort levels with coding.
  • Be engaged and give each other meaningful feedback.
  • Create a good environment where we can help each other and feel comfortable getting through questions either in Slack or elsewhere.
  • Show up for each other in group projects.
  • Respect the class environment — if your phone rings, step out so as not to disrupt the class. If people are speaking, we give them the room — laptops closed and undivided attention.
  • Be willing to understand and be frustrated. You’re not alone in this.

Grading

Criteria %
Participation 10%
Midterm Exam 15%
Final Project 30%
Assignment 1 5%
Assignment 2 10%
Assignment 3 10%
Assignment 4 10%
Assignment 5 10%

You will be graded on correctness, code quality and style, and creativity. The assignments are structured in a way to give you practical, hands-on experience with the concepts we discuss in lecture and in class. This class will have a programming midterm exam which will evaluate your knowledge of concepts covered in class; the purpose of the exam is not meant to be a "gotcha" and I like to think that if you are paying attention in class, and doing the work, then you should be just fine.

Assignments 1 and 2 are individual assignments, whereas 3, 4 and 5 are pair assignments. Students have the option of working in pairs or alone. If students choose to work as pairs, they will submit one assignment and both students will share the same grade. Assignments will be evaluated based on correctness and code quality.

The final project will involve both design and software development. Students are expected to define a unique software that represents original thinking, sketch on and collect feedback on their designs, and finally build that software as a functioning website. They will be evaluated on completion, creativity, and quality of work. Like the latter assignments, students may again choose to work with a partner. If they do, then students will share the same grade.

Policies

Grading, participation, attendance, academic honesty, and other CD program policies can be found here.

Inclusion

My intent is to respect and give forum to a range of perspectives and backgrounds, including culture, race, gender, sexual orientation, socioeconomic status, disability, and age. In instances where I am personally not qualified to speak from a specific perspective, students are encouraged to explore this area themselves. And please let me know if there are ways that the course can better serve these goals.

Engagement

Students are expected to actively and passionately participate in this course. This means more than showing up and turning things in on time. Beyond that baseline, students should be curious, prepared, thoughtful, vocal, and intentional throughout the course. They should make us understand why they are here, and demonstrate that they care about themselves, their work, and each other.

Office hours

I will have limited availability outside of our class time, and won’t keep scheduled “office hours.” Students should not rely on me to solve specific design or technical problems. Their first resource should be themselves, then the course site and its materials, and then each other. If there are still questions—such as logistical or content ones—students can message me on Slack, and I will respond when I can. But this should never be a bottleneck; all of this works better when not done at the last minute.

This semester, we are lucky to have a teaching assistant Alex Silva to help us out. He should be seen as a resource for help, technical questions, and debugging and will hold office hours once a week. Attending these office hours is strongly encouraged as guidance on assignments will be covered in detail. However, this is not a blank check to go to him for any issues you encounter — similar to myself, you should first rely on yourself and available resources, before going to him for help.

Additional technical help

For additional specific technical instruction and questions, Parsons has dedicated CD-program tutors available to help students with HTML, CSS, and JavaScript, as well as offering general design critiques and feedback. The drop-in schedules are available in the CD@Parsons app under “Make & Remake.”

As CD-program tutors are available only a limited number of hours per week, it is advisable to start on your projects early and seek help early to avoid the usual end of project/semester rush for additional help.

Additional code help can be found via the University Learning Center (ULC) which has tutors who hold regular office hours.

Digital Design @ Parsons

Digital Design @ Parsons (DD@P) is a student club led by Graeme Mounsey and Alex, bringing together anyone interested in digital design, UX, and code. It offers lectures with professionals working with digital design and student-led workshops in a variety of topics. We meet Wednesdays from 4-6pm!

Code plagiarism

Students may find code similar to our exercises or projects elsewhere online. But the copying or adapting of any code beyond our provided course material (lectures, exercises, demos) without attribution is not allowed under any circumstances. If adapting, with attribution, students must explain the usage and demonstrate an understanding of how it works. There is zero tolerance for any sort of plagiarism—which ranges from “verbatim copying” (cutting-and-pasting code) to “thorough paraphrasing” (changing names or rearranging code). Students should also review the Academic Honesty and Integrity policies.

You have peers who have taken this course before — you are welcome to ask them for help on assignments and technical questions. However, under no circumstances are you allowed to view their code or copy their solutions. I take code plagiarism very seriously and any instances will lead to a failure in the course, as well as a referral to the program director.

A Note on ChatGPT

You may not use ChatGPT to explicitly complete any of our programming assignments — the goal of these assignments are to teach you the fundamentals of computer science and using a large language model to do the work will prevent you from actually learning any of the concepts. However, I welcome its usage as a tool for understanding concepts covered in class, as well as for your final project. I view ChatGPT like any other resource (MDN, StackOverflow, etc) — you need to learn what to ask it before it actually becomes useful.

The goal of this course is to ensure that you have a solid understanding of the fundamentals of programming. By engaging with ChatGPT or another LLM based tool, you are only doing yourself a disservice.

Pairing

On certain assignments you are allowed to pair with a partner. This is a form of programming called pair programming. If you choose to pair with a partner, you must both be present anytime the assignment is being worked on. One partner will "drive" and write the code, while the other is the "navigator" and will review the code and ask questions. You must swap roles every 30 minutes. If you decide to pair, let me know who you are partnering with over Slack prior to submitting the assignment.

Recording sessions

Screen recordings of our sessions will be made available for students to reference later. As these will include the students and their work, the recordings will be stored on Google Drive and made available only to New School email users.

Slack

We will be using Slack as our primary form of communication with each other. There are channels for general questions, as well as for each individual assignment and students are encouraged to use Slack as an open forum for communicating with each other and with myself. Students can also use the OpenSay app to anonymously ask questions.