CS436/636 Syllabus, Fall 2017
Class meets MW 4:00-5:15 in W-01-0063
Professor: Betty O’Neil (eoneil at cs.umb.edu)
Office Hours: MW 3:30-3:45, 5:30-6:45 in S-3-169 and by
Prerequisites: CS310, CS430/630 (these are important),
and officially, CS615 (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 Java well, including use of
Collection classes like HashMap.
Servlets and JSP, third edition, by Joel Murach and Michael
Urban, Murach & Assoc, 2014, ISBN 978-1-890774-78-3, available for
at Amazon or the bookstore. This book cover basic web technology
(HTTP, HTML), servlets, JSP, using the MySQL database, JDBC and tomcat. An
individual print copy of the book is needed for open-book exams.
NOTE: Get a UNIX account for cs436/636 by running
apply for cs636, even if you already have a UNIX account here. This should
be done by Friday Sept. 8 to list your username for Oracle and mysql
accounts. See the class web page at http://www.cs.umb.edu/cs636
and follow the link to the development
setup instructions for UNIX/Linux and your home system. Also read Access to cs.umb.edu systems from offsite.
- Introduction. Basic ideas of test-driven development
(TDD), unit testing, enterprise development. Need for tools to help
database application development. Network and web programming basics:
client-server, server-side vs. client-side programming. The browser as
the universal client. On the server side, usually a single database,
i.e., distributed databases are not to be covered. The idea of the
"impedance mismatch" between programming objects and database tabular
data. Goal of separating work between user-interface (presentation)
experts and "business logic" programmers.
- Pre-web client-server programming. Here we will use
only the simplest client user interfaces, ones using line-oriented text
input. The client connects to the server and its database (possibly
across the Internet) using JDBC. Even in this simple setup, we can use
many important tools and techniques: JDBC, DAO (data access objects),
JUnit for unit testing, and transactions. Also basic ant files
(build.xml), deployment on Windows and UNIX, and use of Eclipse for Java
programming and access to databases via its Data Tools Platform. The
homework will also cover basic HTML, including forms, and basic XML. We
will use Oracle and MySQL full feature databases, as well as the HSQLDB
- Using object-relational mapping, specifically with
the JPA2 standard annotations, to handle the DAO layer and transactions.
JPA takes care of all the JDBC annoyances, and fosters proper database
design for object persistence. We'll look at examples first in the
client-server configuration, then later with the web UI. However,
this year we will not do programming projects using JPA, to free up some
time for more recent topics.
- Web UI with JSP and servlets. Users can fill in
HTML forms and navigate links between pages and this information is
available to our Java classes, and these classes can use databases the
same ways we saw in pre-web programming. For small applications this
works very well. Also, we need to understand everything that happens at
this level to be ready to tackle more advanced web UI.. Here we
introduce Tomcat, the standard application server that can serve JSP and
servlets as well as static HTML, and the Web Tools Platform of Eclipse,
a great help with web development. While the client code we were writing
in client-server programming was naturally single-threaded, the server
code we write here is serving concurrent requests, and thus we must be
much more careful about shared state, object lifetimes and caching. For
performance, we use database connection pooling.
- MVC (model-view-controller) web UI. As soon as
applications use multiple pages with dynamic content, the direct use of
JSP/servlets can cause confusion and disorganization ("spaghetti"),
something like trying to program with only gotos for control. And there
is no clear separation of presentation and business layer work. One
well-known solution is to use a framework that organizes the needed work
and does some of the common work for us. The Spring MVC framework has
been very successful in this direction. We will use a similar but
simpler MVC setup. Here we are still using Tomcat and Eclipse.
- Scaling up. Large sites now
use cooperating apps and multiple databases. We will use two databases
at the same time for our web project, splitting the data management
work, as a step in this direction. We will discuss new trends such as
microservice architecture and GraphQL. These technologies depend on web
services, so we will cover that topic too.
- What about .NET? There are many parallels between
the J2EE web infrastructure that we are studying and Microsoft's .NET
platform. The parallel system to JPA2 and its implementation is the
Entity Data Model and Entity Framework.
Grading: simple point system. Midterm exam: 100
points, Final exam: 150 points, Assignments: various, about 150 points
total. The exams are open-print-books, closed electronic devices. Anyone
without a print copy of Murach will be required to sit at the front of the
class during exams, to be able to share the teacher's copy when needed.
Attendance Policy: Class attendance is strongly encouraged, and
students are expected to participate actively in class by asking and
answering questions. In case of missed class, students are responsible to
catch up with course materials and announcements available at the class
web page www.cs.umb.edu/cs630.
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.
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