Skip to main content Link Menu Expand (external link) Document Search Copy Copied


Getting Connected

Instructor: Robbie Hott

  • Email:
  • Office: Rice 210
  • Office Hours:
    • Mondays 11am-12pm
    • Fridays 10-11am, 2-3pm
    • By Appointment

Course Meetings


  • 12:30-1:45pm
  • Olsson 120

Attendance at class meetings and engagement in course discussion and in-class activities is anticipated. Note: Course meetings will only be recorded and posted to Panopto if >50% of students attend.

Course Overview

Course Overview: Web development is constantly changing as our use of the world wide web (WWW) has shifted from information presentation to direct customer sales (e-commerce) to enterprise applications to information gathering to mobile sites and apps. The amount and complexity of software–and the number of programming languages–has steadily been increasing. Many new technologies and frameworks have emerged everyday. Have you ever wondered what technologies, frameworks, or architectural styles you should use? How about what programming languages to be familiar with for software development for web applications? After graduation, what languages will be popular or in demand? How will you keep up with web development technologies?

In this course, we will focus on the fundamental concepts of web development and how they can be applied to develop reliable and usable web software, regardless of the technologies, languages, or frameworks. Even though we will emphasize the concepts, you will develop dynamic web software with several commonly used programming languages and technologies. Over the semester, you will work on user interface design, front end development, back end development, and web-based information retrieval and processing.

Course Description: Presents programming languages and implementations used in developing web applications. Both client and server side languages are presented as well as database languages. In addition, frameworks that enable interactive web pages are discussed as well as formatting languages. Language features and efficiencies including scoping, parameter passing, object orientation, just in time compilation and dynamic binary translation are included.

Prerequisites: CS 3140 (or CS 2150) with a grade of C- or higher. A willingness to learn and participate in a small-group project.

Languages Covered

We will discuss in detail and use the following languages (and formats): HTML, CSS, JavaScript, Typescript, PHP, SQL, JSON

We will likely mention and study other languages (and formats), including: SGML, XML, XHTML, LESS, SASS/SCSS, Markdown, JSON-LD, SPARQL, Perl, Ruby, Go

We will likely mention various frameworks, including: Laravel (PHP), Symfony (PHP), Angular (Typescript), React (JavaScript)


You do not need to purchase any textbook for this course. You are expected to read the relevant material before class meeting, as linked in the schedule. The lectures may not cover everything in the readings and will often include material not found in the readings (based on class discussion).

Measuring Learning

As we progress through the course material, we will practice and measure our learning progress through various activities: lab-style activities and short questions in class, homework assignments, a semester-long project, and two exams (midterm and final exam).

Assessments and Practice

  1. In-Class Activities (10%): We will practice writing in the languages we encounter during class, along with a few surveys and short quizzes to measure how we are progressing through the material. Since we know that life happens, we’ll automatically round up 1% of the grade in this category (up to the max) to offset any times that you may need to miss class when we have a class-only activity.
  2. Homework Assignments (18%): Homework assignments will help us further practice the concepts we cover in class, reinforce and assess your understanding of the material, and get additional feedback from course staff. Some will be completed individually, while others in small groups. Refer to the assignment description for full details. There is a 48-hour grace period (without penalty) on homework deadlines, with the following caveats:
    • No office hours will be provided after the deadline
    • Any extension requests must be submitted before the actual deadline stated in the schedule
    • Significant progress must be evidenced (and submitted to Gradescope) before the actual deadline in the syllabus
  3. Project (36%): The project is the main mechanism to help you learn web software development, practice using the languages we discuss, and apply the course concepts to build a portfolio-worthy web application. It will be split into multiple Sprints across the semester. The project will be completed with a partner. The products of each Sprint will be submitted to Gradescope and most Sprints will require you to demonstrate your work to a member of the course staff. At the end of the semester, we will demo our projects to the class and discuss design decisions; we will vote for “best usable project,” “most unique project,” “coolest project,” and “coolest presentation.” Sprints must be turned in by 11:59pm on the day they are due. Sprints will not be accepted late. Note: You may NOT use a project that you are completing (or have completed) for another course to satisfy the project requirements.
  4. Exams (36%): We will have two exams, a midterm and final exam. The exams will be closed book, written, and are individual work.

Grading Scale

We will use the standard grading scheme for this course.

Grade Lower Bound
A+ 98.0
A 93.0
A- 90.0
B+ 87.0
B 83.0
B- 80.0
C+ 77.0
C 73.0
C- 70.0
D+ 67.0
D 63.0
D- 60.0
F 0

Academic Integrity

Most of the work we will do in this class is collaborative. However, in order to maximize our learning and measure knowledge gained, we must agree to abide by a few parameters. You should never search for solutions to any assignments. You should also never use ChatGPT or other AI solutions to write your code for you. While generative AI may provide interesting web sites and solutions, the learning goals of the course include experiencing and writing code in multiple languages; avoiding the experience of writing your own code will only do a disservice to your learning.

Collaborative Assignments

Most In-Class Activities are intended to be completed in small groups; collaboration is highly encouraged unless specified by the activity. Collaboration in in-class quizzes and surveys is not allowed. You are strongly encouraged to code along with the course examples and activities.

Homework Assignments are intended to be completed individually or in small groups, depending on the assignment description. For assignments completed in small groups or pairs, the group must turn in one assignment and denote how much each team member contributed to the submission.

The Project is intended to be completed in pairs. Each pair will turn in one assignment and must denote how much each team member contributed to the submission.

Individual Assignments

The Exams are individual assignments. NO collaboration is allowed.

The Use of Generative AI

Generative artificial intelligence tools—software that creates new text, images, computer code, audio, video, and other content—have become widely available. Well-known examples include ChatGPT for text and DALL•E for images. The course policy described here governs all such tools, including those released during our semester together. You may use generative AI tools on assignments in this course only when we explicitly permit you to do so. Otherwise, you should refrain from using such tools. Even when permitted, use of generative AI should be limited to assistance and not writing your code or website for you.

If you do use generative AI tools on assignments in this class, you must properly document and credit the tools themselves. Cite each tool you used, in the form shown for a hypothetical tool:

Intelligent Sage 3, version 3.1. Accessed from

Additionally, please include a brief description of how you used the tool. Include the prompt or prompts you gave the tool. Failure to cite the use of the tool as a source is a serious violation of academic integrity.

If you choose to use generative AI tools, please remember that they are typically trained on limited datasets that may be out of date. Additionally, generative AI datasets are trained on pre-existing material, including copyrighted material; therefore, relying on a generative AI tool may result in plagiarism or copyright violations. Finally, keep in mind that the goal of generative AI tools is to produce content that seems to have been produced by a human, not to produce accurate or reliable content; therefore, relying on a generative AI tool may result in your submission of inaccurate content. It is your responsibility—not the tool’s—to assure the quality, integrity, and accuracy of work you submit in any college course.

If you use generative AI tools to complete assignments in this course, in ways that I have not explicitly authorized, we will apply the course’s policies on academic integrity appropriate to your specific case. In addition, you must be wary of unintentional plagiarism or fabrication of data. Please act with integrity, for the sake of both your personal character and your academic record.

Publishing Your Work

In this course, we’ll be generating web content and partial websites. For homework assignments and the class project, unless disallowed by the assignment’s instructions, you are allowed to post your code to GitHub or your own website. In fact, it’s encouraged! However, you may not share or post solutions to class activities or exams.


If course staff detect violations to our collaboration policy, such as cheating, plagiarism, improperly sharing, copying another solution to an assignment (including portions thereof), or other dishonest behavior and honor code infractions, they may impose any penalty up to and including a failing grade (F) in the course. This is independent of and in addition to the operations of the Honor Code.

  • 1st Offense: You will receive zero (0) points on that assessment and your final grade will be reduced by one full letter grade (e.g., B- goes down to C-)
  • 2nd Offense: Automatic F in the course


In this course, there will be a focus on working well together and learning about programming languages and web design. Students and staff are all expected to treat each other with respect. This includes, but certainly is not limited to:

  • Misuse of class platforms (Discord, Piazza, YouTube comments, etc.)
  • Disrespectful language or actions to course staff or other students
  • Promptness for all deadlines and class meetings
  • Quality work
  • Not working well with your partners
  • Collaborating with other teams
  • Not being mindful of others

Students can and will be penalized for unprofessional behavior.

COVID-19 and Illness Policies

In this course, we will diligently follow all University regulations in effect at that time. I will continue to wear a mask when lecturing and ask that you wear a mask as well in the classroom, too, as needed. We will interpret wearing a mask as being considerate and caring of others, not that you’re sick.

If you’re not feeling well, for all our safety and health, please stay home and watch the recorded lecture–whether you might think it’s actually a cold or just seasonal allergies. We will ensure that staying home does not impact your grade compared to being in person, so that you can take the time you need to get better, quarantine, and/or isolate. (If the lecture recording is not posted for that day, please reach out to course staff for access.)

For more information, see our COVID-19/Illness FAQ Section.


Bad things happen. People forget things and make mistakes. Bad days coincide with due dates. etc.

If you believe that circumstances warrant an change in deadline, a second chance, or some other accommodation in order to more accurately synchronize grade with knowledge, come talk to your professor and we’ll resolve the situation as best we can.

Special Circumstances

It is my goal to create a learning experience that is as accessible as possible. If you anticipate any issues related to the format, materials, or requirements of this course, please meet with me outside of class so we can explore potential options. Students with disabilities may also wish to work with the Student Disability Access Center (SDAC) to discuss a range of options to removing barriers in this course, including official accommodations. We are fortunate to have an SDAC advisor, Courtney MacMasters, physically located in Engineering. You may email her at to schedule an appointment. For general questions please visit the SDAC website: If you have already been approved for accommodations through SDAC, please send me your accommodation letter and meet with me so we can develop an implementation plan together.

Since we are a large course, we ask that students with special circumstances let us know as soon as possible, preferably during the first week of class.

Religious Accommodations

It is the University’s long-standing policy and practice to reasonably accommodate students so that they do not experience an adverse academic consequence when sincerely held religious beliefs or observances conflict with academic requirements.

Students who wish to request academic accommodation for a religious observance should submit their request in writing to me as far in advance as possible. If you have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the University’s Office for Equal Opportunity and Civil Rights (EOCR) at or 434-924-3200. Accommodations do not relieve you of the responsibility for completion of any part of the coursework missed as the result of a religious observance.

Safe Environment

The University of Virginia is dedicated to providing a safe and equitable learning environment for all students. If you or someone you know has been affected by power-based personal violence, more information can be found on the UVA Sexual Violence website that describes reporting options and resources available –

The same resources and options for individuals who experience sexual misconduct are available for discrimination, harassment, and retaliation.  UVA prohibits discrimination and harassment based on age, color, disability, family medical or genetic information, gender identity or expression, marital status, military status, national or ethnic origin, political affiliation, pregnancy (including childbirth and related conditions), race, religion, sex, sexual orientation, veteran status. UVA policy also prohibits retaliation for reporting such behavior.

If you witness or are aware of someone who has experienced prohibited conduct, you are encouraged to submit a report to Just Report It ( or contact EOCR, the office of Equal Opportunity and Civil Rights.

If you would prefer to disclose such conduct to a confidential resource where what you share is not reported to the University, you can turn to Counseling & Psychological Services (CAPS) and Women’s Center Counseling Staff and Confidential Advocates (for students of all genders). 

As your professor and as a person, know that I care about you and your well-being and stand ready to provide support and resources as we can. As a faculty member, I am a responsible employee, which means that I am required by University policy and federal law to report certain kinds of conduct that you report to me to the University’s Title IX Coordinator. The Title IX Coordinator’s job is to ensure that the reporting student receives the resources and support that they need, while also determining whether further action is necessary to ensure survivor safety and the safety of the University community.


If you are feeling overwhelmed, stressed, or isolated, there are many individuals here who are ready and wanting to help. The Student Health Center offers Counseling and Psychological Services (CAPS) for all UVA students. Call 434-243-5150 (or 434-972-7004 for after hours and weekend crisis assistance) to get started and schedule an appointment. If you prefer to speak anonymously and confidentially over the phone, Madison House provides a HELP Line at any hour of any day: 434-295-8255.

Support for Your Career Development

Engaging in your career development is an important part of your student experience. For example, presenting at a research conference, attending an interview for a job or internship, or participating in an extern/shadowing experience are not only necessary steps on your path but are also invaluable lessons in and of themselves. I wish to encourage and support you in activities related to your career development. To that end, please notify me at least one-week in advance of such an event to arrange for appropriate accommodations.

Student Support Team

You have many resources available to you when you experience academic or personal stresses. In addition to your professor, the School of Engineering and Applied Science offers free tutoring, and has three staff members located in Thornton Hall who you can contact to help manage academic or personal challenges. Please do not wait until the end of the semester to ask for help!


  • Lisa Lampe, Director of Undergraduate Education (academic),
  • Director of Student Success (search underway)
  • Courtney MacMasters, Accessibility Specialist,

Additionally, free tutoring is available for most classes.

Health and Wellbeing

  • Kelly Garrett, Assistant Dean of Students, Student Safety and Support
  • Elizabeth Ramirez-Weaver, CAPS counselor
  • Katie Fowler, CAPS counselor

You may schedule time with the CAPS counselors through Student Health ( When scheduling, be sure to specify that you are an Engineering student. You are also urged to use TimelyCare for either scheduled or on-demand 24/7 mental health care.

Community and Identity

The Center for Diversity in Engineering (CDE) is a student space dedicated to advocating for underrepresented groups in STEM. It exists to connect students with the academic, financial, health, and community resources they need to thrive both at UVA and in the world.  The CDE includes an open study area, event space, and staff members on site. Through this space, we affirm and empower equitable participation toward intercultural fluency and provide the resources necessary for students to be successful during their academic journey and future careers.

Additional Notes

Syllabus Note: This syllabus is to be considered a reference document that may be adjusted throughout the course of the semester to address necessary changes. This syllabus can be changed at any time without notification; it is up to the student to monitor the website for news of any changes. Final authority on any decision in this course rests with the professor, not with this document.

Research: Your class work and related data might be used for research purposes. For example, we may use anonymized scores from student assignments to compare to other student performance data. Any student who wishes to opt out can contact the instructor or TA to do so after final grades have been issued. This has no impact on your grade in any manner.