Syllabus - Programming Languages for Web Applications
Getting Connected
Instructor: Robbie Hott
- Email: jrhott_at_virginia.edu
- Office: Rice 210
- Office Hours on Zoom (for now)
- Mon. 3:00-5:00pm (3-4pm prioritizing 4640)
- Fri. 12:00-2:00pm (12-1pm prioritizing 4640)
Course Meetings
Tuesday/Thursday 9:30-10:45am
- Zoom (link available on Collab under Online Meetings) until Feb 4, 2022
- Rice 130 after Feb 4, 2022
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, Typescript, 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
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
- Weekly Quizzes (10%): 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.
- Homework Assignments (30%): 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, but no office hours will be provided after the deadline. We will drop the lowest grade, except homework 8 (Angular).
- 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,” “most unique project,” “coolest project,” and “coolest presentation.” Sprints must be turned in by 11pm 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.
- 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
Any in-class activities are intended to be completed in small groups; collaboration is highly encouraged, even if you complete them outside of class. 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
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.
- 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
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:
- 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 following University COVID-19 regulations or being mindful of others
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:
- Power-based personal violence will not be tolerated.
- Everyone has a responsibility to do their part to maintain a safe community on Grounds.
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.
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), ll4uu@virginia.edu
- Blake Calhoun, Director of Undergraduate Success (academic), bic4sc@virginia.edu
- Alex Hall, Assistant Dean of Students (non-academic issues), aec5d@virginia.edu
In addition to having an Assistant Dean of Students embedded in Engineering, we are also fortunate to have two CAPS counsellors embedded in our School. You may schedule time with Elizabeth Ramirez-Weaver or Katie Fowler through Student Health (https://www.studenthealth.virginia.edu/getting-started-caps). 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.
Finally, the Center for Diversity in Engineering facilitates free tutoring during the academic year, helps students locate internships and research opportunities, and connects students with the many organizations on Grounds that provide information and support. The center also engages with student organizations, particularly those serving students who are traditionally underrepresented in engineering.
Support for Your Career Development
Your career development path may take you beyond the confines of UVA. Perhaps you applied for an internship and your interview is taking place in-person across the country. Maybe you submitted an abstract to a national technical conference and you have been asked to present your work. These are not only necessary steps on your path but are also invaluable lessons in and of themselves. We wish to encourage and support you in travel related to your career development. To that end, if you notify us at least one-week in advance of such an event, we will offer you the choice of either:
- completing assignments remotely, or
- delaying assignment, exam, or quiz dates until at least 48 hours after your return.
This offer comes with caveats: (1) Extensions will not normally be granted for a team activity when only one member is traveling. (2) The delay will not extend beyond the last day of finals for the semester.
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.
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 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.