Course Syllabus
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, 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.
Prerequisites/Corequisites: Course Completion of CS 50A
Recommended Preparation: Eligibility for ENGL 100 or ESL 100; AND Completion of CS 10A
If you are interested in becoming a full-stack web and mobile developer, or just want to master server-side development, mastery of PHP and MySQL is essential to those goals. We will work with current production versions of server-side languages – including PHP and JavaScript – together with database technologies, to become proficient in the creation of fully dynamic Web applications.
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:
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:
-
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
Class Meetings
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.
Instructor Contact
Ethan Wilde
Email: ewilde@santarosa.edu
Phone: 707-527-4855
Fall 2018 Office Hours
August 20 – December 14, 2018
Mondays (Online) | 11:00am - 2:00pm | Online: Email ewilde@santarosa.edu 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.
Textbook
PHP & MySQL: The Missing Manual (2nd)
Brett McLaughlin
978-1-449-32557-2 (ISBN 13)
Consider buying a used 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
- Google Chrome strongly recommended
-
Text editor, for Week 1 only, such as:
- TextWrangler (Mac OS only)
- Brackets (Windows, Mac OS)
- Sublime Text (Windows, Mac OS, Linux)
-
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:
- Adobe Photoshop, part of a Creative Cloud subscription
- Gimp open source application
- Pixlr browser-based image editor
-
Coding education site
- CodeCombat free account required for all students.
- PDF display software such as:
Optional Software
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:
Important Dates
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.
Attendance
For face-to-face courses, students who fail to attend the first and second class meetings will be dropped by the instructor.
Pass‐NoPass (P/NP)
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.
Late Policy
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.
Exams
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.
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:
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 |
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.
Grading Breakdown
62% |
620 points |
Projects + Assignments |
---|---|---|
12% |
120 points |
Discussions + Attendance |
6% |
60 points |
Quizzes |
10% |
100 points |
Midterm |
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. 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
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 | Assignments |
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 Quiz 1 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 Quiz 2 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 Reading: online |
12/11 | Week 17 | Version Control + Final Review / *Extra Credit: Node.js Full-Stack App |
Final Project Reading: online |
Weeks 14-17 are combined this semester due to instructor illness on 10/9 and Monday holiday respected by the Schedule of Classes. | |||
12/17 Mon |
Week 18 | No Regular Class: Final Review Only |
Final Exam 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.
Course Summary:
Date | Details | Due |
---|---|---|