CSCI 470


Web Science

3 Cr. (Hrs.:3 Lec.)

This course is designed to give the student an understanding of the plumbing that makes the web work. It covers basic and some advanced technologies currently being used in web based systems, and provides an overview of the technical issues surrounding the web. Students successfully completing this course will learn to employ web technologies to build high-value web applications. Prerequisite: CSCI 466 (2nd)

Course generally offered spring (2nd) semester.

Expectations:

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)

Course Outcomes:

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.