CS396: Spring 2022

Intro to Web Development

CS396: Spring 2022

Syllabus

Course CS 396: Intro to Web Development
Term Spring, 2022
Professor Sarah Van Wart
Class Time M, W 1-1:50PM
Class Location Lutkin Hall

Learning During COVID-19

The COVID-19 pandemic is still ongoing and will present new, unexpected challenges to our class and to our community at Northwestern. I want to acknowledge that things are difficult for many of us on multiple fronts. Some thoughts:

  1. Your health and well-being is always top priority. Please communicate with me if you have something going on so that we can figure out a path forward together.
  2. There are numerous resources at Northwestern that are in place to support stuednts with extenuating circumstances (e.g. CAPS, talking to your academic advisor, talking to the dean of students, etc.). I can help you navigate these paths if you need help.

About the Course

What does it take to build a website from scratch? How do designers create web interfaces? How do websites send, store, and leverage different kinds of data? What is a "framework"? This course aims to answer these questions by giving students exposure to the technologies and strategies used by professional web developers in industry. Throughout the quarter, students will learn how to build a “full-stack” application, to be deployed on a live web server.

Students will spend the entire quarter learning about the basics of creating web applications, including building a web server and REST API, setting up a database, designing usable interfaces, and deploying it all for public use.

Weekly Topics

Note that the schedule is dynamic and subject to change.

Week Topic
Week 1 03/29/22 Tue, 03/29 Introduction & Course Logistics
03/30/22 Wed, 03/30 Intro to Web Architecture
04/01/22 Fri, 04/01 Lab 1: HTML & CSS Practice
Week 2 04/04/22 Mon, 04/04 Intro to HTML & CSS
04/06/22 Wed, 04/06 CSS Layouts (and a quick Lab 2 preview)
04/08/22 Fri, 04/08 Lab 2: Setting Up Python & Flask
Week 3 04/11/22 Mon, 04/11 Intro to Flask
04/13/22 Wed, 04/13 Intro to Databases
04/15/22 Fri, 04/15 Lab 3: Databases with PostgreSQL
Week 4 04/18/22 Mon, 04/18 Intro to HTTP & REST
04/20/22 Wed, 04/20 Building REST API Endpoints with Flask and SQLAlchemy
04/22/22 Fri, 04/22 Lab 4: Configuring Your REST API
Week 5 04/25/22 Mon, 04/25 Building an API Endpoint
04/27/22 Wed, 04/27 Intro to Design with Accessibility in Mind (with Victoria Chávez)
04/29/22 Fri, 04/29 Lab 5: REST API Endpoint Activity
Week 6 05/02/22 Mon, 05/02 Intro to JavaScript + DOM Interactions
05/04/22 Wed, 05/04 Intro to the JavaScript Language
05/06/22 Fri, 05/06 Lab 6: JavaScript Practice
Week 7 05/09/22 Mon, 05/09 Client-Side Templating & Fetch
05/11/22 Wed, 05/11 Wrapping up client-side interactions
05/13/22 Fri, 05/13 Lab 7: Fetch API Lab
Week 8 05/16/22 Mon, 05/16 Authentication & JSON Web Tokens
05/18/22 Wed, 05/18 Authentication: Integration w/Photo App
05/20/22 Fri, 05/20 Lab 8: Authentication Lab
Week 9 05/23/22 Mon, 05/23 Authentication: HW5 walkthrough
05/25/22 Wed, 05/25 Web Sockets
05/27/22 Fri, 05/27 Lab 9: Mini Chat App
Week 10 05/30/22 Mon, 05/30 Memorial Day: No live lecture; see pre-recorded lecture
06/01/22 Wed, 06/01 Course Recap; Social & Ethical Implications
06/03/22 Fri, 06/03 Lab 10: React

Acknowledgements

Cooper Barth, Linus Okoth, Victoria Chávez, and Sarah Van Wart each designed / developed different parts of this this course, including building the homeworks, labs, and figuring out the scope of the course.

Learning Goals

  1. Learning how to design and develop a simple ‘full-stack’ web application (including interacting with a database, building a web server, implementing user authentication, and designing/building a front-end client).
  2. Building proficiency with commonly-used tools and technologies related to web development (e.g. GitHub, Flask, Heroku, Web Sockets, testing frameworks, JavaScript frameworks like React, etc).
  3. Studying different architectures (e.g. REST & MVC), including how they are instantiated across a range of familiar web applications and APIs.
  4. Learning some fundamental UX/UI design principles (accessibility, implementing layouts) in the context of web development.

Course Format

1. Lectures & Labs

Lectures, which are dedicated to introducing new topics, will take place every Monday and Wednesday.

2. Homework Assignments

You will work on 6 individual homework assignments throughout the quarter. These assignments will all involve coding in a variety of different languages (e.g. HTML, CSS, JavaScript, Python, SQL, etc.) across the web stack.

3. Weekly Labs

On Wednesdays, Thursdays, and Fridays, you will be completing labs – which are designed to help you install, configure, and explore various ideas around building a ‘full stack web application.’ You will sign up for a lab slot during the first week of classes.

Course Staff

Name Email
Sanath Angalakudati sanathangalakudati2022@u.northwestern.edu
Roy Kim minjaekim2022@u.northwestern.edu
Jeff Lee jefflee2023@u.northwestern.edu
Jiahui Li jiahuili2023@u.northwestern.edu
Jonathan Liu jonathanliu2022@u.northwestern.edu
Seoyeon Park seoyeonpark2022@u.northwestern.edu
Carina Ramos carinaramos2022@u.northwestern.edu
Sophie Rollins sophierollins2023@u.northwestern.edu
Khalil Samoud khalilsamoud2022@u.northwestern.edu
Lucah Ueno lucahueno2022@u.northwestern.edu
Frank Yang frankyang2024@u.northwestern.edu
Sarah Van Wart vanwars@northwestern.edu

Office Hours

Consider office hours as an extension of the class, and we want you to rely on them to get the help you need for assignments. We expect that everyone will need to attend office hours from time to time throughout the quarter. Many students opt to go every week. Office hours will be posted on the course’s Google Calendar.

Grading

Your final grade will be assessed as follows:

80% – Homework

You will have 6 homework assignments that will each be worth roughly 10% of your grade (though some homework assigments are worth more than others).

20% – Labs

Your lab grade will be based on the quality of your lab submissions. Your two lowest lab scores will be dropped, though we strongly encourage you to complete all of the labs.

Final Grade Calculations

Final grades are assigned on a fixed scale: 93-100 is an A, 90-92.99 is an A-, 87-89.99 is a B+, etc. Some other logistics:

What if I think the grader made a mistake?

If you believe that your grader made a mistake, please fill out this regrade request form. Keep in mind that your entire assignment will be regraded, meaning that your grade could go down as a result of submitting the form.

Late Policy

Labs

NO LATE LABS WILL BE ACCEPTED (because we post solutions right away).

Homework

A late penalty will be applied to all late homework submission. The late penalty is as follows:

Days Late Penalty
up to 1 day 10% penalty
1-2 days 20% penalty
2-3 days 30% penalty
3-4 days 40% penalty
> 5 days 50% penalty

Late Credits

During COVID, we have decided to instill a system of “Late Credits.” Over the course of the quarter, you have 7 “late credits” that you can allocate across your homeworks, no questions asked. The purpose of these late credits is to give you some flexibility if you get sick or have a personal emergency, as Sarah and the course staff are having difficulty keeping track of all of the extension requests.

How do credits work?

To apply your “late credits” to an assignment, please fill out this form

A Caveat

In this course, each assignment builds on the previous one, so turning things in late can make the next assignment more stressful. We strongly encourage you to only use the late credits when you absolutely need to use them, so that you can avoid falling behind.

What if I need more support?

If you need more leniency beyond the 7 credit system because of extraordinary circumstances, please reach out to the Dean of Students and work with them to come up with a plan. Sarah cannot grant further accommodations without involvement from the student affairs people, to be fair to other students.

Policy on Academic Honesty

In the past, there have been a few unfortunate instances in which students have presented work other than their own. For the programming assignments: You are allowed (encouraged, even!) to discuss general approaches to solving problems, but all work you submit must be your own. Here are some specific guidelines to make sure you don’t cross the line:

  1. Do not exchange programs or program fragments in any form – on paper, via e-mail, or by other means – unless it is between members of your group (only if you are working on a group assignment).
  2. You are welcome to look up approaches to solving various web-related problems using the Internet (Stack Overflow, online blogs, etc). That said, if you make use of code you find on a website / resource, you must (a) understand how it works (and be able to explain it if you are asked to), and (b) cite your sources. You MAY NOT look at solutions from other students or from students who have taken this course in a previous quarter.
  3. While working with other students, it is perfectly acceptable to ‘look’ at each other’s code (perhaps while helping someone to debug), but you should NEVER be scribing (typing or writing) your own work while looking at someone else’s (on a computer screen, paper, whiteboard, etc.).
  4. Uploading materials from this course to websites that sell such content to students is prohibited by Northwestern’s academic integrity policies, and may also put you at risk for violating copyright policies in Northwestern’s Student Conduct Code.

Contact Sarah Van Wart if you have any questions about what is appropriate.

Syllabus Statements from the Provost’s Office

Below, we have also included the following statements, written by the Provost’s office:

Academic Integrity

Students in this course are required to comply with the policies found in the booklet, “Academic Integrity at Northwestern University: A Basic Guide”. All papers submitted for credit in this course must be submitted electronically unless otherwise instructed by the professor. Your written work may be tested for plagiarized content. For details regarding academic integrity at Northwestern or to download the guide, visit: https://www.northwestern.edu/provost/policies/academic-integrity/index.html.

Accessibility

Northwestern University is committed to providing the most accessible learning environment as possible for students with disabilities. Should you anticipate or experience disability-related barriers in the academic setting, please contact AccessibleNU to move forward with the university’s established accommodation process (e: accessiblenu@northwestern.edu; p: 847-467-5530). If you already have established accommodations with AccessibleNU, please let me know as soon as possible, preferably within the first two weeks of the term, so we can work together to implement your disability accommodations. Disability information, including academic accommodations, is confidential under the Family Educational Rights and Privacy Act.

COVID-19 Testing Compliance

To protect the health of our community, Northwestern University requires unvaccinated students who are in on-campus programs to be tested for COVID-19 twice per week.

Students who fail to comply with current or future COVID-19 testing protocols will be referred to the Office of Community standards to face disciplinary action, including escalation up to restriction from campus and suspension.

Prohibition of Recording of Class Sessions by Students

In this class, we will NOT be recording classes. Note from the Provost’s office:

Unauthorized student recording of classroom or other academic activities (including advising sessions or office hours) is prohibited. Unauthorized recording is unethical and may also be a violation of University policy and state law. Students requesting the use of assistive technology as an accommodation should contact AccessibleNU. Unauthorized use of classroom recordings — including distributing or posting them — is also prohibited.

Under the University’s Copyright Policy, faculty own the copyright to instructional materials — including those resources created specifically for the purposes of instruction, such as syllabi, lectures and lecture notes, and presentations. Students cannot copy, reproduce, display or distribute these materials. Students who engage in unauthorized recording, unauthorized use of a recording or unauthorized distribution of instructional materials will be referred to the appropriate University office for follow-up.

Support for Wellness and Mental Health

Northwestern University is committed to supporting the wellness of our students. Student Affairs has multiple resources to support student wellness and mental health. If you are feeling distressed or overwhelmed, please reach out for help. Students can access confidential resources through the Counseling and Psychological Services (CAPS), Religious and Spiritual Life (RSL) and the Center for Awareness, Response and Education (CARE). Additional information on all of the resources mentioned above can be found here:

COVID-19 Classroom Expectations

Students, faculty, and staff must comply with University expectations regarding appropriate classroom behavior, including those outlined below and in the COVID-19 Code of Conduct. With respect to classroom procedures, this includes:

  • Policies regarding masking and social distancing evolve as the public health situation changes. Students are responsible for understanding and complying with current masking, testing, Symptom Tracking, and social distancing requirements.
  • In some classes, masking and/or social distancing may be required as a result of an Americans with Disabilities Act (ADA) accommodation for the instructor or a student in the class even when not generally required on campus. In such cases, the instructor will notify the class.
  • No food is allowed inside classrooms. Drinks are permitted, but please keep your face covering on and use a straw.
  • Faculty may assign seats in some classes to help facilitate contact tracing in the event that a student tests positive for COVID-19. Students must sit in their assigned seats.

If a student fails to comply with the COVID-19 Code of Conduct or other University expectations related to COVID-19, the instructor may ask the student to leave the class. The instructor is asked to report the incident to the Office of Community Standards for additional follow-up.

Exceptions to Class Modality

Class sessions for this course will occur in person. Individual students will not be granted permission to attend remotely except as the result of an Americans with Disabilities Act (ADA) accommodation as determined by AccessibleNU.

Maintaining the health of the community remains our priority. If you are experiencing any symptoms of COVID do not attend class and update your Symptom Tracker application right away to connect with Northwestern’s Case Management Team for guidance on next steps. Also contact the instructor as soon as possible to arrange to complete coursework.

Students who experience a personal emergency should contact the instructor as soon as possible to arrange to complete coursework.

Should public health recommendations prevent in person class from being held on a given day, the instructor or the university will notify students.