CS2310 Exercise 1:

(a) Use the IC cards to specify the activities involved in organizing a picnic. You can specify the color of an activity using words such as red, yellow, green, etc. (b) How do you handle timing constraints? (c) Do you have any purple activities? If so, how do you decompose or transform them into activities that are not purple? (d) Can you identify certain patterns from the above activities? Describe some of the patterns you have identified. (see the article by James Coplien.)

CS2310 Exercise 2:

The purpose of this exercise is to enable the students to gain familiarity with the active index approach to active information system design. As discussed in class, the hypermedia model and the active index together can be used to model active distributed multimedia information systems. In this exercise we will first concentrate on the active index component.

Let us consider an adaptive distance learning system. The distance learning materials are organized into a hypermedia structure. A student user can browse through these multimedia documents and follow the links to access related multimedia documents. As such, the hypermedia structure is passive, waiting to be accessed by the user.

We can make the hypermedia structure active by associating index cells with selected multimedia documents. The idea is to designate a special document so that when many students access this document, it means they have reached a certain level of proficiency and therefore the learning materials should be adjusted to become more difficult. Likewise when many students access a special document indicating deficiency, it means they have problems and therefore the learning materials should be made simpler. The following index cell types are specified:

Proficiency-level index cell: The proficiency-level index cell is associated with a certain specific multimedia document (such as doc-1, usually reacheable only by proficient students). When this index cell is triggered, it will increase the proficiency-level by 1. When the proficiency-level has reached a predefined threshold (such as 3), it will send message to the instructor, informing the instructor that a sufficient number of students have reached this level of proficiency. It will also send messages to certain documents (such as doc-3, doc-4, doc-5) to become harder.

Deficiency-level index cell: The deficiency-level index cell is associated with a certain specific multimedia document (such as doc-2, usually reacheable only by deficient students). When this index cell is triggered, it will increase the deficiency-level by 1. When the deficiency-level has reached a predefined threshold (such as 2), it will send message to the instructor, informing the instructor that a significant number of students have reached this level of deficiency. It will also send messages to certain documents (such as doc-3, doc-4, doc-5) to become easier.

Self-adjustment index cell: This self-adjustment index cell is associated with multimedia documents containing learning materials (such as doc-3, doc-4 and doc-5). When it receives a "harder" message, it upgrades the learning materials to become harder. Likewise, when it receives a "easier" message, it downgrades the learning materials to become easier.

The above are three index cell types. The instances can be associated with individual multimedia documents (such as doc-1, ..., doc-5). There is also a home page (such as doc-0), with links to the other documents (such as doc-1, ..., doc-5).

(a) Draw state-transition diagrams to define graphically the three index cell types.

(b) Specify the three index cell types formally using mathematical notations ic = (X, Y, S, so, A, tmax, f, g).

(c) Draw a diagram showing a few multimedia documents (such as doc-1, ..., doc-5) enhanced with the index cells to illustrate how these index cells work together to form an active index system.

(d) Following the discussion on the concept of patterns, refine/expand part (d) of Exercise 1, to define more clearly the pattern(s) you have identified. If you feel the patterns you have identified are lacking in certain respect, you may replace them by some new patterns. A visual specification of the identified pattern(s) should be included, using for example visual grammar rules. Remember Alexander's dictum: "If you can't draw a picture of it, it isn't a pattern.")


CS2310 Exercise 3:

The purpose of this exercise is to understand the relationship between active index and Petri nets. Both are tools for the modeling of distributed multimedia systems. Active index cells are added incrementally to build a dynamic index, and the connections can also change dynamically. However, if the massages passed between index cells are deterministically routed, then it is possible to convert active index into a Petri net. Otherwise you must use a Petri net with conditions (predicates) associated with the transitions, or an Evaluation Net (E-net).

(a) Convert the active index you constructed in Exercise #2 into a Petri net (or an E-net).

(b) Take the diagram you drew in part (c) of Exercise #2. Redraw it here (because you may want to make some changes), and now use the marked Petri net to illustrate the scenario. You can draw a sequence of marked Petri net to show how the system works.

Additional Explanation: (a) If we consider how the active index system passes messages and reaches equilibrium state (if one exists), this leads to a formal study using, for instance, the Petri net model. (b) Notice this is the beginning of a systematical approach to build prototypes for active distributed multimedia systems. Can we create a new systematic approach, i.e., a new software process model, for distributed multimedia systems design? (c) The index cells could span several nodes. Therefore, the active index system is a distributed index. The IC Managers must also be distributed to the nodes in the networks.


CS2310 Exercise 4:

The purpose of this exercise is to experiment with the prototyping tool for distributed multimedia computing. First, you need to compile the index cell specifications using the IC_Compiler to create the customized IC_Manager. This customized IC_Manager becomes the CGI program to be invoked when the user clicks on the Web pages. Then, you build the HTML pages for the active index system for distance learning you did in exercise #2. The end result should be a demonstration. If you do it on a Unix workstation, you only need to e-mail your URL to me so that the TA and I can try your demo. If you do this exercise on a PC, please set up a time with the teaching assistant, so that you can demo to the TA on a PC.

All the necessary files are available under ~jung/public/html. The most important document for you to read first is the MICE Developer's Guide.

How to do this exercise on a Unix workstation: Each student will be given a directory to store the html pages and the cgi programs. For example if your name is Smith, then your html directory is ~jung/public/html/Xsmith, and your cgi-bin directory is ~jung/public/html/Xsmith/cgi-bin. You should put your html pages under the Xsmith directory, and your cgi programs under the cgi-bin directory. After that you can set up your working directory, by creating two subdirectories called "TAOML" and "source", and then copying all the files from the three directories IC_Compiler, IC_Manager and IC_Taoml to this "source" directory. Then you can follow the steps spelled out in MICE Application Development Steps. You may find the following tips useful.

How to download the PC version of the IC Compiler: You can also do this exercise on a PC. To do that, you need to download a zip file in the directory http://www.cs.pitt.edu/~jung/IC_Manager/ icm.zip and unzip and install under Windows. Follow the ICM.ReadMe file to set up the PC version of the IC Compiler. An example of the ic.dat and the test.in is included, which relays a single-click or a double-click to the ic_manager. There is also a Corba Unix version for distributed IC manager, which can be used for more advanced projects. However you don't need it for this exercise.

You can also use other commercially available tools, or build your own tools to do this exercise your way. This will give you additional flexibility. In particular you are encouraged to use the newly available developer's environment for component-based software engineering to do this exercise. Since this is an ongoing effort, a lot of patience is needed. Thus there will be 2 bonus points if you succeeded in using the CBSE developer's environment.

The TA needs to see a demo of this exercise because each one of you may be doing different things. Please contact the TA to schedule an appointment with the TA.


CS2310 Project Milestone #1:

When the nature of the project is clear, a project milestone will be posted. For programming projects, this project milestone is for the delivery of the most essential programs. Since this is a class project, programming should be kept straightforward. Remember, the goal is to prove it can be done. Please observe the KISS (Keep it simple stupid) principle. If the program works, you have accomplished the objective. For theoretical projects, this project milestone is for the clear formulation of the problem. All definitions should be clearly worked out by this milestone.