Dec 26, 2024  
BC3 Academic Catalog: 2024-2025 
    
BC3 Academic Catalog: 2024-2025

COMP 254 - Server-Side Web Programming

3 Credits: (3 lecture)

Course Description
This course extends the development and management of web sites using server-side web programming languages, server-side programming languages techniques, and database integration.  

Note Spring semester only.

Prerequisite COMP 253.


Text
Duckett, J. (2020). PHP & MySQL: Server-side web development. Hoboken, NJ: Wiley. 

Objectives
The student will be able to: 

A. Describe the structure of the HTTP (HyperText Transfer Protocol) requests and responses used to request and deliver web content. 

B. Perform basic server administration tasks.  

C. Explain common security risks in server code and strategies to mitigate those risks. 

D. Describe legal and ethical responsibilities regarding data collected about users. 

E. Construct server-side code using PHP (PHP: Hypertext Processor) to process user HTTP requests and generate dynamic HTTP responses. 

F. Implement persistence of state using sessions and cookies. 

G. Validate user input. 

H. Incorporate content from database servers into dynamic web pages. 

I. Manage file uploads and downloads securely. 

J. Utilize AJAX (Asynchronous Javascript and XML (Extensible Markup Language)) to asynchronously update portions of webpages. 

Content
A. Protocols: HTTP and HTTPS (HTTP Secure). 

B. Server administration. 

C. Security by design: authentication, encryption, validation, principle of least privilege. 

D. Legal requirements and ethical issues regarding user data. 

E. PHP (PHP: Hypertext Processor) syntax including data types, operators, control structures, functions, data structures, and superglobals. 

F. Persistence of user state using sessions and cookies. 

G. Validation of form input. 

H. Database connections and processing. 

I. File management (uploads, downloads). 

J. Asynchronous webpage updates using AJAX. 

Student Evaluation
Objectives A, C, & D will be assessed using at least two written exams.  Objectives B, E, F, G, H, I, & J will be assessed using at least two written exams, two practical programming exams, and five projects that will include a final comprehensive project.