CS4640 - Programming Languages for Web Applications

NOTE: More information will be added about the course mid-January. The course is a work-in-progress this winter, so specifics may change as the semester starts.

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, lanuages, 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 other languages (and formats) in passing, 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).

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 http://studenthealth.virginia.edu/sdac.

For this course, we ask that students with special circumstances let us know as soon as possible, preferrably 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 https://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 http://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.

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.