CSU 670 Fall 2007 Out: September 22, 2007 Due September 28, 2007This subproject consists of three parts: A requirements part, an implementation part and a tool part.
The Admin first invokes String KateSloan.Player.yourTurn(String) where the argument string is the admin's store derivative list (currently empty) and the return string is the list of derivatives D1 and D2 that Kate and Sloan put up for sale.
The Admin now invokes String JasonMorgan.Player.yourTurn(String) where the argument string contains the two derivatives D1 and D2 offered by Kate and Sloan. Jason and Morgan recognize both derivatives as great buys and they return a string that says that they buy the two derivatives D1 and D2 and the string also says that a list of three derivatives D3, D4, D5 are for sale.
The Admin invokes String KateSloan.Player.yourTurn(String) where the argument string contains the three derivatives D3, D4, D5 offered by Jason and Morgan as well as a request for raw materials for D1 and D2 to be delivered to Jason and Morgan. In the return string, Kate and Sloan send raw material with 400 variables and 2000 clauses for D1 and 400 variables and 1800 clauses for D2. In the return string Kate and Sloan also buy D5 because it seems cheap. Also in the return string, Kate and Sloan offer D6 and D7 for sale.
The Admin now invokes String JasonMorgan.Player.yourTurn(String) where the argument string contains the two derivatives D6 and D7 offered by Kate and Sloan as well as the raw materials. Jason and Morgan put their clever MAXSAT solver to work to finish the raw materials for D1 and D2 from Kate and Sloan and they find an assignment that satisfies 95% for D1 and 85% of D2. The finished raw materials are put into the return string. The return string also says that they buy D6 and D7. In addition the raw materials for D5 are delivered in the return string.
As a side effect of all those messages, the administrator updates the accounts of the two teams.
The Laboratory Guide introduces you to DemeterJ (formerly called Demeter/Java) but most of what you learn will help you to write Java Programs with DJ and a tiny bit of DemeterJ. So when you go through the Laboratory Guide, focus on class dictionaries and how you would express the adaptive programs you encounter directly using DJ without using the adaptive programming language of DemeterJ.
Name substitution throughout Laboratory Guide and other documents: Demeter/Java -> DemeterJ demjava -> demeterj
The class dictionary for DemeterJ which defines the DemeterJ notation. It is reachable from the DemeterJ and AP-Studio resources page: http://www.ccs.neu.edu/research/demeter/DemeterJava/
Plus additional reading as described below.
PURPOSE: See DemeterJ in action. Study an application of the concepts covered so far in the context of a Java application.
Tasks to be done: Read and work through the Laboratory Guide using DemeterJ and hand in all files modified.
Browse through the DemeterJ User's Guide available from the DemeterJ and AP-Studio Resources page http://www.ccs.neu.edu/research/demeter/DemeterJava/. Focus on class dictionaries and only a little bit on the adaptive programming language of DemeterJ.
Browsing the User's Guide will help you to better understand the Laboratory Guide available from the same resource page.
The purpose of this laboratory exercise is to see adaptive programming in operation in the Java world. Turn in all the files you modified.
Please send mail to csu670-grader@ccs.neu.edu if you find something not clear in the Laboratory Guide.
From a happy user of the Demeter/C++ lab guide. The DemeterJ Laboratory Guide is a translation of the Demeter/C++ Lab Guide.
Hi Crista: I just finished working through the Demeter Lab Guide and already feel a lot more comfortable with Demeter. The Lab Guide is concise, clear and written with a great deal of empathy for the user. Congratulations for doing such an excellent job with the Lab Guide! ...
What to turn in: For the requirements part: your schema (e.g., a class dictionary) and UML descriptions of the generic game flow. For the implementation part: your program with test cases. For the tools part: Modified files.