Version: 2021sp

Syllabus

Trends in Modern Web Development#

Learn to build and deploy scalable, modern full-stack web applications using best practices in industry's most used tech stacks.

By Cornell DTI. Read our article about the first run of the course on Medium!

COVID-19 Restrictions#

Due to COVID-19, Trends in Web Development will be a completely online course this semester. Lectures will be held on Thursdays at 4:30 - 5:30 PM ET (Ithaca time) on Zoom, beginning on February 25th. If you are unable to make this time, the lectures will be recorded and posted on the course website the following day along with slides and lecture notes. Synchronous attendance is not required (but we still hope to see some of you if you can make it!). Attendance credit will be awarded based on short weekly quizzes found in lecture videos.

Course Application#

Apply here by February 18th at 11:59 PM ET, a week before the course starts. It includes a general information questionnaire so we have the information necessary for enrollment, as well as a pretest.

We will be distributing enrollment/permission pins soon after the application period closes. The course number (not permission number) is 16062.

Introduction#

This class will teach students about modern web development technologies, practices, and industry standards to better equip them for academic work, research, interviews, internships, and full-time employment. By the end of this course, you will gain key experience in designing systems on both the frontend and backend using today's popularly applied technologies, including TypeScript, React, Firebase, and more.

When are office hours?#

Office hours will start Friday, March 5. Come by if you have any questions about homework, lecture material, etc.

Sam: Monday 4:00-5:00pm Zoom Link

Peter: Tuesday 3:00-4:00pm Zoom Link

Jessica: Thursday 2:00-3:00pm Zoom Link

Tony: Thursday 3:00-4:00pm Zoom Link

Enoch: Thursday 5:30-6:30pm Zoom Link

Jason: Friday 10:00-11:00am Zoom Link

Becky: Friday 1:00-2:00pm Zoom Link

If you are unable to make any of those office hours times, you can ask questions on Piazza or get in touch with Becky or Peter.

Is there a lecture schedule?#

Lectures will begin on February 25th, 2021. Here is a tentative schedule for the topics that will be covered (subject to change). We are holding the last lecture on 4/29, well before finals week. Also, note that none of these classes will be affected by the wellness days.

Lecture 1: Syllabus, JavaScript + Intro to TypeScript and Node.js

Lecture 2: More on Node, HTTP Methods, Express Routes

Lecture 3: NoSQL Databases (Firebase)

Lecture 4: Modern JS (ES6+) and Functional Programming in JavaScript / TypeScript

Lecture 5: React (Components, Tooling, and JSX)

Lecture 6: React (Conditional Rendering and Lifting State Up)

Lecture 7: React (Hooks and Best Practices)

Lecture 8: Connecting the Frontend + Backend (Data Fetching) and Yarn Workspaces

Lecture 9: Deployment, Authentication, and Security

Lecture 10: Student Choice!

Where are assignments released and submitted?#

Assignments will be released on here every Thursday. Every assignment is due right before class of the following week at 3:59pm unless otherwise stated. You will have 6 slip days total to use on the assignments, but for each assignment, you may only use up to 2 slip days. Use these judiciously because we will not be handling extensions outside of slip days.

Assignments must be submitted on CMS. We will not take submissions emailed to us. If you are not on the CMS please email Peter (plw53@cornell.edu) or Becky (bh456@cornell.edu)

What will be taught?#

By the end of the course, students will be have a much more in-depth understanding of JavaScript as it pertains to many common software libraries used in web development. These libraries include (but are not limited to) React, Express, Node.js, Yarn / npm, Express, and Firebase. The exact technologies can shift from semester to semester as demands from students, and in the industry, evolve and change. What is in demand now may not be desired in two years from now. The primary technologies that this class is powered by can shift from semester to semester to reflect what employers are looking for.

Throughout this course, students will work as individuals and in groups to apply these skills to projects. These are both skills that are extremely important to employers: being able to function independently on assigned tasks, and being able to collaborate with different people on a wide variety of tasks. The idea is to closely resemble milestones and checkpoints in project development, which occur with one to many people.

What are the prerequisites?#

This course will be covering both client-facing and server-side technologies. CS 1110 or equivalent programming experience is a pre-requisite.

Please complete the pre-assessment here. It should take less than an hour! This is not meant as a test, but rather a way of ensuring that you are familiar with the foundational material in the course. Upload your submissions as a zip to your application at https://bit.ly/web-dev-sp21. This preassessment is mandatory; those who do not submit it will not be admitted in the course.

When is it?#

Thursdays at 4:30 - 5:30 PM ET beginning February 25th.

Where does it meet?#

Zoom

What is the expected workload?#

Students should expect to work anywhere from 5-6 hours per week in this course.

What software will be supported in the course?#

You are free to use whichever text editor or programming IDE of your choice. However, we can't guarantee that course staff will be able to directly help you with problems that relate to your editor or IDE.

How many credits is it?#

Two credits S/U, although students are allowed to audit this course for 0 credits.

What's the grading policy?#

Attendance - 20% (based on weekly lecture quizzes, can miss 1 of 10 without penalty)

Filling out Feedback - 10%

Final project - 20%

Assignments - 50%

Keep in mind that you only need a C- (70) or higher to pass. If you ever feel that you are falling behind, please feel free to talk to us and we will try our best to find a solution. You can reach us at plw53@cornell.edu or bh456@cornell.edu.

Who should I contact with questions?#

Email Peter (plw53@cornell.edu) or Becky (bh456@cornell.edu).

Policies#

Academic Integrity#

As a programming course, you may find yourself in a position to copy or appropriate code that someone else has written. Please cite any code or media that you do not have direct authorship of on any assignments submitted to the course. Code should receive a citation to the original author as a comment in your source code, while media citations (images, videos) should be visible on the page that they appear.

Accessibility#

We seek to make this class as inclusive as possible for all students. All lectures will be video recorded for instructor use only. If you have accommodations with Student Disability Services and require access to these recordings, or any other class accommodations, please speak to an instructor before the first lecture and we will work with you to make arrangements as necessary.