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 1000 points available throughout the course. Your grade will be determined by the number of points you earn as follows:
| Points | Grade |
|---|---|
| 930-1000 | A |
| 900-929 | A- |
| 870-899 | B+ |
| 830-869 | B |
| 800-829 | B- |
| 770-799 | C+ |
| 730-769 | C |
| 700-729 | C- |
| 650-699 | D+ |
| 600-649 | D |
| <600 | F |
Points are available from the following assessments:
| Assessment | Points |
|---|---|
| Homework Assignments | 80 |
| Homework Quizzes | 320 |
| Homework Interview | 100 |
| Team Project | 100 |
| Recitation Activities | 100 |
| Lecture Activities | 100 |
| Final Exam | 200 |
There are 4 homework assignments worth 20 points each for a total of 80 points. The following apply to all homework assignments:
net package
The purpose of the homework assignments is to expose you to all the low-level details that make a web application function properly.
There are 4 homework quizzes worth 80 points each for a total of 320 points. Each quiz will take place the day after the corresponding homework assignment is due and will take the entire 50-minute lecture time.
Each quiz will assess the material from the corresponding homework assignment. Most of the learning in this course will take place while designing and implementing the homework assignments. These quizzes will verify that this learning has occurred.
No additional materials are allowed for these quizzes. It's you, the quiz paper, your writing utensils, and optionally a bottle of water. All other materials are prohibited.
Only university-approved reasons with documentation (e.g. illness with doctor's note) will be considered for makeup opportunities.
Each student will be interviewed 1 time during the semester. This interview is graded as a pass/fail assessment worth 100 points. The interview may occur during any scheduled class time throughout the semester (Lecture or recitation), and may include questions about any homework assignment. Interviews may start as soon as the homework 1 deadline passes. Any student not present when they are called for an interview will be called 1 additional time on a different date. Any student absent again on the second date will earn a 0.
During the interview, you will be asked questions about your specific implementation of the homework assignments. If you are able to explain your code and your design decisions, you will pass the interview. The intention is for any student who did their own work on the homework assignments to easily pass the interview. It is not meant to be a rigorous assessment.
The end of the semester will consist of a team project culminating in a presentation during lecture. This project is worth 100 points total (submission and presentation) and will be completed in groups of 2-4 students. The following apply only to the team project:
The purpose of the project is to simulate how you'll actually build a web application in a real-world setting.
Each of the 12 recitations will contain an activity worth 10 points. Total points are capped at 100.
The structure of these activities will vary from recitation to recitation. In general, they will assess if you are keeping up with the material from lecture and recitation up to that point.
Most lectures will contain a lecture activity. The point value for activities may vary from lecture to lecture, but the total number of points available throughout the semester will be at least 120. Total points are capped at 100.
The structure of these activities will vary from lecture to lecture. Their simplest form will be a multiple choice question at the end of lecture related to the material covered that day.
There will be a comprehensive final exam worth 200 points at the end of the semester.
No additional materials are allowed for the final exam. It's you, the exam paper, your writing utensils, and optionally a bottle of water. All other materials are prohibited.
There is no textbook for this course. Links to relevant readings and tutorials will be provided in the course schedule.
| 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