Course Syllabus

CS55.13: Server-Side Web Development
Section 0508, Fall 2021 Course Syllabus

This syllabus is available in the following formats:

Instructor Photo

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 the server-side scripting languages such as PHP hypertext preprocessor scripting language. The course covers writing server-side scripts for the Web, such as PHP, procedural and object-oriented programming, Web form management, an introduction to SQL statements and databases. Advanced topics are covered including dynamic generation of content using databases, sessions, cookies, Web services, e-commerce, and authentication. Previous programming experience recommended.

Recommended Preparation: Eligibility for ENGL 100 or ESL 100; and Completion of CS 10A and/or programming experience

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:

  1. Design server-side solutions to support validation, authentication, business logic, and security.
  2. Develop server-side scripts employing SQL databases to create robust data-driven Web applications.

Upon completion of the course, students will be able to:

  1. Develop server-side scripts for publishing on the Web.
  2. Employ control structures, functions, arrays and hashes to create robust applications.
  3. Design rigorous code for validation and authentication with attention to security and performance.
  4. Write SQL commands and use a database to develop data-driven Web applications.
  5. Create an advanced project using server-side scripts and databases.

Topics and Scope:

I. Introduction

A. History of PHP
B. Limitations of Server-Side Programming
C. Dynamic Web Pages
D. PHP and HTML
E. Web Servers and Server-Side Programming
F. PHP and Databases
G. UNIX/Linux Environment
H. Business Logic

II. Data and Operations

A. Data Types (No Explicit Type Declarations)
B. Variables
C. Constants
D. Operators
E. Expressions
F. Operator Precedence

III. Conditional Statements and Control Structures

IV. Functions

A. Scope
B. Static Variables
C. Arguments
D. Recursion
E. Dynamic Function Calls
F. Exception Handling

V. Arrays and Hashes

A. Single-Dimensional Arrays
B. Indexing Arrays
C. Initializing Arrays
D. Multi-Dimensional Arrays
E. Casting Arrays
F. Hashes

VI. Classes and Objects

A. Defining a Class
B. Constructors
C. Accessing Properties and Methods
D. Static Class Members
E. Access Types
F. Binding

VII. Input/Output and Disk Access

A. HTTP Connections: Requests
B. Writing to the Browser: Responses
C. Request Methods

1. GET Method
2. POST Method

D. Passing Arrays in Forms
E. Cookies
F. File Uploads
G. Reading/Writing to Files
H. Sessions

VIII. SQL Databases

A. Introduction to SQL Databases and SQL Syntax
B. Designing and Creating a Database with Tables in SQL
C. SQL Data Types
D. SQL Metadata
E. Inserting Values into a SQL Table
F. Retrieving Data from a SQL Table
G. Deleting Data from a SQL Table

IX. Creating Dynamic Content with Server-Side Script and SQL

A. Connecting to SQL
B. Extracting Data Using server-side script
C. Populating Form Menus Using Data from SQL
D. Putting Returned Records into a Table
E. Authentication with server-side script

1. Using Sessions
2. Using HTTP Header Authentication

X. Advanced Topics

A. Web Services
B. Authentication
C. E-Commerce
D. Other Server-Side Languages

Assignments:

  1. Read approximately 25-30 pages a week from course textbook and/or instructor-provided reading materials, accompanied by self-test questions and running code examples
  2. Create and complete programming solutions (12 - 16)
  3. Regular participation in online discussion forums (6 - 14)
  4. Define and create a final Web application project that utilizes client- and server-side development to output dynamic content and process client input
  5. Quizzes (2 - 4), midterm, and final exam

Class Meetings

Fall 2021 Schedule

Class Delivery Day and Time Platform
Online Meetings  Weeks start on Thursdays Canvas shell

Live weekly Web conference (optional)
https://santarosa-edu.zoom.us/j/94295015885 

Thursdays, 11:30am - 12:30pm Zoom

All class materials for each module will be released online in Canvas on Thursdays throughout the entire semester. A weekly live meeting will be held on Thursdays, 11:30am - 12:30pm. Attendance at the live web conferences is optional but highly recommended. Every student must either attend the live web conference or watch the entire screencast recording of the web conference. Use the Zoom link above to join live only on Thursdays, 11:30am - 12:30pm. To view any weekly lecture's recorded screencast, visit the Screencast page for any week in the Modules section.

Instructor Contact

Ethan Wilde

Email: ewilde@santarosa.edu

Phone: 707-527-4855

Fall 2021 Office Hours

August 16 – December 6, 2021

Day Time Location
Mondays (online) 12:00pm - 6:20pm Online: Email ewilde@santarosa.edu or Skype ethanwilde

» 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 for 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. Internet Explorer is not recommended.

Textbook

Eloquent JavaScript Book Cover

Eloquent JavaScript (3rd)
Marijn Haverbeke
978-1593279509 (ISBN 13)
Free PDF eBook available

The required textbook is available online without cost. If you would like a printed copy, you can locate and order textbooks online via the SRJC Bookstore.

Equipment

  • A personal computer, either at home, work or on the Santa Rosa or Petaluma campuses.

Required Software + Services

  • Internet access
  • Web browser
  • Cloud hosting + development services
    • Repl.it IDE (Integrated Development Environment) required for all students, starting Week 2, for hosting class assignments. Repl.it will provide a text editor and file transfer support without any additional software needed. Complete the hosting survey to get your free account.
    • 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. 
  • Code editor such as:
  • Secure File Transfer Protocol (SFTP) software such as:
  • JavaScript code validator:
  • 2D Graphics software such as:
  • PDF display software such as:

Optional Software

The additional software listed below is often used for full-stack development.

  • Integrated Development Environment for making native mobile apps:
  • Additional Web browsers including:
    • Apple Safari (Mac OS only)
    • Microsoft Edge (Windows 10 and Mac OS)

Important Dates

Day Class Begins: Thursday, August 19, 2021

Day Class Ends: Friday, December 10, 2021

Last Day to Add without instructor's approval: Sunday, August 22, 2021

Last Day to Drop with refund: Sunday, August 29, 2021

Last Day to Add with instructor's approval: Sunday, September 5, 2021

Last Day to Drop without a 'W' symbol: Sunday, September 5, 2021

Last Day to Opt for Pass/No Pass: Friday, December 10, 2021

Last Day to Drop with a 'W' symbol: Sunday, November 14, 2021

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 10, 2021. 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 10.2 hours per week for each of the fifteen 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 Wednesday 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 zero for that test or assignment, except for assignments that allow collaboration. Students are encouraged to share information and ideas, but not their work. See these links on Plagiarism:
SRJC Writing Center Lessons on Avoiding Plagiarism
SRJC's Statement on Academic Integrity

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

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/19 Week 1 Introduction to JavaScript + GitHub
8/26 Week 2 Introduction to Node.js + React
9/2 Week 3 Introduction to Next.js
9/9 Week 4 Basic Full-Stack App, Part 1 of 2
9/16 Week 5 Basic Full-Stack App, Part 2 of 2
9/23 Week 6 Introduction to Databases + Firebase
9/30 Week 7 Data-Driven Full-Stack App, Part 1 of 3
10/7 Week 8 Data-Driven Full-Stack App, Part 2 of 3
10/14 Week 9 Data-Driven Full-Stack App, Part 3 of 3
10/21 Week 10 Midterm Review + Exam
10/28 Week 11 Introduction to PHP + SQL
11/4 Week 12 Headless CMS-Powered App, Part 1 of 3
(two weeks in duration)
11/11 No live class meeting – Veterans Day (no classes)
11/18 Week 13 Headless CMS-Powered App, Part 2 of 3
(two weeks in duration)
11/25 No live class meeting – Thanksgiving Day (no classes)
12/2 Week 14 Headless CMS-Powered App, Part 3 of 3
12/9 Week 15 Introduction to Hybrid Mobile Apps
12/13
Mon - 12/17 Fri
Week 16 Final Exam / 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.

© 2021 Ethan Wilde.

Course Summary:

Date Details Due