CS396: Spring 2021

Intro to Web Development

CS396: Spring 2021

Syllabus

Term Spring, 2021
Course CS 396: Intro to Web Development
Professor Sarah Van Wart
Lecture Time M, W 2-2:50PM
Lecture Location Online

About the Course

What does it take to build a website from scratch? How do designers create beautiful and functional interfaces? How do websites send, store, and leverage different kinds of data? 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 first half of the 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. In the second half, students will apply this knowledge to a short project of their own choosing (completed individually or in pairs), where they will build a web application that utilizes the full range of concepts covered in class.

Acknowledgements

Cooper Barth, Linus Okoth, 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, MongoDB, Node.js, Heroku, Amazon S3, Web Sockets, testing frameworks like Mocha & Selenium, 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 (usability, accessibility, visual design, prototyping) 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 online.

2. Homework Assignments

You will work on individual homework assignments throughout the quarter. These assignments will all involve (sometimes substantial) JavaScript coding and will vary in subject.

3. Weekly Labs

On Thursdays and Fridays, you will be completing labs. Some of the labs will help you install, configure, and build a ‘full stack web application.’ Other labs will involve designing, building, and testing versions of your final project.

You will sign up for a lab slot during the first week of classes.

4. Project

The quarter will culminate in an open-ended project that demonstrates your knowledge of course concepts. You will develop a ‘full stack’ web application in the domain of your choosing, This will involve identifying an appropriate system architecture, setting up required databases and servers, designing and building your own interface, and deploying to the cloud.

Course Staff

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:

45% – Homework

You will have 5 homework assignments that will each be worth roughly 10-15% of your grade.

35% – Project Work

You will also have a series of 4 project deliverables relating to your final project that will each be worth roughly 5-10% of your grade (depending on the deliverable).

20% – Labs

Your lab participation grade will be based on your engagement during labs, which includes the quality of your lab submissions and your lab attendance. You may miss one lab without a grade penalty.

Other Grading Logistics

Late Work Policy

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:

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. Working “together” and presenting variants of the same file is not acceptable. 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.
  2. Do not copy solutions from any source, including the web or previous students.
  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.

A Note on Class Recordings

The Provost’s office has asked instructors to publish the following language in the syllabus:

Class Recordings

This class or portions of this class may be recorded by the instructor for educational purposes. These recordings will be shared only with students enrolled in the course and will be deleted at the end of the Spring Quarter, 2021 course. Your instructor will communicate how you can access the recordings.

Policy On Unauthorized Student Recording of Classroom or other Academic Activities

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.

Accommodations for Students with Disabilities

Any student requesting accommodations related to a disability or other condition is required to register with AccessibleNU (847-467-5530) and provide professors with an accommodation notification from AccessibleNU, preferably within the first two weeks of class. All information will remain confidential.