Course Syllabus
CS55.13: Server-Side Web Development
Section 0508, Fall 2025 Course Syllabus
This syllabus is available in the following formats:
- Word document: SRJC CS55-13 0508 Fa 2025 Syllabus Final v2.docx
- PDF file: SRJC CS55-13 0508 Fa 2025 Syllabus Final v2.pdf
Instructor: Ethan Wilde (he/him/his), ewilde@santarosa.edu
Course Description
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.
Recommended Preparation: Completion of CS 10A and/or CS 50C AND Eligibility for ENGL 1A (C1000) or equivalent
Prerequisites: Course completion of CS 50A
Whether you want to become a server-side programmer, or a member of a team working on full-stack web and mobile applications, it is essential to be familiar with both client-side and server-side technology stacks commonly in use today. We will work with PHP and JavaScript on the client and server-side, using Node.js, React, and Next.js to craft full-stack applications. Databases will be introduced, including cloud-hosted solutions like Firebase as well as local server-side technologies like SQL. Students will have opportunities to create JavaScript-based full-stack applications, a headless PHP CMS-powered full-stack application, as well as a hybrid mobile application ready for distribution via mobile app storefronts such as Google Play and Apple's App Store.
Student Learning Outcomes
Students will be able to:
- Design full-stack web and mobile applications using server- and client-side technologies to support authentication, business logic, and security.
- Develop server- and client-side scripts employing databases to create robust data-driven Web and mobile applications.
At the conclusion of this course, the student should be able to:
- Develop server-side and client-side scripts for publishing on the Web.
- Employ coding best practices to create robust full-stack applications.
- Design code for validation and authentication with attention to security and performance.
- Design, implement and utilize databases to develop data-driven Web applications.
- Create an advanced project using server- and client-side scripts with databases and user authentication.
Topics and Scope:
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:
- Textbook and other assigned reading (25-60 pages per week).
- Coding assignments (7-15). All code submitted must be validated.
- 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. - Quizzes and exams (2-4).
- Discussions (5-8). Conducted in-class or online with participation from all students.
- 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.
Course Outline of Record
You may find the official course outline of record for this course at the following link: https://portal.santarosa.edu/srweb/SR_CourseOutlines.aspx?ck=CS55.13
Note: if this Canvas course website happens to be shared by multiple sections, student names and coursework may be visible to students in both sections.
Class Meetings
Fall 2025 Schedule
| Class Delivery | Day and Time | Platform |
|---|---|---|
| Online Meetings | Weeks start on Wednesdays | Canvas shell |
|
Live weekly Web conference (optional) |
Wednesdays, 1:00pm - 2:00pm | Zoom |
All class materials for each module will be released online in Canvas on Wednesdays throughout the entire semester. A live online meeting will be held on Wednesdays via Zoom. Attendance at the live web conferences is highly recommended. Every student must either attend the live web conference or watch the entire screencast recording of the web conference. To view any recorded screencasts, visit the Screencast page for any module in the Modules section.
Instructor Contact
Ethan Wilde
Email: ewilde@santarosa.edu
Phone: 707-527-4855
Fall 2025 Office Hours
August 18 – December 8, 2025
| Day | Time | Location |
|---|---|---|
| Mondays (online) | 8:00am - 2:40pm | Online: Zoom meeting ID 950-229-0128 or pre-arranged alternative via email ewilde@santarosa.edu |
» Reserve a future office hour appointment
I typically respond to emails within 48 hours, weekends excepted. I never respond on Sundays.
Course Web Site
Students will use the Canvas course web site to access all course content, for reading, assignment instructions, submitting assignments, viewing classmates' work, sharing resources, and viewing grades. The Google Chrome browser is recommended for viewing the Canvas-powered course site. Other browsers are not well-tested by the Canvas LMS developers, so problems with Canvas are more likely.
Textbooks
If you have any problems accessing the free online versions of these books, try following the steps in this announcement.
Beyond Vibe Coding (early release)
Addy Osmani
No ISBN available yet
Free eBook available via SRJC Libraries
Eloquent JavaScript (4th)
Marijn Haverbeke
978-1718504103 (ISBN 13)
Free PDF eBook available
The required textbooks are available online without cost.
If you would like a printed copy, you can locate and order books online via the SRJC Bookstore and other resellers.
Students are also required to read many original written passages from the instructor and articles written by other authors. Students are also required to watch a collection of streaming videos. All content for reading and watching is available without cost via our Canvas-based course website.
Equipment
- A personal computer, either at home, work, or on the Santa Rosa or Petaluma campuses
Required Software + Services
- Internet access
- Web browser
- Google Chrome recommended and typically used in instructor demos
- Mozilla Firefox recommended
- Cloud hosting + development services
- GitHub code repository hosting service – an account (free) is required for this Microsoft-provided service
- Vercel application hosting service – an account (free) is required for this service
- Firebase cloud-based database and hosting service – an account (free) is required for this Google-provided service
- Pantheon required for all students, starting in Week 11, for hosting headless PHP WordPress CMS-based assignments in the second half of the term – instructions will be provided for setting up your free account later in the term.
- Integrated Development Environments (IDE)
- Microsoft Visual Studio Code (Windows, Mac OS)
- Cursor (Windows, Mac OS) using free student education Pro-level account
- Firebase Studio web-based IDE development workspace
- Secure File Transfer Protocol (SFTP) software such as
- JavaScript / JSX / TypeScript code validator
- Shared JavaScript / JSX / TypeScript libraries available from a variety of developers without cost
- 2D Graphics software such as
- Adobe Photoshop, part of a Creative Cloud subscription
- Pixlr browser-based image editor
- Drawio.com browser-based drawing app
- PDF display software such as
Optional Software
The additional software listed below is often used for full-stack development.
- Cloud hosting + development services
- Replit.com IDE (Integrated Development Environment) optional for all students, starting Week 2, for coding and hosting class assignments – Replit.com will provide a text editor and file transfer support without any additional software needed
- Code editors
- Sublime Text (Windows, Mac OS, Linux)
- BBEdit (Mac OS only)
- Integrated Development Environment for making native mobile apps
- Apple Xcode (runs on Mac OS only, used to build iOS apps)
- Android Studio (user to build Android apps)
- Additional Web browsers including
- Apple Safari
- Microsoft Edge
Important Dates
Day Class Begins: Monday, August 18, 2025
(first course module begins with class meeting on August 20, 2025)
Day Class Ends: Friday, December 19, 2025
(last class meeting is on December 10, last day to submit final exam or any late work is December 19, 2025)
Last Day to Drop with refund: Sunday, August 31, 2025
Last Day to Add with instructor's approval: Sunday, September 7, 2025
Last Day to Drop without a 'W' symbol: Sunday, September 7, 2025
Last Day to Drop with a 'W' symbol: Sunday, November 16, 2025
Last Day to Opt for Pass/No Pass: Friday, December 12, 2025
Dropping the Class
If you decide to discontinue this course, it is your responsibility to officially drop it. A student may be dropped from any class when that student's absences exceed ten percent (10%) of the total hours of class time. It is strongly advised that if you need to miss more than one class/homework deadline in a row that you contact the instructor to avoid being dropped from the class.
Attendance
Students who fail to complete the requirements of the first and second class modules will be dropped by the instructor. Students must view and participate in online materials released each week in the Modules section of the course Canvas website.
Pass‐NoPass (P/NP)
You may take this class P/NP. You must decide before the deadline, and add the option online within your student portal or file the P/NP form with Admissions and Records. With a grade of C or better, you will get P.
You must file for the P/NP option by December 12, 2025. Once you decide to go for P/NP, you cannot change back to a letter grade. If you are taking this course as part of a certificate program, you can probably still take the class P/NP. Check with a counselor to be sure.
Instructor Announcements
The instructor will post announcements on the “Announcements” page in Canvas throughout the semester. Canvas notifies students according to their preferred Notification Preferences.
Late Policy
Please make a plan before the course starts to allow yourself the necessary time each week to complete the required reading, watching, online discussion posting, and assignments. The official Course Outline of Record for this three-unit semester-length course stipulates that each student is expected to complete 157.5 hours of learning for the class. This works out to 9 hours per week for each of the seventeen weeks of regular instruction along with 4.5 hours for Finals Week. If you plan accordingly, you can avoid submitting assignments late.
All assignments are due at 11:59pm Pacific time on the Tuesday corresponding to the due date. A late submission will receive a 10% penalty for each week it is late. Submissions more than two weeks late are not accepted without prior written arrangement.
Exams
There will be online midterm and final exams. The material comes from the textbooks, class lectures and supplemental materials. If any exam is missed, a zero will be recorded as the score, unless you have made prior written arrangements with me. It is your responsibility to take the exams by the due date.
Grading Policy
Click the “Grades” link in Canvas to keep track of your grades. I grade once a week and post grades and comments in the Canvas gradebook.
Grades will be assigned as follows:
|
Letter Grade |
Percentage |
Points Total |
|---|---|---|
|
A |
90% - 100% |
900 points or more |
|
B |
80% - 89% |
800 to 899 points |
|
C |
70% - 79% |
700 to 799 points |
|
D |
60% - 69% |
600 to 699 points |
|
F |
59% or lower |
599 points or less |
Grading Breakdown
|
Percent |
Points |
Grading Category |
|---|---|---|
|
62% |
620 points |
Projects + Assignments |
|
12% |
120 points |
Discussions + Participation |
|
6% |
60 points |
Quizzes |
|
10% |
100 points |
Midterm Exam |
|
10% |
100 points |
Final Exam |
|
100% |
1000 points |
1000 points possible |
Standards of Conduct
Students who register in SRJC classes are required to abide by the SRJC Student Conduct Standards. Violation of the Standards is basis for referral to the Vice President of Student Services or dismissal from class or from the College. See the Student Code of Conduct page.
Collaborating on or copying of tests or homework in whole or in part will be considered an act of academic dishonesty and result in a grade of 0 for that test or assignment, except for assignments that allow collaboration. Students are encouraged to share information and ideas, but not their work.
Generative Artificial Intelligence (AI)
Unless an assignment explicitly states otherwise, use of generative AI tools is not allowed in this course. Please do not use any generative AI tool to assist you in any homework assignment in this course that does not ask you to use such tools. In almost every case, the use of content created by generative AI tools in your homework is considered a form of plagiarism.
What's a generative AI tool? Any software that creates code or content based on large language models. These include, but are not limited to:
- Microsoft CoPilot
- Google Bard/Gemini
- Anthropic Claude
- OpenAI ChatGPT
- GitHub CoPilot
- Meta.ai
- Replit.com AI Agent or Ghostwriter
See these links on plagiarism:
I expect each student to maintain high standards of civility and respect when communicating with each other. The following rules of netiquette should be observed in all class discussions and communications:
- Be kind and respectful to others
- Use full sentences
- Avoid jargon and acronyms
- Use language that supports others
Special Needs
All students are welcome in this class. If you are a student who is currently living within a facility, please consider contacting me so we can make arrangements in case this impacts your access to course materials, equipment, software, and work.
Every effort is made to conform to accessibility standards for all instructor-created materials. Students should contact their instructor as soon as possible if they find that they cannot access any course materials. Students with disabilities who believe they need accommodations in this class are encouraged to contact Disability Resources by calling (707) 527-4278 or visit online at drd.santarosa.edu.
Student Health Services
Santa Rosa Junior College offers extensive health services to students. Visit Student Health Services online at shs.santarosa.edu or call them at (707) 527-4445.
Course Outline
| Start Date |
Canvas Module |
Topics |
|---|---|---|
| 8/20 | Week 1 | Introduction to JavaScript + GitHub |
| 8/27 | Week 2 | Introduction to Node.js + React |
| 9/3 | Week 3 | Introduction to Next.js |
| 9/10 | Week 4 | Basic Full-Stack App, Part 1 of 2 |
| 9/17 | Week 5 | Basic Full-Stack App, Part 2 of 2 |
| 9/24 | Week 6 | Introduction to Databases + Firebase |
| 10/1 | Week 7 | Data-Driven Full-Stack App, Part 1 of 3 |
| 10/8 | Week 8 | Data-Driven Full-Stack App, Part 2 of 3 |
| 10/15 | Week 9 | Data-Driven Full-Stack App, Part 3 of 3 |
| 10/22 | Week 10 | Midterm Review + Exam |
| 10/29 | Week 11 | Introduction to PHP + SQL |
| 11/5 | Week 12 | Headless CMS-Powered App, Part 1 of 3 |
| 11/12 | Week 13 | Headless CMS-Powered App, Part 2 of 3 |
| 11/19 | Week 14 | Headless CMS-Powered App, Part 3 of 3 |
| 11/26 | Week 15 | Hybrid Mobile Apps, Part 1 of 3 |
| 12/3 | Week 16 | Hybrid Mobile Apps, Part 2 of 3 |
| 12/10 | Week 17 | Hybrid Mobile Apps, Part 3 of 3 |
| 12/15 Mon - 12/19 Fri |
Week 18 | Final Exam (due 12/19) / Final Project Review (no regular class) |
Note to students: the assignments listed above will become available as modules are released in sequence each week. To view course content, go to Modules.
All of the original material found on this online course website is the property of the instructor, Ethan Wilde. My lectures and course materials, including slide presentations, online materials, tests, outlines, and similar materials, are protected by U.S. copyright law and by College policy. I am the exclusive owner of the copyright in those materials I create. You may take notes and make copies of course materials for your own use. You may also share those materials with another student who is registered and enrolled in this course. You may not reproduce, distribute or display (post/upload) lecture notes or recordings or course materials in any other way — whether or not a fee is charged — without my express written consent. You also may not allow others to do so.
© 2025 Ethan Wilde.
Course Summary:
| Date | Details | Due |
|---|---|---|