Colby Computer Science

CS 325 Web Programming

Syllabus

JanPlan 2022

Lectures: 9:00 - 11:30 and 1:00 - 3:00 Mondays, Tuesdays, & Thursdays, Davis 117 and 102

Instructor: Dale Skrien
                    Office: Davis 211
                    Tentative Office hours: 11:30-1:00 on Monday, Tuesday, & Thursday; 12:00-3:00 on Wednesday via Zoom

Prerequisites: CS 231 or equivalent

Texts: M. Stepp, J. Miller, & V. Kirst, Web Programming Step by Step, 2nd Edition.

Course website: https://moodle.colby.edu/course/view.php?id=23307

Programming Projects: daily lab projects and a final project.

Grades: The course grade will be determined as follows:

In-class daily lab projects
55%
Final project 40%
Class Participation
  5%

The minimum grade you will receive is shown below. Grades may be raised and pluses or minuses added at the instructors' discretion.

90-100% A
80-89% B
70-79% C
60-69% D
below 60% F

Course Description: This course is a practical introduction to the art and science of building dynamic (interactive) websites. Topics include the Internet, HTML, CSS style sheets, XML, event-driven programming, client-side programming with JavaScript, server-side programming with PHP, database programming with MySQL. The use of AJAX (Asynchronous Javascript and XML) to access databases on the server will also be discussed. This will be a course with a lab, in which students will develop a variety of web pages and their own websites.

Course Goals:

  1. Understand the basic structure and function of the Internet and the World Wide Web
  2. Use HTML and CSS to create visually appealing, effective web sites
  3. Understand DOM and basic JavaScript for client-side processing
  4. Learn how to use PHP and MySQL for server-side processing
  5. Follow software engineering principles to construct a web
  6. Be ready to develop websites on your own, knowing that you can learn whatever new languages/libraries/tools that are needed.

Software: In this course, you can use your browser of choice. For writing web pages and code, you are welcome to use whatever editor you wish. Some possibilities include a general-purpose text editor with syntax highlighting such as BBEdit and a full-fledged web programming IDE such as JetBrain's Intellij IDEA Community Edition (my favorite, because it has editors for all the languages we'll be using), Eclipse (with plugins), VSCode, or Netbeans. BBEdit and Intellij IDEA are available on all lab machines. You can also freely download copies of these programs for your own machines.

Final project: Your final project will be to create a website for a customer that incorporates all the ideas we discussed in class this semester. So it will need to use web pages, forms, and a database. Your customer could be a club or department on campus, a family member's business, a Waterville business, a faculty member's or student's project that needs a web presence. The customer specifies what is to be included in the website, but you can negotiate with the client regarding the feasibility of implementing their specifications during January. You are not allowed to be your own customer or develop a personal web page. Ideally your customer's website should use PHP and MySql. If not, write your final project using PHP and MySql in addition to the version the customer wants or write just the PHP and MySql version in January and then later convert it for the customer. It is okay to get paid by your customer for your work. Because of the short time period, you are strongly encouraged to work with a classmate as a team of two on the final project. You will present the website to the whole class on the last day.

Attendance: For this course to be truly successful, your presence and participation are important. Asking questions in class is an important part of learning. When you have a question, ask it. It is highly probable that many of your classmates have the same question. When you have an opportunity to share your opinion or your answer, please speak up. Your professor wants to hear what you have to say. And, of course, to participate in class you must attend class. If you must miss a class, you are responsible for making up the material covered in that lecture.

Late assignments: I will give you more than enough time for each assignment. For this reason and because I will be quickly moving on to new material, reduced or no credit will be given for late submissions.

Active Learning: Please come see me any time you have questions. Office hours are the best time to come by, but feel free to come by at other times too, although just before class is usually a bad time to reach me since I am busy with last-minute class preparations. Please feel free to make an appointment if you prefer. Many of the concepts we will cover build on each other. If you find yourself stuck trying to understand something, it will only make catching up later that much worse. Whether you are aware of it or not, one of the advantages of Colby over larger colleges and universities is that we have relatively small classes, and we have faculty who are willing to take the time to help you learn when you ask. It frustrates us when we miss opportunities to pull students out of confusion.

Collaboration, Academic honesty

The Colby Affirmation

Title IX Statement

Religious Holidays

Miscellaneous Information: