CS55.13: Server-Side Web Development
Section 0587, Fall 2018 Course Syllabus
This syllabus is available in the following formats:
- Word document: SRJC CS55-13 0587 Fa 2018 Syllabus Final v2.docx
- PDF file: SRJC CS55-13 0587 Fa 2018 Syllabus Final v2.pdf
Instructor: Ethan Wilde, firstname.lastname@example.org
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.
Prerequisites/Corequisites: Course Completion of CS 50A
Recommended Preparation: Eligibility for ENGL 100 or ESL 100; AND Completion of CS 10A
Student Learning Outcomes
Students will be able to:
- Design server-side solutions to support validation, authentication, business logic, and security.
- Develop server-side scripts employing SQL databases to create robust data-driven Web applications.
Upon completion of the course, students will be able to:
- Develop server-side scripts for publishing on the Web.
- Employ control structures, functions, arrays and hashes to create robust applications.
- Design rigorous code for validation and authentication with attention to security and performance.
- Write SQL commands and use a database to develop data-driven Web applications.
- Create an advanced project using server-side scripts and databases.
Topics and Scope:
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)
F. Operator Precedence
III. Conditional Statements and Control Structures
B. Static Variables
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
VI. Classes and Objects
A. Defining a Class
C. Accessing Properties and Methods
D. Static Class Members
E. Access Types
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
F. File Uploads
G. Reading/Writing to Files
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
D. Other Server-Side Languages
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
- Fourteen (14) programming solution assignments.
- Regular participation in online discussion forums.
Define and create a final Web application project that utilizes client- and server-side development to output dynamic content and process client input.
Two (2) skill demonstration quizzes, a midterm and final exam
Fall 2018 Schedule
|Tuesdays||6:00pm – 9:00pm||Lecture/Lab||Maggini 2923|
All class materials for each module will be released online in Canvas on Tuesdays throughout the entire semester.
Fall 2018 Office Hours
August 20 – December 14, 2018
|Mondays (Online)||11:00am - 2:00pm||Online: Email email@example.com or Skype ethanwilde|
|Wednesdays||11:00am - 1:00pm||Maggini 2937|
You can reserve future appointments for my office hours online by visiting http://srjc.ethan.com/reserve/.
I 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.
PHP & MySQL: The Missing Manual (2nd)
978-1-449-32557-2 (ISBN 13)
Consider buying a used copy. You can locate and order textbooks online via the SRJC Bookstore.
- A personal computer, either at home, work or on the Santa Rosa or Petaluma campuses.
Required Software + Services
- Internet access
- Google Chrome strongly recommended
- Text editor, for Week 1 only, such as:
Cloud hosting + development service
- Cloud9 IDE (Integrated Development Environment) required for all students, starting Week 2, for hosting class assignments. This service provides a complete set of browser-based tools in place of the optional software listed below. Complete the hosting survey to get your free account.
- Graphics software such as:
Coding education site
- CodeCombat free account required for all students.
- PDF display software such as:
The additional software listed below is often used for Web development. Our cloud-based IDE – Cloud9 – will provide a text editor and file transfer support without any additional software needed.
Local development environment
- MAMP installs local copies of Apache, MySQL and PHP on your personal computer.
- Additional Web browsers including:
- Mozilla Firefox
- Apple Safari (Mac OS only)
- Microsoft Edge (Windows 10 only)
- File Transfer Protocol (FTP) software such as:
Day Class Begins: Tuesday, August 21, 2018
Day Class Ends: Friday, December 21, 2018
Last Day to Add without instructor's approval: Sunday, August 26, 2018
Last Day to Drop with refund: Sunday, September 2, 2018
Last Day to Add with instructor's approval: Sunday, September 9, 2018
Last Day to Drop without a 'W' symbol: Sunday, September 9, 2018
Last Day to Opt for Pass/No Pass: Sunday, September 30, 2018
Last Day to Drop with a 'W' symbol: Sunday, November 18, 2018
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.
For face-to-face courses, students who fail to attend the first and second class meetings will be dropped by the instructor.
You may take this class P/NP. You must decide before the deadline, and add the option online with TLC 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 September 30, 2018. 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 and Q&A Forum
The instructor will post announcements on the “Instructor Announcements” page in Canvas throughout the semester. Canvas notifies students according to their preferred Notification Preferences.
All assignments are due at 11:59pm PST on the Monday 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.
There will be online midterm and final exams. The material comes from the textbook, 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.
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:
90% - 100%
900 points or more
80% - 89%
800 to 899 points
70% - 79%
700 to 799 points
60% - 69%
600 to 699 points
59% or lower
599 points or less
If taking Pass/No Pass you need at least 70% of the total class points and to complete the midterm exam and the final exam to pass the class.
Projects + Assignments
Discussions + Attendance
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. 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
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.
|8/21||Week 1||Introduction to Server-Side Development||Hosting Signup Survey
Assignment 1: Syllabus Quiz
Discussion 1: Check-in Discussion
Doing: Sign up for free CodeCombat account
|8/28||Week 2||Programming Basics, Part 1||Assignment 2: First Code
Doing: Begin CodeCombat free levels
|9/4||NO CLASS||Labor Day|
|9/11||Week 3||Programming Basics, Part 2||Assignment 3: Level Up!
Discussion 2: History of PHP
Reading: PHP & MySQL, Ch. 1
|9/18||Week 4||Getting Started with PHP||Assignment 4: A PHP Web Page
Reading: PHP & MySQL, Ch. 2
|9/25||Week 5||Web Application Design||Assignment 5: Flowcharts + App Design
Discussion 3: Algorithms
Reading: PHP & MySQL, Ch. 3
|10/2||Week 6||Getting Started with Databases||Assignment 6: Data Structure Design
Reading: PHP & MySQL, Ch. 4
|10/16||Week 7||Working with PHP + MySQL||Assignment 7: Database Driven Site
Discussion 4: Databases
Reading: PHP & MySQL, Ch. 5
|10/23||Week 8||Manage Content with PHP||Midterm Project: Mini CMS
Reading: PHP & MySQL, Chs. 6 + 7
|10/30||Week 9||Midterm Review||Midterm Exam
Discussion: Midterm Project Presentations
|11/6||Week 10||Error Handling in PHP||Assignment 8: Errors
Discussion 5: Designing for Humans
Reading: PHP & MySQL, Ch. 8
|11/13||Week 11||Rich Media Files + PHP||Assignment 9: Images
Reading: PHP & MySQL, Chs. 9-10
|11/20||Week 12||WordPress = PHP + SQL App||Assignment 10: Extending WordPress
Discussion 6: PHP-Based CMS
Reading: PHP & MySQL, Ch. 11
|11/27||Week 13||Security for Web Apps /
*Extra Credit: Intro to Node.js
|Assignment 11: Secure Pages
Reading: PHP & MySQL, Ch. 12
|12/4||Week 14||Sessions + E-Commerce /
*Extra Credit: Node.js App
|Assignment 12: Online Store
Discussion 7: E-Commerce
Reading: PHP & MySQL, Ch. 13
|12/4||Week 15||Building a Full Stack App /
*Extra Credit: Node.js App + DB
|Assignment 13: Full Stack App
Reading: PHP & MySQL, Ch. 14
|12/11||Week 16||Advanced Web App Topics /
*Extra Credit: Node.js App Revised
|Assignment 14: Advanced Topic
Discussion 8: Full-Stack Development
|12/11||Week 17||Version Control + Final Review /
*Extra Credit: Node.js Full-Stack App
|Weeks 14-17 are combined this semester due to instructor illness on 10/9 and Monday holiday respected by the Schedule of Classes.|
|Week 18||No Regular Class:
Final Review Only
Discussion: Final Project Presentations
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.
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.