| On This Page |
|
|
| Instructor Information |
| Name |
Ed Parrish |
| Email |
See instructor's homepage. |
| Office location |
See here. |
| Office hours |
See here. |
| Phone |
See here. |
| Contacting Instructor |
If you have any questions about the course or need assistance, please contact me during office hours in person or by telephone, or at any time by e-mail. |
^ top |
| Course Information |
| Course title |
Intro. to Programming Database-Driven Web Sites With PHP |
| Course Number |
CIS 165PH |
| Section Number |
45934 |
| Course description |
Teaches programming of database-driven, web-based applications (such as an eCommerce website) that require online data storage and retrieval and a high degree of user/website interactivity. The web programming environment used is PHP accessing a MySQL database. May be offered in a Distance-Learning Format |
| Course dates |
02/06/06 through 06/03/06 |
| Location |
Room 516 (map) |
| Meeting day(s) |
Wednesday |
| Meeting time(s) |
6:00PM to 10:15PM |
| Prerequisite(s) |
DM 160 or experience in the use of basic HTML; CIS-10 or CS-11 or CS-12J or the equivalent. Note that CS-11 or CS-12J may be taken concurrently.
|
| Online option |
Students can elect to take this course "online". This means that you read the lecture notes, which are posted online, rather than attending class. You are still responsible for completing all the work by the scheduled times. Note that attendance is still required at two meetings: the first meeting (for orientation) and the final exam. If you are interested in this option, please contact the instructor for more information. |
^ top |
| Course Objectives |
| |
- Describe the communication that occurs among the Browser, Internet, Web server, and database server.
- Differentiate between dynamic and static content.
- Compare and contrast client-side scripting with server-side scripting.
- Explain the relationship of HTML and web scripts.
- Justify the selection of web server for a particular application.
- Compare the main features of different scripting editors.
- Write basic client-side and server-side scripts for simple tasks.
- Write intermediate scripts using variables, operators, expressions, and constants.
- Explain the process of creating a user-defined function.
- Synthesize a user-defined function.
- Write scripts using built-in and user-defined functions.
- Explain a dynamic function call.
- Explain the process of passing references to variables in functions.
- Use sequential and associative arrays for list data.
- Use regular expressions to match patterns.
- Justify the use of server-side includes.
- Explain the concept of a library.
- Identify the main libraries used by PHP.
- Write script that obtains input from users.
- Write script that returns information to the user.
- Write script that maintains session.
- Write script that creates a connection to a database.
- Write script that creates a recordset.
- Describe the meaning of the keywords in SQL (Structured Query Language).
- Synthesize a SQL statement using SELECT, WHERE, ORDER BY, and GROUP BY.
- Synthesize SQL statements for reading, inserting, updating, and deleting records in a specific recordset.
- Utilize advanced database techniques and stored procedures.
- Write script that authenticates and tracks the user.
- Maintain session management with cookies, query strings, and session functions.
- Perform error handling.
|
^ top |
| Who Should Take This Course |
| |
The following people will benefit from this course:
- IT professionals who wish to learn how to program database-driven server applications.
- Software developers who need to understand and develop database-driven web solutions.
- Web designers who wish to understand the capabilities of database-driven web sites and be able to implement solutions themselves.
- Web developers who want to enhance their sites with database content and server-side scripts.
|
^ top |
| Skills Needed |
| File Management |
- Create, edit, save and rename files using appropriate filenames and extensions
- Create directories and subdirectories (folders and subfolders)
- Copy, move and delete files and directories
|
| Internet/WWW |
You need to know how to use a web browser in order to access course materials on my web site. |
| Email |
All students are requested to obtain an e-mail account. |
| Database |
You should have some familiarity with basic database concepts such as tables and relationships. However, I will assume you have no experience when I cover databases. |
| HTML |
You need to be able to use basic HTML to pass this course. Specifically, you must be able to:
- Create and save HTML files
- Display web pages in a browser, both from files and from the web
- Use style elements such as font tags
- Create tables to display data
|
| Programming Skills |
Prior programming training or experience is important preparation for this course. If you have had previous programming experience or training, but are out of practice, you should be able to refresh your skills with little difficulty.
|
| Patience and Time |
If you have enough time to sit in class and in lab, but don´t have 8-12 hours a week to devote to homework, drop this class. You will need time to experiment with the details of the database and programming languages, develop solutions to assignments, and complete the course project. |
^ top |
| Textbooks and Other Materials |
| Required books |
Intro. to Programming Database-Driven Web Sites With PHP/MySQL, Compiled by Edward Parrish, SafariU, ISBN 0596500548
This is a custom textbook that is available only from the Cabrillo College Bookstore.
If you prefer to read the materials online, rather than on paper, you can buy a four month subscription at: https://www.safariu.com/view?p=2014
|
| Recommended books |
A Guide to SQL, Philip J. Pratt, Course Technology, ISBN 0-619-03382-7. How to use SQL.
Data Modeling, G. Lawrence Sanders, boyd & fraser publishing company, ISBN 0-87709-066-1. Database modeling and design.
MySQL, Paul DuBois, New Riders Publishing, 0-7357-0921-1
MySQL, Michael Kofler, Springer-Verilag, ISBN 1-893115-57-7
MySQL: Visual QuickStart Guide, Larry Ullman, Peachpit Press, ISBN 0-321-12731-5.
Web Database Applications with PHP & MySQL, Williams and Lane, O'Reilly & Associates, Inc., ISBN 0-596-00041-3.
PHP and MySQL Web Development, Luke Welling and Laura Thompson, Sams Publishing, ISBN 0-672-32525-X.
|
^ top |
| Grading Policies |
| Assessed areas |
Your final grade is weighted based on your performance in the following areas:
| In-class exercises |
10% |
| Homework assignments |
30% |
| Project |
40% |
| Quizzes |
20% |
|
| In-class exercises |
In-class exercises are due at the beginning of the next class meeting. I will not accept late exercises for any reason. However, I do throw out the lowest exercise score in determining the final grade. If you are going to miss class, then you should arrange to turn in your exercises before class starts.
In-class exercises are graded on "best effort" basis. You will receive full credit if you clearly attempt to complete all exercises. For each exercise you do not complete, your grade for that exercise will be reduced by 10%, which is one full grade point.
|
| Homework assignments |
Homework assignments are due at the date and time posted in WebCT, which is generally right before class meetings. I will not accept late homework assignments because solutions are both discussed in class and posted. However, it is possible to improve homework assignment scores by completing extra credit work. Most assignments list some optional extra-credit of a more challenging nature.
|
| Project |
The focus of the course, as much as practical, is to complete your project. You present your project during the final exam period, demonstrating your mastery of the subject. The project counts as the final exam for the course and you must demonstrate your completed project to the instructor during the scheduled final exam time to pass the course.
|
| Quizzes |
Most weeks, you will have the opportunity to take a quiz covering the previous lessons and homework assignments. Quizzes are given instead of a midterm to provide faster and continuous feedback to both the student and the instructor. You will have about a one-week period to complete a quiz and due dates are posted in WebCT. There will be no make-ups for any reason. However, I will throw out the lowest quiz score in determining the final grade.
Note that if you add the class after the first meeting, you are still expected to complete the initial quiz on time. Not completing the quiz will count toward your lowest score.
|
| Grade interpretation |
Grading within each area is based on the following scale:
| Grade |
From |
To |
Description |
| A |
90% |
100% |
Outstanding work demonstrating mastery of the subject. |
| B |
80% |
89.9% |
Above average work with a solid understanding of the subject. |
| C |
70% |
79.9% |
Satisfactory work meeting all minimum requirements. |
| D |
60% |
69.9% |
Substandard work not meeting expectations in one or more areas. |
| F |
0% |
59.9% |
Unsatisfactory work. |
If you have questions about problems you missed on any exercise or assignment, please see me right away. I want to ensure both that you understand the material and that your grades are accurate and fair.
|
^ top |
| Alternate Grading and Incompletes |
| Credit/No Credit Option |
By default, everyone receives a letter grade. If you request the Credit/No Credit Option, you must complete the course work at a satisfactory (that is a "C") or better level. For more information, see the Cabrillo Academic Policies and Procedures document. |
| Incompletes |
You may request an incomplete from the instructor if you are "doing passing work and regularly attending at least 75% of a course, but are unable to take the final exam (or otherwise complete the course) because of illness or other unforeseeable emergency and justifiable reasons." (Quotation from the Academic Policies and Procedures document.)
|
^ top |
| Typical Class Session |
| |
The following is an outline of a typical class and lab session:
| Time of Day | Event |
| 6:00 PM | Announcements and discussion of questions that have short answers or broad interest within the class |
| 6:05 PM | Lecture and exercises |
| 7:15 PM | Break |
| 7:30 PM | Lecture and exercises |
| 8:45 PM | Break |
| 9:00 PM | Lecture and exercises |
| 10:05 PM | Exit classroom (passing time) |
|
^ top |
| Working Together |
| Helping Each Other |
For most assignments in this course, I allow you to show your work to other students. Other students may suggest improvements or point out bugs. However, you must do all the work yourself.
Note that showing work to another student is not acceptable in most computer courses. I allow this unusual freedom for this course because every student works on different projects. In addition, this course does not transfer to other educational institutions.
However, for some assignments, you are not free to show your actual homework solutions or code to any other person before everyone turns in the assignment. Viewing or copying any part of another person's solution or code, or allowing your solution or code to be copied or viewed is not permitted. The assignments with these prohibitions are clearly marked.
Group study can accelerate learning, but only when each student takes responsibility for mastering all the material. Little is learned if each student works only one or two problems and merely copies answers for the rest.
If you have questions about what is permissible, please ask me.
|
| Joint Exercises |
Money for education is in short supply in California due to the current budget problems. As a result, there are not enough computers for every student to have their own computer in this classroom.
To work around this shortage of computers, you may need to work with others on in-class exercises. If there are more students than computers, you must be willing to work with one other student. If there are more computers than students, you may still work on in-class exercises together, if both students so choose.
When working together, you and your partner must work collaboratively at the single computer. One person is the "driver" and types the work into the computer. The other person is called the "reviewer" and actively checks the work entered by the driver. Each partner spends about one-half of the time for each class as the driver and the other half as the reviewer.
|
^ top |
| Academic Dishonesty |
| |
Academic honesty means that you give credit where credit is due. Students who are academically dishonest hurt both themselves and other students. They rob themselves of both the knowledge of the material and the experience of learning how to learn. This harms other students as well because nobody can trust that the graduates of a course know the material.
Academic dishonesty includes:
- Cheating: Intentionally violating the rules of the course by possessing, communicating, using, or attempting to use materials or to take actions that the instructor has prohibited.
- Plagiarism: Use of distinctive ideas, words or code belonging to another person, without sufficiently acknowledging that person's contribution.
For any work submitted in this course, you are not authorized to copy or use work from any source without crediting the source. You may use small snippets of work posted on the web or found in books, as long as it is lawful. However, you must acknowledge the source well enough so that it is easy for the instructor to find. Note that the instructor uses various services and tools to detect cheating by comparing your work with other students, books and the web.
Quizzes are open book and open notes. However, you must complete the quiz without help from another human being. Similarly, you cannot have another person complete assignments or projects. If you need help on an assignment or project, you should see the instructor.
Any person caught cheating or plagiarizing will be given a grade of zero for the assignment or quiz. The second offense will result in a no-pass or failing grade for the course. These offenses will be reported to the Dean of Student Services for inclusion in your academic record.
If you have questions about what is permissible, please ask me.
|
^ top |
| |