3 Cr. (Hrs.:3 Lec.)
This course examines the structure of the world wide web from a software architecture point of view and how best to engineer software applications using web technologies. The structure is also examined as the world’s largest distributed data repository of information and how to apply descriptive logic in a semantic graph framework to make inferences from this information and build ontologies. Finally, topics in cryptology are examined for how to construct secure protocols and hashes used to reduce the vulnerabilities of threat vectors in web applications. Prerequisite: CSCI 466 (2nd)
Course generally offered spring (2nd) semester.
E1. The student should be able to program fluently in a high-level programming language. (CSCI 332)
E2. The student should have a firm understanding of network protocols, TCP/IP, and the network stack. (CSCI 466)
E3. The student should be able to write network-driven software in a client-server architecture using a high-level programming language. (CSCI466)
R1. Understand and be able to use the basic resources, data formats, and protocols used in the Internet.
R2. Be able to build robust and load balanced client-server applications that makes use of web components and protocols.
R3. Understand and be able to use public/private key cryptography in an application.
R4. Understand how to manage state in a state-less protocol environment and make use of these principles in a modern web application.
R5. Explore the use of different media types with web-based applications and become familiar with MIME descriptors and file formats for the major media and data types.
R6. Explore the creation of Single-Page Web Applications; first authoring these by using low-level tools and later using a front-end application framework.
R7. Explore the creation of web-services; first authoring these by using low-level tools and later using a middle-ware application framework.
R8. Explore the creation of a data-store for managing application state through data models; first authoring these by using low-level tools and later using back-end application framework.
R9. Have designed and implemented a web application using a full-stack application development framework.