CS437/637 Syllabus, Spring 2018

Class meets MW 7:00-8:15 in M-3-430
Professor: Betty O'Neil (eoneil at cs.umb.edu)
Office Hours: MW 3:45-5:15 in S-3-169 and by appointment

Prerequisites: CS310, CS430/630 (these are important), and officially, CS451/651 for CS637 only (less important, can be replaced by programming experience) Note that CS310 is an implicit requirement for all (applied) CS graduate courses. It means you need to know data structures, preferably implemented in Java (Python and C++ are also OK). However, if you are solid on intermediate Java (cs210), or C and Python, that should be sufficient for this class.

Note that this document is linked to the class web page at http://www.cs.umb.edu/cs637.


  1. Murach's PHP and MySQL second or third edition, by Joel Murach and Ray Harris, Murach & Assoc, 2014, (ISBN older edition 978-1-890774-79-0, newer edition 978-1-943872-38-1) available for example at Amazon (older edition (less expensive), newer edition) or the bookstore. Either edition is fine. This book covers basic web technology (HTTP), running XAMPP for your own PHP web server, using the MySQL database. Follow the book link for free code.
  2. HTML and CSS: Design and Build Websites by Jon Duckett, under $15 at Amazon.

NOTE: Get a UNIX account for cs437/637 by running apply for cs637, even if you already have a UNIX account here. This should be done by Friday, Jan. 26. For information on how to access our systems at cs.umb.edu, and other class resources, including this document, see the class web page at http://www.cs.umb.edu/cs637.


  1. Introduction. M&H Chap. 1. Network and web programming basics: server-side vs. client-side programming, HTTP request-response cycles. The browser as the universal client. On the server side, usually a single database, i.e., distributed databases are not to be covered. Static and dynamic web pages. PHP vs. other server-side scripting languages. Client-side programming we won't cover: Javascript, Ajax, jQuery.
  2. HTML5 and CSS3: Duckett, plus online resources, including HTML5 at www.w3schools.com. Composing web pages in NetBeans. Installing XAMPP on your development system (M&H Appendixes)
  3. Intro to PHP apps M&H Chap. 1-2. One and two-page web apps. Although PHP can be run locally, without a web server, it is not commonly done, so we will usually use XAMPP's web server.
  4. Review of SQL, using MySQL with PHP M&H Chap. 3-4, 17-19. PHP can be used with other databases, but is most commonly used with MySQL, so we will concentrate on that.
  5. MVC (model-view-controller) web UI Designing and implementing a small website, with only one level of subdirectories. M&H Chap. 5-6. As soon as applications use multiple pages with dynamic content, they need better organization. We will use the MVC pattern to separate presentation (HTML) from programmatic control. Project 1 utilizes this small-website design.
  6. HTTP in more detail (slides from Murach's JSP book)
  7. Forms and PHP M&H Chap. 7, plus coverage on validation and resubmission of forms.
  8. More PHP language features M&H Chap. 8-11, 13. Most of the language features and much of the syntax will be familiar to you from Java, so we will go over these chapters quickly. Some coverage of PHP implementation.
  9. Cookies and Sessions M&H Chap. 12. These are ways of tracking individual users in spite of HTTP's "statelessness". Because of this, we can save information (for a certain user) in the server in one request cycle and access it conveniently in another.
  10. PHP Objects, M&H Chap. 14. These are very much like Java objects. So far, we've used associative arrays as data objects, but with real objects, we can use methods too. Some discussion of PHP frameworks, Laravel, Symfony, etc: these all use objects.
  11. Designing and implementing a midsize website M&H Chap. 20. Using multilevel directories to organize the website.
  12. Securing the website M&H Chap. 21, 24.  SSL for (https:), authentication (logging in as a known user), securing PHP files, using Apache .htaccess.
  13. Using and serving REST web services M&H Chap. 22, plus online resources. Project on web services for a business-to-business supply chain.
  14. Regular Expressions (Regex) and Validation M&H Chap. 15. Find out the power of regex, used not just in PHP.
Grading: simple point system
Midterm: 100 points, Final: 150 points, Assignments: various, about 150 points total. The exams are open-print-books, closed electronic devices. Anyone without a print copy of M&H will be required to sit at the front of the class during exams, to be able to share the teacher's copy when needed. Exams will not depend on details from Duckett, that is, the HTML/CSS questions will be self-contained, so that those with prior knowledge of HTML and CSS may get along without having Duckett.

ACCOMMODATIONS: The University of Massachusetts Boston is committed to providing reasonable academic accommodations for all students with disabilities.  This syllabus is available in alternate format upon request. Students with disabilities who need accommodations in this course must contact the instructor to discuss needed accommodations. Accommodations will be provided after the student has met with the instructor to request accommodations. Students must be registered with the Ross Center for Disability Services, UL 211, www.ross.center@umb.edu , 617.287.7430 before requesting accommodations from the instructor.

ACADEMIC CONDUCT: It is the expressed policy of the University that every aspect of academic life—not only formal coursework situations, but all relationships and interactions connected to the educational process—shall be conducted in an absolutely and uncompromisingly honest manner. The University presupposes that any submission of work for academic credit indicates that the work is the student’s own and is in compliance with University policies. In cases where academic dishonesty is discovered after completion of a course or degree program, sanctions may be imposed retroactively, up to and including revocation of the degree. Students are required to adhere to the Code of Student Conduct, including requirements for academic honesty, delineated in the University of Massachusetts Boston Bulletin, found at:  http://www.umb.edu/life_on_campus/policies/community/code