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 appointment

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.

Textbook: Java Servlets and JSP, third edition, by Joel Murach and Michael Urban, Murach & Assoc, 2014, ISBN 978-1-890774-78-3, available for example 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.

Topics

  1. 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.
  2. 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 memory database.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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, 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