Mondays, 9:00 am – 11:40 am
Parsons 2 W 13th, Room 401
Instructor
Eric Li
lie@newschool.edu
Links
External Links
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. 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.
By the end of the semester, students should be able to:
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.
Grading, participation, attendance, academic honesty, and other CD program policies can be found here.
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.
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.
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.
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.
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.
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.
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.
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.
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.