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.
that this document is linked to the class web page at http://www.cs.umb.edu/cs637.
- 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.
- HTML and
CSS: Design and Build Websites by Jon Duckett, under $15
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.
Grading: simple point system
- 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:
- 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)
- 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.
- 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.
- 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.
- HTTP in more detail (slides
from Murach's JSP book)
- Forms and PHP M&H Chap. 7, plus coverage on
validation and resubmission of forms.
- 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.
- 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.
- 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
- Designing and implementing a midsize
website M&H Chap. 20. Using multilevel directories to
organize the website.
- Securing the website M&H Chap. 21, 24. SSL
for (https:), authentication (logging in as a known user), securing PHP
files, using Apache .htaccess.
- Using and serving REST web services M&H Chap. 22,
plus online resources. Project on web services for a
business-to-business supply chain.
- Regular Expressions (Regex) and
Validation M&H Chap. 15. Find out the power of regex, used
not just in PHP.
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, email@example.com ,
617.287.7430 before requesting accommodations from the instructor.
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