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 date 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 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
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:
https://engineering.buffalo.edu/computer-science-engineering/information-for-students/undergraduate-program/cse-undergraduate-academic-policies/cse-academic-integrity-policy.html
UB Academic Integrity Policy:
https://catalogs.buffalo.edu/content.php?catoid=11&navoid=571#preamble
In addition to the department and university policies, the following details apply to this course.
All submitted work must be of your own creation, and you must not share your submission with anyone else. If any submission is very similar to what has been submitted by another student, or can be found online, it is in violation of this courses academic integrity policy and all students will be penalized whether they were copying or sharing their submission with other students so they can copy. If two submissions are similar beyond what is likely if the students worked independently, then both students are in violation of the academic integrity policy.
All violations will result in:
It is your responsibility to understand what constitutes an academic integrity violation. If you have any question whether something you are doing is a violation or not, ask for clarification before receiving an F in the course. I will not entertain excuses after you have been caught.
Examples of acceptable behavior:
Examples of unacceptable behavior:
Any student may be challenged by the course staff to prove that they did write any code they submitted for course credit. 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 were the author of 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 you can prove that you were the author of your code (Ex. If you did write your code, but helped someone else cheat).
Homework 1: HTTP | ||
Recitation: No Recitation - Slides | ||
Monday September 1 |
No Lecture |
|
Wednesday September 3 |
HTTP POST, Forms, and AJAX - Slides |
|
Friday September 5 |
Databases and HTML Templates - Slides |
Homework 2: Authentication | ||
Recitation: Yes Recitation | ||
Monday, September 15 @ 9:00 AM Homework 1: Learning Objective Deadline |
||
Monday September 15 |
Authentication and Secure Password Storage - Slides |
|
Wednesday September 17 |
Authentication Tokens and Sessions - Slides |
|
Friday September 19 |
XSRF - Slides |
Homework 3: Media Uploads | ||
Recitation: Yes Recitation | ||
Monday, September 29 @ 9:00 AM Homework 2: Learning Objective Deadline |
||
Monday September 29 |
Multipart and File Uploads - Slides |
|
Wednesday October 1 |
Buffering HTTP Requests - Slides |
|
Friday October 3 |
Multipart and File Upload: Examples and Testing |
Recitation: No Recitation | ||
Monday, October 13 @ 9:00 AM Homework 3: Learning Objective Deadline |
||
Monday October 13 |
No Lecture |
|
Wednesday October 15 |
No Lecture |
|
Friday October 17 |
No Lecture |
Homework 4: WebSockets | ||
Recitation: Yes Recitation | ||
Monday October 20 |
WebSocket Handshake - Slides |
|
Wednesday October 22 |
WebSocket Frames - Slides |
|
Friday October 24 |
WebSocket Buffering - Slides |
Recitation: Yes Recitation | ||
Monday, October 27 @ 9:00 AM Homework 3: Application Objective Deadline |
||
Monday October 27 |
Midterm Review |
|
Wednesday October 29 |
Midterm Review |
|
Friday October 31 |
*** Midterm Exam *** |
Recitation: Yes Recitation | ||
Monday, November 17 @ 9:00 AM Homework 4: Application Objective Deadline |
||
Monday November 17 |
DoS and DDoS - Slides |
|
Wednesday November 19 |
JSON Web Tokens (JWTs) |
|
Friday November 21 |
JWT Examples |
Recitation: No Recitation | ||
Monday, November 24 @ 9:00 AM Homework 5: Learning Objective Deadline |
||
Monday November 24 |
No Lecture |
|
Wednesday November 26 |
No Lecture |
|
Friday November 28 |
No Lecture |
Recitation: Yes Recitation | ||
Monday, December 1 @ 9:00 AM Homework 5: Application Objective Deadline |
||
Monday December 1 |
Architecture Decisions - Slides |
|
Wednesday December 3 |
Deployment |
|
Friday December 5 |
Deployment |
Recitation: No Recitation | ||
Monday December 8 |
No Lecture |
|
Friday December 12 |
Final Exam: 3:30PM - 6:30PM in Davis 101 |