CS 130A
PHP Programming
Syllabus

1 Course Information

Instructor: Douglas Putnam
Section: 501
CRN: 37252 (Spring) : 77294 (Fall)
Time: Monday 6-9PM, Conference/office hour 9-10PM
Room: Batmale 451
Email: dputnam@ccsf.edu
Class Site http://norbert.ccsf.cc.ca.us/php
Forums http://norbert.ccsf.cc.ca.us/php/forum

2 Description and Objectives

CS 130A is an introduction to PHP, an open source scripting language used for the rapid development of database-driven web sites. This course is recommended for anyone needing to build dynamic web sites and web applications and covers the semantics and syntax of the PHP language, including discussion on the practical problems that PHP solves.

CCSF's two-part PHP sequence consists of CS 130A PHP Programming and CS 130B Advanced PHP with these objectives:

  1. Learn how to use PHP along with HTML and relational databases to build dynamic websites. This entails:
    1. Manipulating files, text, and images.
    2. Sending dynamically created email.
    3. Connecting to relational databases such as PostgreSQL, SQLite, Oracle, and MySQL.
  2. Use our PHP knowledge to build a web site with dynamically generated content. This process includes:
    1. Working with included PHP files.
    2. Using functions and libraries of PHP code.
    3. Working with images and files.
    4. Sending e-mail.
    5. Using a relational database to store and retrieve information.

4 Prerequisites and Advisories

There are no prerequisites for CS 130A, but there are some advisories.

  • CS 130A is not an introduction to programming, or to HTML and CSS.
  • We will be working with HTML continuously. If you haven't worked with HTML, work through the w3schools.com HTML tutorial.
  • To succeed in this course you need a basic knowledge of a programming concepts. You should understand fundamental concepts, such as how to use variables, arrays, hashes, conditional structures, while loops, and files.
  • Building web sites requires basic computer skills such as logging in to a computer, creating directories (folders), and files, setting directory permissions, creating and deleting files. If you do not have these skills, you will have to learn them on your own during the semester. The ACRC (Academic Computing Resource Center) on the 3rd floor of Batmale provides introductory courses on how to work with CCSF Unix and Windows networks.

5 Textbook

PHP for the Worldwide Web, 3rd Ed.
--Larry Ullman, Peachpit Press

This book is available at the CCSF bookstore and online.


PHP: The Good Parts

--Douglas Putnam, Hacking The Valley

6 Course Topics

  • PHP script setup and execution
  • Overview of PHP features and syntax
  • Data types: scalar data, arrays, numbers, strings, and resources
  • Regular expressions
  • Input/Output functions
  • Control Structures, blocks, and compound statements
  • Functions (subroutines)
  • Interfacing with the Unix system
  • Databases and PHP
  • Installing PHP on Unix and Windows

7 Course Material

All course material will be provided in class lectures, handouts, and textbooks. The class web site provides online access to all assignments and example code. You must be officially registered in CS 130A to log in to the class web site. Complete PHP reference material is freely available online at PHP.NET. The PHP.NET web site is the best source of information about PHP.

8 Assignments and Workload

Workload: Plan on spending at least three hours each week for each hour spent in class. This translates to 9 hours a week for a 3-unit course. The course will become increasingly challenging as the semester progresses. Homework in the form of 8 labs will be assigned approximately every 2 weeks. The homework is not graded, but the bi-weekly quizzes will be based on the homework assignments.

All class lab assignments will be posted on the class web site. You may write your code on any computers available to you, but your programs must ultimately run on your CCSF Hills Unix account.

9 Exams and Grading

Bi-weekly quizzes will cover the reading assignments, labs, and lectures. The midterms and final exam will cover all class material presented up to the date of the exam, including material covered in the labs, lectures, and readings. There will be no makeup exams.

Course work will be weighted as follows:

Forum participation* :  5%
8 bi-weekly quizzes   : 50%
Midterm               : 20%
Final                 : 25%
Grading breakdown
>= 90+ A- to A 
>= 80 B- to B+
>= 70 C- to C+
>= 60 D- to D+
< 60 F

12 Class Policies

I do not drop students from the course. If you decide to drop the course, you must take the necessary actions. You may drop all CCSF classes online. It is your responsibility to be aware of the strict deadlines for withdrawal.

Recommends

Dreamhost   →   our ISP

Resources

CCSF
PHP.net