Covers the fundamentals of full-stack web development and deployment with a strong emphasis on server-side code and functionality. Students will develop a full-stack web application without the use of a pre-existing web server or web framework. Topics include HTTP, APIs, AJAX, databases, encryption, authentication, sockets, privacy, and security.
To do well in this course you are expected to:
There are 5 homework assignments throughout the course. Each homework assignment will consist of:
The following apply to all homework assignments except where exceptions are explicitly stated:
There are 2 exams in the course, a midterm and final exam, whose dates are listed in the course schedule and contain the following objectives:
No electronics or outside material are allowed during the exams. It's just you, the exam, and a writing utensil.
Exams will be completed on paper and will be manually graded. The midterm will be graded out of 40 and the final out of 120 with the following points to LO/AO conversions:
| Midterm Grade | Objectives Completed |
|---|---|
| 36-40 | 4 AOs + The Exam LO |
| 32-35 | 3 AOs + The Exam LO |
| 28-31 | 2 AOs + The Exam LO |
| 24-27 | 1 AO + The Exam LO |
| 20-23 | The Exam LO |
| 0-19 | No objectives completed |
| Final Exam Grade | Objectives Completed |
|---|---|
| 108-120 | 4 AOs + The Exam LO* |
| 96-107 | 3 AOs + The Exam LO* |
| 84-95 | 2 AOs + The Exam LO* |
| 72-83 | 1 AO + The Exam LO* |
| 60-71 | The Exam LO* |
| 0-59 | No objectives completed |
* The exam LO is only completed on the final if it wasn't already earned on the midterm. If it was completed on the midterm, there's no need to complete it a second time (ie. If you did well on the midterm, and you're happy with your grade, you may skip the final exam)
The Learning Objectives of this course are, as the name implies, what you should expect to learn from taking this course. Anyone who has not completed every Learning Objective has not gained the knowledge expected when they enrolled in this course and therefore cannot be assigned a passing grade.
| Learning Objectives Completed | Grade |
|---|---|
| 6 (All 5 HW LOs + The Exam LO) | Grade depends on the number of Application Objectives completed |
| 0-5 | F |
If you have completed all 6 learning objectives, your grade will be determined by the number of application objectives you've completed. Your final letter grade will be determined as follows:
| Application Objectives Completed | Grade |
|---|---|
| 18-22 | A |
| 16-17 | A- |
| 14-15 | B+ |
| 12-13 | B |
| 10-11 | B- |
| 8-9 | C+ |
| 6-7 | C |
| 4-5 | C- |
| 0-3 | F |
You can earn application objectives to improve your grade in this course. You will have the following opportunities to complete application objectives.
There is no textbook for this course. Links to relevant readings and tutorials will be provided in the course schedule.
CSE Department Academic Integrity Policy
In addition to the department and university policies, the following apply to this course:
All violations will result in:
Examples of acceptable behavior:
Examples of unacceptable behavior:
Any student may be challenged by the course staff at any time to prove that they did create the code they submitted for course credit. They must be able to explain their code and walk through their thought process as they wrote the code. The method of proof can vary and is left for the course staff to decide. If the student fails to convince the course staff that they created all the code they submitted for course credit, they will be found in violation of this academic integrity policy. Please note that if a student is in violation of any other part of this policy, it is still a violation even if they can prove that they were the creator of their code (Ex. If they did write their code, but helped someone else cheat).
If challenged, the following excuses are not acceptable:
If you plan on cheating, plan on taking this course again.
| Recitation: No Recitation | ||
| Monday August 24 |
Course Introduction - Slides | Readable Page |
|
| Wednesday August 26 |
HTTP Request/Response - Slides | Readable Page |
|
| Friday August 28 |
HTTP - Static Files, MIME Types, and Encodings - Slides |
|
| Recitation: Yes Recitation | ||
| Monday September 14 |
Concurrency |
|
| Wednesday September 16 |
Concurrency |
|
| Friday September 18 |
Caching |
|
| Recitation: No Recitation | ||
| Monday October 12 |
No Lecture |
|
| Tuesday, October 13 @ 9:00 AM Homework 2: Deadline |
||
| Wednesday October 14 |
Homework 2 Quiz |
|
| Friday October 16 |
Video - Adaptive Bit-Rate (ABR) - Slides |
|
| Recitation: Yes Recitation | ||
| Monday October 26 |
WebSocket Concurrency |
|
| Tuesday, October 27 @ 9:00 AM Homework 3: Deadline |
||
| Wednesday October 28 |
Homework 3 Quiz |
|
| Friday October 30 |
WebRTC Details - Slides |
|
| Team Project | ||
| Recitation: Yes Recitation | ||
| Monday November 2 |
Reverse Proxy Servers - Nginx - Slides |
|
| Tuesday, November 3 @ 9:00 AM Team Formation: Deadline |
||
| Wednesday November 4 |
Deployment |
|
| Friday November 6 |
Deployment |
|
| Recitation: No Recitation | ||
| Monday November 23 |
No Lecture |
|
| Wednesday November 25 |
No Lecture |
|
| Friday November 27 |
No Lecture |
|
| Recitation: Yes Recitation | ||
| Monday November 30 |
Final Exam Review |
|
| Tuesday, December 1 @ 9:00 AM Project: Deadline |
||
| Wednesday December 2 |
Presentations |
|
| Friday December 4 |
Presentations |
|
| Recitation: No Recitation | ||
| Monday December 7 |
Presentations |
|
| Friday December 11 |
Final Exam: 3:30PM - 6:30PM in Cooke 121 |
|
Website
GitHub