Basic Info
Time/Place
- Monday/Wednesday, 12:30 - 1:45
- 007 Fred Brooks Building
Instructor
- Ketan Mayer-Patel
- kmp@cs.unc.edu
- 962-1709
- 154 Fred Brooks Building
- Office hours: Tu/Th 9 AM - 10:30 AM
Description
The World Wide Web (WWW) continues to be the most successful by-product of the Internet. It is used daily by millions (billions?) of people in order to find, manage, track, and manipulate information. Over the years, the Web has developed from a relatively simple system of hyperlinked documents using presentation and structure markup to a distributed platform for computing and application development. In this course, we will explore the fundamental principles and technologies behind the WWW including how information on the Web is generated, represented, transmitted, and manipulated. The course will concentrate on key client-side and server-side technologies that are essential for dynamic content generation and interactivity including XHTML, CSS, HTTP, JavaScript, DOM, event-driven programming, AJAX, RESTful web services, PHP, and databases.
Textbook
There is no required textbook. Instead, the course will draw heavily on web-based resources which I often find to be much more up-to-date and easier to use for the topics in this course. The programming languages that will be used in the course are JavaScript, PHP and SQL. Students may find reference books on these languages to be helpful. While I do not think that purchasing any of these books are necessary, if asked, I would recommend titles published by O'Reilly such as:
- JavaScript: The Definitive Guide
- Learning PHP & MySQL
- Programming PHP
Prerequisites
Students are expected to have some experience programming in a high-level computer language either in a high school or college-level introductory computer science course, as a hobbyist, or through work experience. Highly motivated students that do not have this experience are still welcome in the course, but may find that substantial extra time may be necessary to complete the programming assignments.
Grading
Course grades will be based on the following components:
- Assignments (60%)
- Midterm Exam (15%)
- Final Exam or Project (25%)
There will be approximately 7 to 10 assignments and 1 midterm.
Outline of Topics
The following is a tentative outline of lecture topics and is subject to change.
- The history and development of the World Wide Web
- The architecture of a web-based application
- Classic MVC architecture
- Modern AJAX-based architecture
- Retrieving URL-named resources with HTTP
- Basic HTTP request/reply mechanics
- HTTP and its relationship to TCP
- Resolving hostnames
- Mapping URL paths
- The evolution of HTML leading to the development of XML and HTML 4.0
- Layout and presentation with CSS
- Client-side programming with JavaScript
- The Document Object Model
- Event-based Programming
- Retrieving data with AJAX and RESTful web services
- Dynamic content generation
- CGI
- Parameter encoding
- POST vs. GET
- Server-side programming with PHP
- HTML Forms and Form Processing
- Using HTTP cookies to save state.
- Accessing databases with PHP and SQL
- Security on the Web
- Basic concepts of public-key cryptography
- Digital certificates and signatures
- HTTPS