The web has become a large and complex area for application development. Access to an abundance of open source languages, libraries, and frameworks has led to the quick and easy construction of a variety of applications with several moving parts working in coordination to present to the user the illusion of a single program. In reality, web applications are extremely difficult to get right. They involve a large collection of coordinated services, multiple databases, complicated user interfaces, security and performance issues, and ever changing 3rd party services, spread across physical and virtual machines. These complications are further stressed by the large number of concurrent users that access these applications every second. This course will investigate several well known web-based applications and the technology and software architecture used to scale these applications. We will also study a specific topic related to scalability in software design in the context of web application architecture.
COMPSCI 326 Web Programming is required to take this course.
It is recommended to have (COMPSCI 220 Programming Methodology and COMPSCI 230 Computer Systems Principles) or 377 Operating Systems, however, this is not required but it will make your experience more rich. (e.g., background in JavaScript, basic security, network protocols, processes, client/server architecture, and general operating systems concepts)
This course counts as a 400-level Computer Science Major elective.
This course counts as a 400-level Informatics elective.