CSE312: Web Applications

Fall 2026

Jump to current week


Syllabus

Course Description

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.

Expectations

To do well in this course you are expected to:

  • Spend a minimum of 12 hours/week on CSE312
  • Have a desire to learn about web applications
  • Be able to develop software with little/no guidance from the course staff
  • Be able to find, read, and understand technical documentation

Grading

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


Homework Assignments

There are 4 homework assignments worth 20 points each for a total of 80 points. The following apply to all homework assignments:

  • All homework assignments will be completed in Go. If you are not familiar with this language, you are strongly encouraged to review the Tour of Go
  • All homework assignments will use PostgreSQL as the database
  • No frameworks are allowed. You must implement all functionality yourself starting with a TCP socket from the net package
  • No libraries/packages/classes/functions/etc are allowed if the library implements functionality that we covered in detail during lecture or recitation (e.g. We only cover JSON at a high level, not in detail, so libraries are allowed for JSON). If you're not sure if something is allowed, please ask before the assignment is due
  • There will be no autograding for homework assignments. You will have a fair amount of flexibility in how you implement the homework assignments. The emphasis will be on you learning and applying the concepts covered in the homework assignment, and less on your specific implementation (e.g. If you deviate from the assignment, but justify that you still covered the concepts, that's cool)

The purpose of the homework assignments is to expose you to all the low-level details that make a web application function properly.



Homework Quizzes

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.



Homework Interview

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.



Team Project

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:

  • You are required to use a web framework for the project. You have full freedom in choosing your framework, language, and database for this project
  • You may use any libraries/packages/classes/functions/etc you'd like

The purpose of the project is to simulate how you'll actually build a web application in a real-world setting.



Recitation Activities

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.



Lecture Activities

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.



Final Exam

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.

Readings

There is no textbook for this course. Links to relevant readings and tutorials will be provided in the course schedule.


Week 1: HTTP
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

Week 2: Forms and Databases
Homework 1: HTTP
Recitation: Yes Recitation
Monday
August 31

HTTP POST, Forms, and AJAX - Slides

Wednesday
September 2

Databases and HTML Templates - Slides

Friday
September 4

CRUD and REST API - Slides

Week 3: Cookies and Docker
Recitation: Yes Recitation
Monday
September 7

No Lecture

Wednesday
September 9

Cookies - Slides

Friday
September 11

Docker and Docker Compose - Slides

Week 4: HTTP Efficiency and Concurrency
Recitation: Yes Recitation
Monday
September 14

Concurrency

Wednesday
September 16

Concurrency

Friday
September 18

Caching

Week 5: Authentication
Homework 2: Authentication
Recitation: Yes Recitation
Monday
September 21

Authentication and Secure Password Storage - Slides

Wednesday
September 23

Authentication Tokens and Sessions - Slides

Friday
September 25

XSRF

Week 6: Authentication and OAuth 2.0
Recitation: Yes Recitation
Monday
September 28

XSRF - Slides

Tuesday, September 29 @ 9:00 AM
Homework 1: Deadline
Wednesday
September 30

Homework 1 Quiz

Friday
October 2

OAuth 2.0 - Implementation Details - Slides

Week 7: Multipart Requests and Media Uploads
Homework 3: Media Uploads
Recitation: Yes Recitation
Monday
October 5

Multipart and File Uploads - Slides

Wednesday
October 7

Buffering HTTP Requests - Slides

Friday
October 9

Video Processing - Slides

Week 8: Video Processing
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

Week 9: WebSockets
Homework 4: WebSockets
Recitation: Yes Recitation
Monday
October 19

WebSocket Handshake - Slides

Wednesday
October 21

WebSocket Frames - Slides

Friday
October 23

WebSocket Buffering - Slides

Week 10: WebSocket Concurrency and WebRTC
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

Week 11: Deployment
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

Week 12: JWTs and DoS
Recitation: Yes Recitation
Monday
November 9

JSON Web Tokens (JWTs) - Slides

Tuesday, November 10 @ 9:00 AM
Homework 4: Deadline
Wednesday
November 11

Homework 4 Quiz

Friday
November 13

DoS and DDoS - Slides

Week 13: Encryption Theory
Recitation: Yes Recitation
Monday
November 16

Development

Wednesday
November 18

Encryption - Slides

Friday
November 20

HTTPS - Slides

Week 14: Fall Break
Recitation: No Recitation
Monday
November 23

No Lecture

Wednesday
November 25

No Lecture

Friday
November 27

No Lecture

Week 15: Presentations
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

Week 16: Presentations and Final Exam
Recitation: No Recitation
Monday
December 7

Presentations

Friday
December 11

Final Exam: 3:30PM - 6:30PM in Cooke 121


Website GitHub Website GitHub