INFO 2310: Interactive Web Development
Welcome!
Instructor: Dr. Kyle Harms (he/him)
Course Website: https://infosci.cornell.edu/courses/info2310/2026sp/
Agenda
- About this course.
- Course reflection + motivations discussion.
- Course structure and policies.
- Dynamic websites + Single-Page Applications (SPA).
- Homework.
Welcome!
Diversity, inclusion, and belonging are all core values of this course.
Because a sense of belonging can also affect students’ mental health and wellness, I want you to know that all participants in this course belong here and deserve to be treated with respect.
I am here to help you learn. Don't be embarrassed to ask for help -- it's my job.
INFO 2310:
Interactive Web Development
Primary Course Objective
Design and build interactive single-page web applications using client-side rendering.
Development Stack: MERN
- MongoDB - NoSQL database
- Express.js - back-end web framework
- React - front-end web library
- Node.js - server-side JavaScript runtime
Course Objectives
- Design usable and accessible client-side rendered components for interactive single-page web applications.
- Communicate between client and server side code via HTTP requests and responses.
- Store and retrieve web content in a document database.
- Design and implement usable RESTful APIs.
- Troubleshoot programming problems independently using reference documentation, debuggers, and generative AI.
Course Objectives
- Utilize generative AI tools effectively as a coding partner to assist in development.
- Gain experience with developer best practices, like version control using Git and authoring documentation using Markdown.
- Demonstrate a high standard of professionalism.
Disclaimer: Not covered in this course
- Server-side Rendering
- Routing / URL Design / Redirection
- Web Forms / Form Design / Form Validation
- Accounts / Authentication / Login / Logout
- Relational Databases and SQL
Courses: INFO 2300: Server-Side Web Development
Prerequisites
Prerequisites are not optional.
- INFO 1300
- CS 1110 or CS 1112
You will be dropped if you do not satisfy the prerequisites.
Activity: Motivation Reflection
Take a moment on reflect on the following questions:
- Why are you here?
- What do you want to get out of this course?
- What are your expectations for this course?
Complete the handout.
Activity: Discussion
Pair up with a peer or two (or three...)
Discuss the following:
- Introduce yourself and share contact information (if you want).
- Why are you here?
- What do you hope to get out of this course?
- What are your expectations for this course?
Discussion:
Getting the Most from this Course
- What skills/experience do employers expect from you?
- How will this course provide that experience?
- How can generative AI help you meet these expectations?
- How might generative AI prevent you from meeting these expectations?
Course Structure
This is a project-oriented class with exams.
- 2 exams during class + 1 cumulative final exam
An assignment due every Monday:
- 3 homework assignments
- 2 projects with 4 milestones each
Every Friday during sections:
- 8 practice problem workshops (details forthcoming)
Expected Workload: ~8 hours outside class a week for a satisfactory grade (C).
Resources
Class -- (Primary Resource) In-class activities and lectures. Warning: no slides.
Your Notes -- (Primary Resource) Your notes are your study guide.
Readings -- Online resources and documentation.
Office Hours -- The instructor and TAs are available to help you. (Limited office hours available. More available upon request.)
GitHub Copilot -- Reference AI tool for coding activities/assignments. (Not to be used a substitute for the above resources.)
Syllabus
The syllabus documents everything you need to know about this course. Refer to it first, if you're not sure what to do.
By being here, you have earned the right to be held to a high standard of professionalism.
Grades
Your grade is computed using the following weighted averages:
| Component | Weight |
|---|---|
| Attendance | 0% |
| Class Preparation | 5% |
| Practice Problem Workshops | 10% |
| Homeworks | 15% |
| Project 1 | 15% |
| Project 2 | 20% |
| Exam 1 | 10% |
| Exam 2 | 10% |
| Final Exam | 15% |
Grading
- Grades are earned, not given.
- Your grade is a reflection of your mastery of the course content and your ability to apply that knowledge to the assignments.
- Because you either master a learning objective or you don't, partial credit is only provided as half credit.
Course Policies
- Email info2310@cornell.edu to privately contact us. (No undergrad TAs access.)
- We strive to respond to each email within 2 business days (Monday-Friday, excluding holidays and breaks), during business hours (Monday-Friday, 9am-4pm).
- Class attendance is required. Please arrive and be seated before class begins.
- Late work receives 0 credit without an accommodation.
- Accommodations must be arranged in advance.
Course Policies
- Email us for accommodations. The sooner, the better (per university policy, accommodations are not applied retroactively.)
- Only the instructor may clarify assignment instructions/requirements or course content.
- All assignments are graded once.
- TAs cannot "pre-grade" your work or tell you if your work is correct; TAs do not have the authority to endorse solutions, provide clarifications, or regrade your assignment.
- You are encouraged to collaborate/work with your peers in this class so long as you do your own work.
Flexibility
This course is structured to support the diverse needs of all students.
This course provides built-in accommodations:
- 3, one-time use slip day accommodations
- 1, one-time resubmission accommodation
These accommodations are specifically intended to support most student accommodation needs (e.g. disability, religious observance, Title IX, athletic participation, miliary service, medical and mental health concerns, family emergencies, late enrollment, etc.)
Accommodations
Use the existing course structure and built-in accommodations.
If you believe that your individual needs and circumstances require additional consideration, email info2310@cornell.edu and let us know how the built-in structure and accommodations are not providing the access you require.
Note that all accommodations must be arranged well in advance -- as per university policy, we are unable to retroactively apply accommodations to late assignments, etc.
Privacy
We respect your privacy.
Please keep your personal information private. You need not provide any personal information when requesting accommodations, etc.
In the interest of respecting the privacy of all students, you may not record lecture or take photographs in the classroom without the explicit permission of the instructor.
Academic Integrity
- Unless otherwise stated by the assignment, all work should be own your own.
- You are encouraged to use additional resources, like generative AI, as reference material only: study the resource so that you understand it and can use the same ideas in your code independently.
- Any non-original work will result in a 0 for the entire assignment.
Generative AI
You may use generative AI as a reference tool.
Study the response. Understand it. Use the ideas in your work independently. You'll need to understand it to do well on the exams!
ChatGPT vs. GitHub Copilot
ChatGPT is a general-purpose conversational AI.
GitHub Copilot is a coding-specific AI.
Discussion:
- Do you need to know industry/domain-specific AI tools?
- Can you get by with copy-pasting from ChatGPT?
Advise: Recent Graduate
You're getting hired because of the value you are adding.
-- Celeste Naughton (Information Science '25) on what students should know about AI and industry.
Wait-List
If you are on the wait-list or trying to enroll in this course, you should:
- act like you are enrolled
- attend class
- submit the homeworks (on time)
Accommodations are not provided for not being enrolled in the course.
A Website
A website is a collection of web pages and related content.
Static Websites (INFO 1300)
A website that is delivered to the user's web browser exactly as it is stored.
Dynamic Websites (INFO 2300 & INFO 2310)
A website that is constructed at runtime (during software execution) with content that changes depending on several factors (user, time of day, etc.)
INFO 2310: Single-Page Application
An SPA (Single-page application) is a web app implementation that loads only a single web document (i.e. HTML), and then updates the body content of that single document via JavaScript [...]
Source: https://developer.mozilla.org/en-US/docs/Glossary/SPA
Implementing Single-Page Web Applications
Development Stack: MERN
- MongoDB - NoSQL database
- Express.js - back-end web framework
- React - front-end web library
- Node.js - server-side JavaScript runtime
Big Picture: MERN
Client-Side
- Single-page (
index.html) - React client-side renders front-end via JavaScript.
- Request pieces of data from server (JSON), not entire webpages.
Server-Side
- Node.js provide a JavaScript runtime.
- Express.js is a web-server framework running on Node.js.
- Express.js receives requests from client, accesses data from MongoDB, and sends data back to client as JSON.
Why MERN?
- The entire MERN stack is written in JavaScript.
- React helps us learn to use reusable user interface components.
- Express.js helps us learn how to respond to HTTP requests.
- MongoDB is a non-relational database that supports JSON.
What's Next
- Friday Section 1/23: Office Hours (Optional)
- Due Sunday, 1/25, 11:59pm: Class Preparation
- Syllabus Quiz
- Class 2 Preparation
- Due Monday, 1/26, 11:59pm: Homework 1 (Dev Environment Setup)
See the course website for details: https://infosci.cornell.edu/courses/info2310/2026sp/