CSCI 366

Database and Web Development

Coordinator: Stephanie Schwartz

Credits: 4.0


Introduction to building database-driven web applications. Topics include data modeling, building databases, database queries, basic data management, Model View Controller design paradigm, server-side scripting, web development frameworks, web protocols, markup languages, and client-side scripting. Offered in spring.


C- or higher in CSCI 362

Sample Textbooks

Web Programming Step by Step, Marty Stepp, Jessica Miller, Victoria Kirst. Step by Step Publishing, Second Edition, 2012.
Data Management, Richard Watson. Amazon Digital Services, Sixth Edition, 2013.

Course Outcomes

At the end of this course, a successful student will be able to

  1. Compose queries to extract data from a relational database
  2. Design a data model using techniques such as entity/relationship modeling and normalization
  3. Construct a database according to a data model
  4. Demonstrate a basic knowledge of the architecture and protocols of the Internet and the World Wide Web
  5. Demonstrate an in-depth knowledge of the Model View Controller design paradigm
  6. Analyze web development frameworks with respect to the Model View Controller paradigm
  7. Use markup languages, style sheet languages, and scripting languages to implement a basic database-driven web application

Major Topics Covered

A. Design Patterns

1. Model View Controller

2. Three-tier Architecture

3. Logical independence/physical independence

B. Relational Databases and SQL

1. Single Entity

2. One-to-Many Relationships

3. Many-to-Many Relationship

4. One-to-One and Recursive Relationships

C. Data Modeling

1. Entity/Relationship Modeling

2. Normalization

3. Relational Model and Relational Algebra

D. Basics of Database Management

1. Indexing

2. Data Integrity

E. Internet/WWW

1. Protocols (TCP, HTTP)

2. Functionality of web servers and browsers

3. DNS and URLs

F. Presentation Tier

1. Separation of presentation and content

2. Markup languages (e.g. HTML)

3. Presentation (e.g. CSS)

4. Client-side Scripting (e.g. JavaScript)

5. Data Markup (e.g. XML and JSON)

6. Asynchronous Programming (e.g. AJAX)

7. Document Object Model (DOM)

G. Server-Side

1. Server-side scripting languages (e.g. PHP)

2. Interaction between presentation (e.g. HTML) and server-side scripting

3. Forms

4. Web page parameters

5. Interaction between server-side scripting and database

6. Forms

H. Maintaining State

1. Cookies

2. Sessions

Sample Laboratory Projects

  1. Write basic SQL queries
  2. Create SQL queries for tables with one-to-many relationships
  3. Create SQL queries for tables with many-to-many relationships
  4. Write SQL queries for tables with one-to-one and recursive relationships
  5. Create data models given scenarios
  6. Write CSS for a web page to match specifications
  7. Use a server-side scripting language (such as PHP) to make a web page more generic
  8. Use a server-side scripting language to process forms in a web page
  9. Write a web service 
  10. Use a client-side scripting language (such as JavaScript) to create a web page