Many of the programs we use are web services rather than local applications, and many professional software developers are specifically web developers. To build interesting web applications, we need a whole collection of tools: markup, styling, client-side and server-side scripting, and database interaction. This course will introduce one of the platforms for modern web development. You will learn to:

Run an Apache web server on a Linux virtual machine

Use HTML and CSS to present and style webpages

Use Javascript and PHP to bring them to life

Manage your data with MySQL

Prerequisite

CS 256. This course assumes that you are an experienced programmer.

Textbook

There is no required textbook for the course. Instead, I will regularly direct you to reading materials online.

Office hours

These are some times when I'm likely to be in my office. Come by at any of these times and you will probably find me, though I may occasionally be pulled away unexpectedly. You can also use email to make an appointment.

M/W/F: 2-4pm

T/Th: 2:30-4pm

Accommodations

If your learning or participation in this course may be affected by a disability or any other factor, please talk to me early in the semester so that we can arrange appropriate accommodations. I will do my best to ensure that everyone can learn effectively.

Attendance

Being in class is crucial for your learning in this course. Absences will leave holes in your understanding of course concepts. If you must miss a class, you are expected to work to get caught up before the next class.

Grading policy

Your final grade will be a weighted average of quizzes (30%), homework (30%), a project (30%), and reading (10%). This table shows how averages translate to the 4-point scale. Please note that I set a high bar for a 4.0 and there is no such thing as extra credit.

Academic integrity

It is important to me that you conduct your work in this course with academic integrity. That means abiding by the specific policies outlined below, as well as the general guidelines in the Student Handbook. It is my responsibility to report violations of these policies to the Dean.

Homework

Programming assignments will be due approximately once per week during the first half of the course. They will help you practice using the tools you will need for the course project.

Collaboration: You may confer with classmates as you work on the assignments, but you may only submit work that you have personally written and understood.

Resources: You may consult your class notes and the assigned reading; you may not copy from other people's work.

Help: Homework help is regularly available at my office hours.

Citations: In each assignment, you must cite anyone who helped you complete it, as well as any unofficial resources you have used.

Extensions: You have 3 late days. Each one gives you a 24-hour extension on any assignment. Send me an email if you submit an assignment late and you want to use late days to have it accepted. Once you have used up all your late days, you can receive no credit for late homework, unless there are extraordinary circumstances.

Quizzes

There will be a quiz every few weeks during the first half of the semester to check your mastery of tools and concepts. These will be announced as they approach.

Reading

For each assigned reading, you may be asked to submit responses to some questions. The deadline for each response will be the start of the first quiz after it was assigned.

Project

The second half of the semester will center around a course project. Along with a small team of your classmates, you will develop a substantial web application.