Course Overview
CS 396: �Introduction to Web Development
Spring, 2022
Outline
About Me
About Me (Continued)
Two Truths and a Lie
Snacks, Facts, & Questions
Shang noodles
Table 2 Stix –> Raman (Post office)?
If the projects are cumulative, how can we recover?
Chipotle
Giordanos – Chicago Special (deep dish)
McDonalds (McNuggets)
Joy Yee → Chinese place w/food and Boba.
Questions about the class
Outline
Overview of the course
First, a huge shoutout...
Cooper Barth
Linus Okoth
Cooper Barth, Linus Okoth, and Victoria Chávez have all helped design this course. I am very grateful for their contributions.
Victoria Chávez
Why should I take this course?
Why should I take this course?
Course Topics
Week 1 | Overview & web architecture | Both |
Week 2 | HTML & CSS | Front-end |
Week 3 | Web Servers with Flask | Back-end |
Week 4 | Databases | Back-end |
Week 5 | REST APIs | Front-end |
Week 6 | Intro to Client-side programming with JavaScript | Front-end |
Week 7 | JavaScript Continued | Back-end |
Week 8 | Authentication | Both |
Week 9 | Web Sockets | Front-end |
Week 10 | React | Both |
What am I going to learn? > Learning Goals
What am I going to learn? > Learning Goals
How am I going to learn all of this?
Some Caveats
Caveat #1: Being Proactive and Resourceful
In order to create a full-stack application, you are going to have to configure libraries and packages on your local computer, and reckon with potential idiosyncrasies on your laptop. Some thoughts:
Caveat #2: This course is a lot of work
This is not an “easy” technical elective, but I do think it’s a valuable one.
Caveat #3: Breadth Over Depth
Caveat #4: Working with a buddy
Outline
Labs
Lab Continued
Lab Schedule
Lab 1 | Intro to GitHub; HTML & CSS Practice |
Lab 2 | Setting Up Python & Flask |
Lab 3 | Databases with PostgreSQL |
Lab 4 | REST APIs |
Lab 5 | JavaScript Practice |
Lab 6 | Third-Party JavaScript Widgets |
Lab 7 | Configuring Amazon Cloud Services |
Lab 8 | Mini Chat App |
Lab 9 | React |
Lab 10 | TBD |
Homework
Homework Schedule
HW 1 | Photo App: HTML & CSS |
HW 2 | Photo App: Server-Side Templates with Flask |
HW 3 | Photo App: Make a REST API |
HW 4 | Photo App: Client-Side Templating with JavaScript |
HW 5 | Photo App: Authentication |
HW 6 | Photo App: React |
Late policy
Labs�Late labs will not be accepted (as solutions will be posted right away).
�Homework
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
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.
How do credits work?
FAQs regarding late credits
Q: If I get sick, does that mean that I should email Sarah and see if I can get extra late credits on top of my 7 late credits?
A: No! This is precisely what late credits are for. Please don’t try to negotiate extra late credits unless you have a serious emergency.
Q: Are late credits automatically applied?
A: No. You have to fill out the form (see the syllabus).
Q: What if I need further accommodations?
A: Further accommodations need to involve the Dean of Students and/or your academic advisor, to ensure fairness.
Course Technologies
Accommodations
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.
Mental Health
This has been a difficult 2 years for us all, and the pandemic continues to present a litany of challenges that can make it difficult to engage in academic work.
If you are struggling with mental health issues, please reach out to me, your advisor, to the Dean of Students, or to CAPS. Being proactive early on makes it easier to come up with a plan and help you to be successful.
I am a Mental Health Ally, and I can help you connect to resources on campus.
Integrity, Honesty, and Climate
This course assumes no prior web development experience. Think of this course as a way for everyone to explore various server-side and client-side technologies in a structured way. Let’s create a supportive and curious community of learners.
Academic Honesty
Stack Overflow & Online Tutorials
I want you to use Stack Overflow and online tutorials to enhance your understanding of the material. Be curious, and explore different approaches to solving problems and achieving functionality. Just make sure that:
Peer Mentors
Other Course Logistics
Outline
Server-Side Programming
Your Web Server�(any language;�listens on port 80/443)
Client-Side Programming
Web Browser�(Only HTML, CSS, & JS)
Database Server�(MongoDB, PostgreSQL, Firebase, etc.)
Third-Party Web Server�(S3, CloudFlare, etc.)
Android�(Java)
iOS�(Swift, etc.)
IoT Device�(Various)
Summary: Client-side and Server-side Functionality
Client-side: the work done by the web browser, which includes:
Server-side: the work done in “the cloud,” which includes:
What is a Framework?
Client-Side JavaScript Frameworks
What are some analogous server-side web frameworks?
There are also a ton of Server-Side web frameworks
Next Time: Web Architecture