Picture of Dr. Garvey

CS 315 Internet Programming

Fall 2018

Dr. Garvey

Course Details

Section 01: MWF 8:30-9:20am VH 1328


Office Hours

Syllabus for this class

Safari online books relevant for this class.


Project Milestones

  • There will be a project proposal assignment and four milestones.
  • Project Proposal is due 5 September 2018
  • Milestone 1 of your project, focusing on HTML/CSS, is due by 28 September 2018.
  • Milestone 2 of your project, focusing on PHP, is due by 24 October 2018
  • Milestone 3 of your project, focusing on Javascript, is due by 12 November 2018
  • Milestone 4 of your project, focusing on PHP/Databases, is due by 3 December 2018


  • There will be about 6 homework assignments.
  • Homework 1 Assigned: 31 August 2018, Due: 11 September 2018
  • Homework 2 Assigned: 10 September 2018, Due: 18 September 2018
  • Homework 3 Assigned: 24 September 2018, Due: 4 October 2018
  • Homework 4 Assigned: 8 October 2018, Due: 26 October 2018
  • jsexample17.html and jsexample17.js show a barebones way to process input and present results to the user with Javascript.
  • Homework 5 Assigned: 5 November 2018, Due: 15 November 2018
  • Homework 6 Assigned: 16 November 2018, Due: 7 December 2018

Using the ice Web Server

This class is going to use ice.truman.edu, a Math/CS department Linux machine, as our web server. A quick lab to get you started building a web page on ice is available at web.html. You do not need to turn in this lab. Just do it for your own knowledge. Please let me know if you have any trouble connecting to ice. Wherever the lab says "sand" you can replace it with the word "ice".

Ice is configured to only allow web access from Truman IP addresses. Thus, by default, people from outside Truman won't be able to see your web site. For most purposes that is probably fine. If you would like your website to be visible outside of the Truman IP space, then look at how to allow access.

All of the w3.org validator sites are allowed to access ice web pages, so all of the validation methods I will show you should work.

XHTML Examples

CSS Examples

Javascript Examples

Non-PHP CGI Examples

PHP Examples

XML Examples

  • example1.xml is a simple well-formed XML file. Browsers recognize this as XML and have a special way of presenting it. The exact contents of the XML can be seen when you View Source.
  • example2.xml shows a valid XML document. It is valid because it conforms to the DTD included at the top of the file.
  • bookexample.xml is another example of a more complex DTD.
  • ex2extdtd.xml shows example2 with an external DTD file. ex2.dtd is the external DTD file.
  • attexample.xml shows an example of a DTD that declares attributes.
  • schema-example.xml is an XML file that can be validated using the schema schema-example.xsd.
  • A W3C Website that has both a DTD and an XML Schema definition for the XML Schema language.
  • meditate.xml is an XML file that has its display formatted using meditate.css.
  • meditate2.xml is an XML file that has its display formatted using meditate2.css. This shows how to use :before and :after pseudo-elements with the content CSS attribute to add text to the displayed file.
  • planets.xml is an XML file that is transformed using a really simple XSLT style sheet planets.xsl. (You need to use View Source to see the xsl file.)
  • planets2.xml is the same XML file with a more interestingly complex XSLT style sheet planets2.xsl.
  • xhtml1-strict.dtd is a local copy of the XHTML 1.0 Strict DTD
  • In theory, you can extend XHTML by adding new tags. You define the tags in a DTD that includes the XHTML DTD, such as extend.dtd. You say how to present the new tags using CSS, such as extend.css. In theory you could use the tags in XHTML, such as extend.html, but browsers don't notice, because they don't look at DTDs. But you can make this work as XML, such as extend.xml.

Fun stuff

  • This page has a Perl regular expression for validating email addresses. Incredible.
  • Links to a gazillion different web resources.