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
- 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).
- 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).
- Studying different architectures (e.g. REST & MVC), including how they are instantiated across a range of familiar web applications and APIs.
- 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
- Sanath Angalakudati (sanath@u.northwestern.edu)
- Kieran Bondy (kieranbondy2021@u.northwestern.edu)
- Richard Lam (richardlam2024@u.northwestern.edu)
- Linus Okoth (linusokoth2023@u.northwestern.edu)
- Seoyeon Park (seoyeon@u.northwestern.edu)
- Emily Weintraub (emilyweintraub2021@u.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:
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
- Late work will be accepted (within 48 hours of the deadline) with a 20% penalty.
- No work will be accepted 48 hours after the deadline (unless you work with the Dean of Students).
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:
- Final course grades will not be rounded or curved.
- We will not be using the final exam time allocated for this class.
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:
- Do not exchange programs or program fragments in any form – on paper, via e-mail, or by other means.
- Do not copy solutions from any source, including the web or previous students.
- 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.).
- 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.