SRJC Course Outlines

12/3/2024 9:29:50 AMCS 55.13 Course Outline as of Fall 2023

Changed Course
CATALOG INFORMATION

Discipline and Nbr:  CS 55.13Title:  SERVER-SIDE WEB DEV  
Full Title:  Server-Side Web Development
Last Reviewed:10/24/2022

UnitsCourse Hours per Week Nbr of WeeksCourse Hours Total
Maximum3.00Lecture Scheduled3.0017.5 max.Lecture Scheduled52.50
Minimum3.00Lab Scheduled06 min.Lab Scheduled0
 Contact DHR0 Contact DHR0
 Contact Total3.00 Contact Total52.50
 
 Non-contact DHR0 Non-contact DHR Total0

 Total Out of Class Hours:  105.00Total Student Learning Hours: 157.50 

Title 5 Category:  AA Degree Applicable
Grading:  Grade or P/NP
Repeatability:  00 - Two Repeats if Grade was D, F, NC, or NP
Also Listed As: 
Formerly:  CIS 58.41

Catalog Description:
Untitled document
This is an introduction to server-side Web development using open-source technologies as well as a comprehensive course in server-side scripting languages such as PHP and JavaScript. Students will design and develop object-oriented full-stack web and mobile applications, using server-side and client-side scripting languages, cloud-based database and authentication services, and open-source frameworks and libraries. Advanced topics covered include dynamic generation of content using SQL and NoSQL databases, session management, cookies, Web services, e-commerce, and the Node.js JavaScript runtime. Previous programming experience recommended.

Prerequisites/Corequisites:
Course Completion of CS 50A


Recommended Preparation:
Completion of CS 10A and/or CS 50C AND Eligibility for ENGL 1A or equivalent

Limits on Enrollment:

Schedule of Classes Information
Description: Untitled document
This is an introduction to server-side Web development using open-source technologies as well as a comprehensive course in server-side scripting languages such as PHP and JavaScript. Students will design and develop object-oriented full-stack web and mobile applications, using server-side and client-side scripting languages, cloud-based database and authentication services, and open-source frameworks and libraries. Advanced topics covered include dynamic generation of content using SQL and NoSQL databases, session management, cookies, Web services, e-commerce, and the Node.js JavaScript runtime. Previous programming experience recommended.
(Grade or P/NP)

Prerequisites:Course Completion of CS 50A
Recommended:Completion of CS 10A and/or CS 50C AND Eligibility for ENGL 1A or equivalent
Limits on Enrollment:
Transfer Credit:CSU;
Repeatability:00 - Two Repeats if Grade was D, F, NC, or NP

ARTICULATION, MAJOR, and CERTIFICATION INFORMATION

Associate Degree:Effective:Inactive:
 Area:
 
CSU GE:Transfer Area Effective:Inactive:
 
IGETC:Transfer Area Effective:Inactive:
 
CSU Transfer:TransferableEffective:Fall 2002Inactive:
 
UC Transfer:Effective:Inactive:
 
C-ID:

Certificate/Major Applicable: Both Certificate and Major Applicable



COURSE CONTENT

Student Learning Outcomes:
At the conclusion of this course, the student should be able to:
Untitled document
1. Design full-stack web and mobile applications using server- and client-side technologies to support authentication, business logic, and security.
2. Develop server- and client-side scripts employing databases to create robust data-driven Web and mobile applications.
 

Objectives: Untitled document
At the conclusion of this course, the student should be able to:
1. Develop server-side and client-side scripts for publishing on the Web.
2. Employ coding best practices to create robust full-stack applications.
3. Design code for validation and authentication with attention to security and performance.
4. Design, implement and utilize databases to develop data-driven Web applications.
5. Create an advanced project using server- and client-side scripts with databases and user authentication.

Topics and Scope
Untitled document
I. Server-Side Scripting Language Fundamentals
    A. Server-side languages (JavaScript and PHP) vs. client-side languages (JavaScript)
    B. Data types, values, and variables
    C. Operators and expressions
    D. Control structures: loops, conditionals, functions
    E. Events
    F. Data structures: objects and arrays
    G. Class-based coding patterns: constructors, properties, and methods
    H. Common objects on the server-side: Node-based JavaScript and PHP
    I. Data storage, file manipulation, and dynamic data
    J. Error-handling, debugging, and troubleshooting
    K. Asynchronous programming
    L. Web server software: HTTP connections, cookies, headers, sessions, requests, and responses
    M. Working with local and BaaS (Backend-as-a-service) databases and authentication
    N. Dynamic HTML generation
    O. History of PHP and JavaScript server-side languages
II. Database Fundamentals (SQL and NoSQL)
    A. SQL database architecture vs. NoSQL database architecture
    B. Designing SQL database tables
    C. Designing NoSQL database collections
    D. SQL and NoSQL data types
    E. Inserting data into SQL and NoSQL databases
    F. Retrieving data from SQL and NoSQL databases
    G. Updating data in SQL and NoSQL databases
    H. Deleting data in SQL and NoSQL databases
    I. Securing SQL and NoSQL databases
III. Backend-as-a-Service (BaaS) Fundamentals
    A. Service account setup, security, and management
    B. Shared secrets and application authentication
    C. Database hosting, replication, and management
    D. User authentication services
    E. E-commerce services
VI. Headless Content Management System (CMS) Fundamentals
    A. Introduction to Web content management systems such as WordPress
    B. Web CMS database model and management
    C. Dynamic application data delivery via means such as JSON
V. Client-Side Application Fundamentals
    A. Model-View-Controller (MVC) coding pattern
    B. User interface design and implementation
    C. Reactive client-side libraries such as React
    D. Client-side components, hooks, and JSX
    E. Progressive web applications
    F. Native vs. hybrid mobile applications
    G. Hybrid application frameworks
VI. Full-Stack Application Fundamentals
    A. Full-stack libraries such as Next.js
    B. Full-stack application architecture and rendering
    C. User data validation and security
    D. Client-side vs. server-side code execution
    E. Automated code testing and unit tests
VII. Professional Practices
    A. Advanced version control with git
    B. Shared code management using code hosting platforms for collaboration and version control, such as GitHub
    C. Setting up and working with build systems
    D. Application requirements and business logic
    E. Application deployment and hosting

Assignments:
Untitled document
1. Textbook and other assigned reading (25-60 pages per week).
2. Coding assignments (7-15). All code submitted must be validated.
3. Application projects (1-3). Each project must include:
    A. Custom JavaScript or PHP coding.
    B. Client input processing and server-side dynamic output.
    C. Fully validated and tested code.
4. Quizzes and exams (2-4).
5. Discussions (5-8). Conducted in-class or online with participation from all students.
6. Project presentations and peer feedback (1-3). Each student must present their project to classmates, either online or in-class, and provide feedback to at least two peers. May be ungraded.

Methods of Evaluation/Basis of Grade.
Writing: Assessment tools that demonstrate writing skill and/or require students to select, organize and explain ideas in writing.Writing
0 - 20%
Project presentations and peer feedback
This is a degree applicable course but assessment tools based on writing are not included because problem solving assessments and skill demonstrations are more appropriate for this course.
Problem solving: Assessment tools, other than exams, that demonstrate competence in computational or non-computational problem solving skills.Problem Solving
30 - 60%
Coding assignments
Skill Demonstrations: All skill-based and physical demonstrations used for assessment purposes including skill performance exams.Skill Demonstrations
10 - 30%
Application projects
Exams: All forms of formal testing, other than skill performance exams.Exams
20 - 40%
Quizzes and exams
Other: Includes any assessment tools that do not logically fit into the above categories.Other Category
10 - 20%
Participation in discussions


Representative Textbooks and Materials:
Untitled document
Web Development with Node and Express. 2nd ed. Brown, Ethan. O'Reilly Media. 2019.
Learning React. 2nd ed. Banks, Alex and Porcello, Eve. O'Reilly Media. 2020.
Real World Next.js. Riva, Michelle. Packt. 2022.
Learning PHP, MySQL & JavaScript. 6th ed. Nixon, Robin. O'Reilly Media. 2021.
Instructor prepared materials

Print PDF