Syllabus - Programming Languages for Web Applications

Getting Connected

Instructor: Robbie Hott

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 2150 (or DSA2) with a grade of C- or higher (or Covid CR). 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, PHP, SQL, JSON

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

Textbook

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 six activities: lab-style activities in class, weekly quizzes, weekly homework assignments, a semester-long project, and a final exam.

Assessments and Practice

  1. Class Activities (ungraded): Each day, we will have activities to practice our learning. While these are ungraded, they will provide experience to prepare us for homework assignments, the project, the final exam, and longer-term web development. You are encouraged to work with others on these activities and we will discuss them at the end of each lecture.
  2. Weekly Quizzes (20%): There will be weekly knowledge check quizzes for both you and I to assess our progress throughout the week. They will be short, online quizzes with multiple choice, true/false, and possibly short answer questions. Unless stated otherwise, a new quiz will be available Thursday night and must be taken by 11pm Sunday night. Weekly Quizzes are individual work, but you may use your notes. We will drop the lowest 2 quiz grades.
  3. Homework Assignments (20%): 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. Homework assignments will not be accepted late, but we will drop the lowest grade.
  4. Project (40%): 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” and “coolest project.” Sprints must be turned in by 11pm on the day they are due.
  5. Final Exam (20%): We will have a take-home final exam. It will be comprehensive, open notes, open IDE, but no collaboration. The final exam is individual work. Full details will be provided as the semester concludes.

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.

Collaborative Assignments

Class Activities are intended to be completed in small groups; collaboration is highly encouraged, even if you complete them outside of class.

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

Weekly Quizzes are intended to give quick feedback on progress throughout the course, and therefore they are individual assignments. You should not collaborate or share notes on the quizzes. However, you are encouraged to discuss them with others after the final submission deadline.

The Final Exam is an individual assignment. NO collaboration is allowed.

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, quizzes, or the final exam.

Penalties

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.

Professionalism

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:

Students can and will be penalized for unprofessional behavior.

COVID-19 Policies

In this course, we will diligently follow all University regulations in effect at that time. I also respectfully ask that we follow some additional safety precautions with regard to COVID-19, since my son is too young to get vaccinated. (He just turned 1 year old!) So to protect him and keep us a little extra safe, I will continue to wear a mask when lecturing and ask that you wear a mask as well in the classroom, too. We will interpret wearing a mask as being considerate and caring of others in this classroom, not that you’re sick.

If you’re not feeling well, for all our safety and health, please watch the virtual 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, or isolate.

COVID-19 Q&A

Q: I am worried about the virus: will I know if there is an unvaccinated students in the class?

In this message coronavirus.virginia.edu/updates/important-information-about-fall-2021, the University announced that all students who live, learn, or work in person at the University during the next academic year must be fully vaccinated before returning to Grounds unless they have obtained a medical or religious exemption from the University. Therefore, you can expect that students in your class are vaccinated. A very small number of students have received vaccination exemptions, so the likelihood that an unvaccinated student is in your class is slight. Note that you may not ask a student if they have been vaccinated as that is private health information.

Q: How will you accommodate a student who needs to isolate/quarantine?

If a student informs us that they cannot attend class in-person because they have been requested to isolate or quarantine due to possible exposure to COVID-19, we will treat you as we would any other student absent due to illness. You will have access to the recordings of the lecture, either synchronously or asynchronously. You can also continue to interact with your partner and access other online tools.

Q: What if the Professor has to isolate/quarantine (either for themselves or because of a family member)?

If Prof. Hott has to isolate or quarantine, we may have a virtual class session, recording, or guest lecture.

Q: Can I just not come to Rice 130 and just watch the lecture over Zoom or watch the recordings?

Yes, that is allowed. Just know you should continue to do any in-class activities to practice what we have learned in class. We encourage you to find a partner to work with remotely.

Q: Are office hours going to be in-person or online?

We anticipate offering a mix of in-person and online office hours. Some staff may only offer online office hours. We will make this clear on the calendar found on the course webpage.

Q: Do I have to wear a mask?

Our class will diligently follow all University regulations in effect at that time. If masks are required during a certain period, then they are absolutely required for class. If policy has changed, then we will adjust accordingly. Failure to mask if a regulation is in effect will result in reporting to UJC and a professionalism penalty for the class.

Note that some members of the staff and class will continue to mask for the entire semester for various reasons. They also may request that you remain distant (or wear a mask as a courtesy) as well. Please be kind to each other!

Additional Information

Special Circumstances: The University of Virginia strives to provide accessibility to all students. If you require an accommodation to fully access this course, please contact the Student Disability Access Center (SDAC) at (434) 243-5180 or sdac@virginia.edu. If you are unsure if you require an accommodation, or to learn more about their services, you may contact the SDAC at the number above or by visiting their website studenthealth.virginia.edu/sdac.

For this 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, visit eocr.virginia.edu/accommodations-religious-observance or contact the University’s Office for Equal Opportunity and Civil Rights (EOCR) at UVAEOCR@virginia.edu 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. To that end, it is vital that you know two values that we and the University hold as critically important:

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 – www.virginia.edu/sexualviolence.

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 what you tell 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 reviewing the information presented to determine whether further action is necessary to ensure survivor safety and the safety of the University community. If you would rather keep this information confidential, there are Confidential Employees you can talk to on Grounds (See www.virginia.edu/justreportit/confidential_resources.pdf). The worst possible situation would be for you or your friend to remain silent when there are so many here willing and able to help.

Mental Health Resources

Well-being: 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.