Skip to content


Catalog #10 152 166

General Information

  • Credits: 3
  • Course Format: Face to face / Online / Hybrid
  • Class Schedule:
Section Class Schedule Location
60647 01/17/2024 - 05/08/2024, Mo/We 10:30 AM - 12:10 PM Truax D1646
60648 01/16/2024 - 05/08/2024 Online
60649 01/16/2024 - 05/08/2024 Online

Class Information

Course Description

This course introduces the student to dynamic web page development using the PHP programming language and the popular MySQL open source database management software (DBMS). Students will gain LAMP development experience using the Linux operating system, and the Apache web server platform. Students will learn how PHP works, how to effectively use many of its powerful extensions, and how to design and build their own PHP web applications.


  • Grade of C or better in 10-152-119, Introduction to Programming with JavaScript.
  • Grade of C or better in 10-152-120, Website Development - XHTML
  • Grade of C or better in 10-152-124, Introduction to Database


  • Consent of instructor.



NOTE: Unfortunately, I have discovered a few errors in the book. Please refer to this Eratta for the errors and their corrections.

Course Competencies:

  • Upon successful completion of this course, the student will be able to:
    • Set up a basic PHP and MySQL development environment on Linux and Windows.
    • Write PHP scripts using the basic functionality of the language.
    • Write PHP scripts that use strings, arrays and associative arrays
    • Write PHP scripts that use regular expressions to search and modify data.
    • Use the object-oriented features of PHP 7.
    • Write PHP scripts that read and write to files.
    • Write PHP scripts that query and update a MySQL database.
    • Use cookies and sessions for authentication in PHP.
    • Implement security and use debugging features of PHP.
    • Use date and time functions of PHP.
    • Complete a Capstone Final project written in PHP.


Face to face

This will be a flipped face-to-face class. Students will watch screen-casted lectures, use blackboard and participate in lab exercises and projects to support the lecture material. Students will participate in discussions about lecture material. Students will attend class for working on labs and exercises and to work with instructor as needed or wanted. Exams will be taken in a classroom setting.


Students will watch screen-casted lectures, use blackboard and participate in lab exercises and projects to support the lecture material. Exams will be taken online through blackboard.


Students will watch screen-casted lectures, use blackboard and participate in lab exercises and projects to support the lecture material. Students should attend class for working on labs and exercises and to work with instructor as needed or wanted. Exams will be taken online through blackboard.

Class Communication

  • We will use Slack for communication in this class. Be sure to set up notifications and check Slack at least daily so you do not miss important class information. Slack is one of the first places to look for answers and ask for help. It is a great opportunity for students to help each other out; this is a great way to enhance your learning, so please ask and answer questions in the Slack public channels as much as possible. I will, jump in as needed.

  • I will check Slack regularly in order to access communications from students and will typically respond to communications within 24 hours.

  • Any emails sent from the Blackboard system will go to your Madison College email. If you are not in the habit of checking your Madison College email account daily, please forward your college email to your preferred email address.

Responsibilities and Policies

Statements on Academic Integrity

Madison College

Madison Area Technical College places a high value on the learning experience. As members of the college community, you are obligated to conduct your work with honesty and integrity. Plagiarism and cheating are serious offenses and may be punished by failure on a project, test or assignment, failure in the course, and or expulsion from the college. For more information refer to the “Student Code of Conduct” policy in the student catalog. Please take time to review our Academic Integrity Policy


Completing projects (from here on referred to generally as “assignments”) is an essential part of this course. The more code you write, the better programmer you will be. As you work on assignments, I fully expect you will have questions and run into problems. While a significant part of programming is debugging problems, sometimes we all get so stuck that we need help. I will address in class about how to problem solve and how to ask for programming help, but for now, know that I strongly encourage you to seek assistance when you need it. I expect that every student will post many questions to our Slack #help channel, and I also want you to answer questions posted by other students. I like to see students helping each other out! However, please do not provide answers that essentially give away the entire assignment. Remember that you can also consult with your instructor and IT Guides about any aspect of any assignment.

You should consult with other students only in a general way, e.g., about debugging or questions about wording on the assignment. “Consult” means you can discuss the programs before writing code and assist each other in debugging, but you should write your own code. Should another student or tutor write code, solve the problem as an example, or dictate what should be written on any assignment this would be academic misconduct on the part of both parties.

Sometimes this seems like a gray area. My policy for assignments can be described with the following rules and should clarify any of those gray areas:

Rule 1:

With every Blackboard submission you must indicate any assistance you received. If you make use of such assistance without giving proper credit, you may be guilty of academic misconduct.

  • For each assignment you are expected to include a list of the people with whom you have consulted (including students, IT guides, instructors, or anyone outside of our learning community) and resources used (including webpages and source code repositories, outside of our course learning materials) as part of your submission. This information should be included as part of the submission text in Blackboard. If you did not use any outside resources, be sure to specify that as well.

  • In addition to providing proper citation, it is also important to make sure that the assistance you receive consists of general advice that does not cross the boundary into having someone else write the actual code. It is fine to discuss ideas and strategies, but you should be careful to write your programs on your own.

Rule 2:

You must not share actual program code with other students.

  • In particular, you should not ask anyone to show or give you a copy of their code or, conversely, give your code to another student who asks you for it. Similarly, you should not discuss strategies to such an extent that you and your collaborators end up turning in exactly the same code. Discuss ideas together, but do the coding on your own.

  • The rule against looking at the actual code for a program has an important specific application in programming classes. Due to the time and effort involved in writing good programming assignments and to continually improve assignments, we, like most other Programming departments, reuse assignments over the years, incorporating changes periodically to make them more effective.

Rule 3:

You must not look at solution sets or program code from other semesters.

  • Beyond being a clear violation of academic integrity, making use of old solution sets is a dangerous practice. Assignments can change in a variety of ways from year to year as we seek to make them better. Submitting a program that solves a previous semester’s assignment perfectly while failing to solve the current one is particularly damaging evidence of academic dishonesty.

  • Whenever you seek help on an assignment, your goal should be improving your level of understanding and not simply getting your program to work. Suppose, for example, that someone responds to your request for help by showing you a couple of lines of code that do the job. Don’t fall into the trap of simply including that in your program without fully understanding it. By doing so, you will be in no position to solve similar problems on exams, or on the job. The need to understand the assistance you receive can be expressed in the following rule:

Rule 4:

You must be prepared to explain any assignment code that you submit.

Rule 5:

Cite any code or ideas you use.

  • This includes commenting your code and providing the source within the code you submit. Failing to cite code or resources you’ve used is a potential violation of the Academic Integrity policy.

  • With each lab/assignment/project submission, you must include an academic integrity statement indicating all resources (outside of course materials) used to complete the assignment. If you did not use any additional resources to complete a given assignment, then indicate this in your blackboard submission.

  • Example:

    • “When completing Lab 3, I used this stackoverflow article,, to format the date. I did not use any other outside resources on any other parts of this submission - the work is entirely my own.”

Rule 6:

All submissions are subject to automated plagiarism detection.

  • Automated plagiarism detection tools can compare assignment submissions with other submissions from the current and previous semesters. These tools are amazingly effective at detecting unusual resemblances in programs, which are then further examined by the instructors. Submissions deemed to be potential cases of academic dishonesty are referred to the Madison College Academic Integrity Office. I really hope it doesn’t come to that, but, sadly, all this discussion would not be necessary if we had not had such problems in the past.

The six rules above were created by Paula Waite who adapted them from Duke University’s Computer Science Collaboration rules.

Artificial Intelligence (AI) and Searching the Internet

Searching the internet and using AI is a skill that developers rely on. Learning to use these tools responsibly and ethically is an important part of that skill. It is critical to understand the following:

  1. The quality of a tool’s output directly correlates to the quality of your input or “prompt”.

  2. All large language models have a tendency to make up incorrect facts and fake citations, code generation models have a tendency to produce inaccurate outputs, and image generation models can occasionally come up with highly offensive products. The current AI models will confidently reassert factual errors.

  3. You should assume outcomes are wrong unless you cross-check the claims with reliable, credible sources. You are responsible for any errors or omissions. Fact-check all of the AI outputs.

Like any other resource, the use of AI should be acknowledged in your code as a comment or in your reflection note in Blackboard. Be sure to explain which AI tool or website you used and how you used it. Include the prompts you used to get the results, or the website link you used, if applicable. Failure to do so is in violation of College and Program academic integrity policies.

Use these tools as resources, but do not let them supplant your own knowledge. You should be prepared to double check anything you get from these tools. Be sure that any generated code you use for reference uses the concepts and techniques covered in the course materials. Make sure you fully understand and can explain every part of that code.


In the following, assignment means “lab, exercise, project, checkpoint (quiz or exam), or any other work submitted for evaluation”. These examples are not exhaustive; if you have a question about proper use, please ask.

Use that IS OK

  1. You use a tool to study for exams, quizzes, and other assessments by providing prompts to the tool and review the output.

  2. You use tools to explore the capabilities and potential uses of AI in an area of interest.

  3. You use a tool to translate or explain a phrase or concept.

Use that is NOT OK

  1. You type a prompt into a tool and copy all or part of the generated content (e.g., text, code, images, solutions) into your lab, exercise, project, checkpoint (quiz or exam), or any other assignment submitted for evaluation.

  2. You provide a tool with all or part of the prompt for an assignment and paraphrase or otherwise adapt all or part of the generated content into your response/code without proper attribution of the tool.

A final note: other instructors may have a different policy on AI and internet use. Be sure to consult with your instructor if you have any questions about what is acceptable in the classes they teach.

Withdrawal Policy

If a situation arises that prevents the successful completion of this course, please note that it is each student’s responsibility to formally withdraw from this course.

Nonattendance does not constitute an official withdrawal and students will be held responsible for tuition and fees not paid. Financial aid applicants and recipients may have their refunds delayed depending upon their financial aid status.

Stop payment of a check does not constitute a formal cancellation. Registrants will be held liable for the fee until the date of official cancellation. Allow four weeks from the date of cancellation to receive a full refund of payment. Please refer to this page on the Madison College Website to review the withdrawal policy at


You are expected to attend class. Poor attendance can lead to failure in the class. If you cannot attend a class, it is your responsibility to obtain the material missed. Lecture will not be repeated for individual students. If you withdraw from the class, please notify the instructor, and the School of Technologies and Trades, room A2105. Non-attendance will not automatically withdraw you from a course. Please refer to this page on the Madison College Website to review the attendance policy at

Submitting Work

All work must be submitted as directed in the assignment instructions.

Backup Data

You are expected to develop good computer use habits that minimize the impact of failure. I expect that you know to save your work frequently, after every major change, and to back up your work regularly. Remember failure is a matter of when … not if.

Use of Electronic Devices

Silence cell phones, mobile devices, etc during class sessions. Students must avoid non course related activities such as checking email or social networking sites, web surfing, or playing games because these diminish their — and their classmates’ — engagement with instructional activities. Exceptions to this policy may be granted at the discretion of the instructor.

Mobile devices, (including cell phones) must be stowed in an out of sight location during quizzes and exams and are not permitted to be on the desktop, handled, nor answered during testing periods. Students who disregard this policy will receive a grade of zero for the quiz or test taken during the offense.

Technical Assistance

You are encouraged to seek assistance from your instructor well before the date that an assignment is due. This class is a troubleshooting type class, and the normal debugging assistance is available from your instructor.

Student Computer Help Desk is located in the Truax Campus Library Room 230. Student lab assistants are available in person, and by phone, (608) 243-4444; toll-free at (866) 277-4445; by email at to provide computer support to fellow students. These services are available Monday - Thursday: 7:30 a.m. - 9:00 p.m., Friday: 7:30 a.m. - 4:30 p.m., and Saturday: 9:00 a.m. - 1:00 p.m. In addition, students can call an afterhours help desk until 10pm most days, by calling (608) 246-6666.

Disability Act Statement

Madison College complies with all provisions of the Americans with Disabilities Act and makes reasonable accommodations upon request. Please contact Disability Resources Services at 246-6716 (Students who are deaf via Relay 711), room 159 at Truax or email

If you have an accommodation card from their office indicating that you have a disability which requires academic accommodations, please present it to me so we can discuss the accommodations that you might need in this class. It is best to request these accommodations at the beginning if not before class so there is ample time to make the accommodations. Please refer to this page on the Madison College Website to review the Disability Act Statement and for more informations about Disability Resource Services

Class Cancellation

Besides local radio stations and the Madison College website, students can call the hotline to inquire about weather related school closings. (608) 246-6606.

Learner Responsibilities

As a student in this class, I expect you to:

  • Take responsibility for your own learning.
  • Be prepared for class and be an enthusiastic participant during class.
  • Treat others with tolerance and respect.
  • Act responsibly and reliably in group work.
  • Set high standards for your work.
  • Attend all classes, participate in discussions, and complete lab exercises.
  • Read the chapters and other reading assignments.
  • Check Blackboard on a regular basis.
  • Complete weekly labs, projects, and exams before due date.
  • Ask questions.

Instructor Responsibilities

As your instructor, I commit to communicating openly and frequently with you about this class. I will maintain a professional, safe learning environment adhering to the policies of the college. You can expect a reply to communication, be it via e-mail, voicemail or in person, within 24-48 business hours.

Blackboard: A Blackboard course site has been created for this class. You can access this course by logging in to the following page:

Madison College Blackboard Student Support information: Consult your instructor for support with Blackboard problems

Computer difficulties are not a long-term excuse for non-participation. If you experience problems with your computer, call the computer help desk at (608) 243-4444 or toll-free at (866) 277-4445. They can talk you through fixing many, many problems.

Blackboard Outages

Blackboard Outages: Madison College does its best to keep our Blackboard classroom up and running. However, despite our best efforts, our virtual classroom may go down unexpectedly. If you cannot access our classroom, here is what you should do:

Phone the student help desk: (608) 243-4444; toll-free at (866) 277-4445. They can often resolve your problem over the phone.

Other Resources

Syllabus Changes: As your instructor, I retain the right to make changes based on the timeline of the class, feedback from learners and/or logistical issues and will inform you as soon as a change is made.

Grading Policy

Formative Assignments

Formative assignments are lab work you do to practice your understanding of the skills we are learning. It is very important for you to work on and complete the lab assignments as this will be your opportunity to work through the material, and my opportunity to give you feedback to help guide your learning. The formative assignments will be the weekly lab work I assign.

  • All weekly assignments are due the following Monday by 5:00pm
  • When turning in your assignments, you must follow the Test Plan and provide screenshots of input/output as requested by the Test Plan.
  • I will provide feedback on how you did on an assigment and in areas where you can improve your skills.

Summative Assignments

Summative assignments are how you demonstrate your understanding of the skills we are learning in the course. By doing the formative assignments and applying the feedback I give you, you will ensure you can demonstrate all the skills we are learning. Therefore Summative assignments will be graded.

  • All work that is to be graded must be accomplished by your own effort and follow the academic integrity policy listed above.
  • Missing due dates will hinder your ability to stay on top of the new material we will be learning throughout the course. This course moves fast so you will want to hand in your projects on time to ensure you are successfull.
  • There is no make-up of exams or other scheduled, graded classroom activities.
  • It is the responsibility of the student to make up any missed work and/or pick up any missed materials. Missing a class is NOT an excuse for failure to hand in work due.
  • With the exception of Project 4, Projects are due on Friday 11:59pm the week they are due.

Special Grading Policy Concerning Exams

The average of your two exams must be a passing grade (C or above) to receive a passing grade in the class. Additionally, you must earn a passing grade (C or above) on the final project (project 4) to receive a passing grade in the class.

Grading Rubric

  • All labs/projects/exams must meet the Course Coding Standards
  • All labs/projects/exams must run (no errors, and must produce output.) If there are compilation errors or no output, the most the assignment can receive is 50% of the points.
  • Screenshots of form input and page output must be included as indicated in the submission instructions.
  • If there is output, but not all objectives are met from the lab/project/exam, points will be removed for each missing or incorrect item.

Grades Posted in Blackboard: All lab feedback and project grades are posted in Blackboard. Your instructor needs to manually grade the project assignments. Sometimes this happens very quickly and sometimes it takes a week. When you’ve submitted a lab or project, it will show up in the gradebook as a green box with a white ! in it. This means that your instructor has received your work, but has not graded it yet. Discussion boards show up in the gradebook as a green box with a white ! in it until your instructor has graded the assignment, then it will have a score in it.


Course Items Total Possible Points Special Note
Labs Formative (feedback) You may collaborate with other students on weekly labs
Projects (4) 120 (25, 25, 25, 45) Must be independent work and conform to course Academic Integrity Policy. Must get a passing grade of 'C' or better on the final project to pass the class
Exams (2) 80 (40, 40) Must be independent work and conform to course Academic Integrity Policy. Must get a passing grade of 'C' or better on the average of both exams to pass the class
Total 200

Grading Scale

Grade Attained
A 92-100
AB 88-91
B 82-87
BC 78-81
C 70-77
D 60-69
F 0-59

Due Dates

Face to face class

  • Weekly Labs:

    • Encouraged to collaborate with other students on Weekly Labs.
    • Must be checked off in class.
    • Are due the next week by Monday 5:00pm in Blackboard.
    • Must be checked off AND submitted into Blackboard to receive feedback.
  • Projects:

    • Projects must be your own individual work and conform to the course Academic Integrity Policy.
    • Must be checked off in class.
    • Are due by Friday 11:59pm in Blackboard (the specified week).
    • Must be checked off AND submitted into Blackboard to receive any credit.

Online and Hybrid class

  • Weekly Labs:

    • Encouraged to collaborate with other students on Weekly Labs.
    • Must include screenshots specified in Lab Testing Requirements.
    • Are due the next week by Monday 5:00pm in Blackboard.
    • Must have all screenshots AND code & SQL dump, and be submitted into Blackboard to receive feedback.
  • Projects:

    • Projects must be your own individual work and conform to the course Academic Integrity Policy.
    • Must include screenshots specified in Project Testing Requirements.
    • Are due by Friday 11:59pm in Blackboard (the specified week).
    • Must have all screenshots AND code & SQL dump, and be submitted into Blackboard to receive any credit.
Weeks Topics Readings Important Dates
1 Intro to class and Development Environments Syllabus, Chapters 1 & 2
2 Intro to PHP, MySQL, PHP Form Vairables Chapters 2, 3, 4, 8, 11, 12
3 Database operations, Looping, Arrays, Functions Chapters 6, 9, 10, 13
4 Expressions, Comparison, Logic, Self Ref. Chapters 5, 7, 8, 11, 14
5 Simple App, Database Design, GET vs. POST Chapter 15 Project 1 due
6 Simple App features: Add, Remove, Edit Chapters 16, 17, 18
7 Working with Files, Simple App features: Files Chapter 19
8 Exam 1, covers Weeks 1-7
9 Basic HTTP Auth, Persistence Chapters 20, 21 Project 2 due
10 Securing Web Applications Chapter 22
11 Adding User Logins Chapter 23
12 Adding Navigation Menu Chapter 24 Project 3 due
13 Object Oriented PHP Chapter 26
14 Object Oriented PHP Chapter 26
15 Project 4 Demonstrations
16 Exam 2 comprehensive Project 4 Demonstrations Complete