This seminar will focus on modern object-oriented, web-based applications that are built using frameworks and components; we will consider both systems and e-commerce software. Our goal is to examine the recent literature to discover open research questions, especially for Java systems.
The key programming language properties which distinguish object-oriented programming languages from other paradigms are: type polymorphism through inheritance, dynamic dispatch of functions, data abstraction in objects with user-controlled visibility, standardized libraries and interfaces for program building from components, dynamic loading of classes, as well as concurrency (threads) and extensive use of exceptions. These features render building tools for analysis, understanding, testing and debugging these languages more difficult than in the imperative paradigm.
We will be looking at compile-time (static) and runtime (dynamic) analyses that support testing and understanding of these sorts of large applications, primarily written in Java. We will explore specific language constructs such as threads and exceptions, to understand how they increase the complexity of testing and maintaining such codes. There are specific software tools that we will explore, to better understanding their strengths and shortcomings. Other possible topics include analysis-based approaches to security and the use of model checking for debugging.
The seminar format will be to meet one afternoon per week for a 3 hour period (with a break). Class will consist mostly of student presentations from the literature, although Prof Ryder will do some lecturing, too. Normally we will cover 1 paper in depth per class, but there may be classes where we choose to read lots of short papers and do 20-30 minute presentations on each one, to get a broad overview of a topic. The following PDF file contains an updated (2/4/2005) list of readings from which we will select in the seminar. This list augments the older reading lists which appeared here before.
Students will be expected to present at least 2 full-size research papers of their choice. Some weeks we will be reading short workshop papers with 20 minute presentations; each participant will cover several of these papers as well. Presentations will summarize and explain the paper, as well as point out as yet unsolved problems.
Each student will be expected to read all the full-sized papers dicussed in the seminar and to prepare (for class) a summary of each paper we read with listing 2 questions that were raised by reading the paper. These summaries will be recorded as part of student class participation. Expected work will include either a final paper summarizing papers in an area and posing "as yet unsolved" research questions or an annotated bibliography that summarizes all the papers we read during the term. The latter will be limited to 1 page per paper that will contain (i) a paper summary (ii) contributions (iii) relation of paper to other work in the field and (iv)unanswered research questions.
Student participation in class discussion will be part of the course grade.
CS515 is a prerequisite for taking this seminar those students without CS515 will need permission of the instructor to signup. The first meeting of the course will be on Thursday, January 20 at 3pm in Core B. If you cannot attend this meeting but want to register for the seminar, please send email asap to ryder@cs.rutgers.edu.
Last updated by Barbara Ryder at 10:50pm, February 4, 2005