Conversation started 2004-7-2 8:35:05nickbenn (8:35:05):
betty_strong2004 (8:35:23): hi, did
you get my email this am?
(8:35:31): mine too?
(8:35:33): Good Morning Nick...
(8:35:33): Good morning, all
nickbenn (8:35:45): Yep...I've
had responses from three or four of you - all good.
shirleybirdteach (8:36:27): I ran the model for 5000
kangaroos and it was still similar to the smaller results
celiaeinhorn (8:36:33): Nick, do you want voice for
nickbenn (8:36:37): Does anyone have questions on the assignment,
or on the Kangaroo class file we looked yesterday, or the Zoo class file we run
(but didn't really look at).
nickbenn (8:36:40): No thanks,
celiaeinhorn (8:36:48): fine!
shirleybirdteach (8:37:27): Nick, please invite pam to
nickbenn (8:37:29): Exactly, Shirley...and, given that kangaroos
have been around a long time, without any help from us, what should that tell us
about our model?
chtkjohn (8:38:14): please invite
Celia, Pam's not here, please invite her.
(8:39:07): (I am new at this! Did invite Pam and
nickbenn (8:39:18): Yep, I think that's a reasonable
assessment, Shirley. At a minimum, it's suspect. It could be that the
relationships (i.e. formulae) in the model are wrong, and/or the various
shirleybirdteach (8:39:20): They
Information (8:39:22): challengedianne
has joined the conference.
it tells us our model needs some or a lot of work depending on how well you know
kangaroos or java
I think the age is a big factor
nickbenn (8:39:47): Exactly right. We
need to fix something.
(8:40:00): fix it first and then go from there on debugging?
Information (8:40:02): vikingixiwarrior has joined the
nickbenn (8:40:12): The easiest to fix is the problem with
the initial population of kangaroos all being newborns.
Information (8:40:20): chtvanob has joined the
Information (8:40:45): chplvald has
left the conference.
pamrdoodle2002 has joined the conference.
nickbenn (8:41:17): I have
sent my thoughts on this, as well as the transcript from yesterday, and updated
versions of the Java files, to David; he'll be posting them on the Challenge/STI
site this morning.
Great. Maybe I can make sense of all of this.
chidhkratzer (8:42:08): The files are posted on sti web
nickbenn (8:42:08): At least one person dug into the Zoo.java
file, to see how it worked. Did anyone else try that?
(8:42:14): Great! Thanks, David!
(8:42:17): Any word on cabasa?
shirleybirdteach (8:42:32): I looked at it briefly, did
not delve into it
mavis and i looked but didn't try anything
nickbenn (8:43:26): Well,
for those who didn't look too deeply (or at all) at Zoo.java, a
jkraloff2001 (8:43:36): I think I
got a good feel for what you were doing in Zoo from my introduction to java this
spring.Many of the important decisions were being made in Kangaroo
shirleybirdteach (8:43:39): it looks like it just
nickbenn (8:44:12): We have a class (Kangaroo) that knows
(in some way) how to do some very basic things a Kangaroo does: breed, survive,
and get older. What should a zoo know how to do?
(A zoo that just has kangaroos).
(8:44:49): Are we suppose to have telnet up?
(8:44:58): Nope...this is just Q&A
betty_strong2004 (8:45:15): it should maximize the
conditions for survival and minimize the conditions that cause deaths
challengedianne (8:45:28): How to maintain their
environment. Know what they eat How to understand kangaroo behavior
chtkjohn (8:45:31): you mean like a zoo determines feed
and carrying capacity?
nickbenn (8:45:42): Well, let's think even more
simply for now.
nickbenn (8:45:51): What do you think the Zoo program
is doing now?
chtkjohn (8:46:01): know what
age they can breed at?
(8:46:02): zoo keeps track of the numbers and input and outputs
nickbenn (8:46:17): Actually, the Kangaroos know that themselves
Pretty close, Shirley.
nickbenn (8:47:03): The Zoo program we have
today reads how many kangaroos you want to start with, and the number of years
to run, from the command line. Then, it creates that many kangaroo objects, and
starts advancing year by year.
(8:47:08): 13 people on voice conference on java programming
celiaeinhorn (8:47:18): i just bring em back when they
get kicked off
celiaeinhorn (8:47:25): and
friend nick is teaching
nickbenn (8:47:35): At each year end, it
"asks" each kangaroo if it survived the previous year...
Information (8:47:38): alanrayaisc has joined the
Information (8:47:45): chplvald has
joined the conference.
nickbenn (8:48:09): then, if the kangaroo
survived, it "asks" each kangaroo "Do you have any offspring for me?" (i.e. it
calls the "breed" method).
nickbenn (8:48:35): If the kangaroo didn't
survive, it is removed from t he population; if it survived, and has offspring,
that offspring is added to the population.
nickbenn (8:48:50): The zoo
keeps track fo how many died, how many were bord, and the end result, and prints
pamrdoodle2002 (8:48:54): nick maybe
talking but I don't hear anything...are you using voice?
(8:49:00): Then it advances to the next year, and does it all
Information (8:49:13): pamrdoodle2002
has left the conference.
nickbenn (8:49:19): I'm not talking. My
fingers work better for this sort of thing
challengedianne (8:49:27): Is Nick speaking or just
betty_strong2004 (8:49:37): Nick, are
all the offspring being added into the breeding population?
(8:50:22): Yes, betty. But they are being added with age = 0, and our
fertility rates array (in Kangaroo.java) has a fertility of 0 in the first year
of live, and a fairly low fertility in the second year of life.
(8:50:33): So newborns won't immediately breed.
Information (8:50:37): chplvald has left the
shirleybirdteach (8:50:55): I only
saw the first part of the code, just realized it. It helps to look at the code
chtkjohn (8:51:11): so what do we change?
our mortality rate? ilncrease the fertility rate?
Well, we do some research...to get a better handle on both fertility and
nickbenn (8:51:53): in fact, for some kangaroo subspecies,
it is not at all uncommon to have three offspring in two years.
shirleybirdteach (8:52:06): What about randomly picking
nickbenn (8:52:23): So, we might also change our model, to
advance in something smaller than one year at a time.
(8:52:29): Very good question, shirley.
(8:52:58): challengedianne has left the conference.
(8:53:00): In fact, if you get a chance to look at the updated Zoo.java,
you'll find that's exactly what I did for the initial population: pick random
age for each kangaroo, between 0 and 6 years old.
But really, that's another area for research:
nickbenn (8:53:51): Is
there an established practice for how an existing population of kangaroos is
transplanted to somewhere else?
nickbenn (8:54:01): Do they just catch
a bunch of 'em, and take 'em all?
nickbenn (8:54:14): Do they try to
focus on young-but-breeding kangaroos?
(8:54:28): Could you e-mail us the update today, or is it not only on
nickbenn (8:54:32): DO they include any pregnant females, or
females with joeys in pouch?
nickbenn (8:54:40): It is on the
challenge web site, on the STI page.
(8:54:45): Assumptions go here
nickbenn (8:56:09): So, the
moral of this whole story is: we call our crazy aunt, and say "We really
need to investigate more about how kangaroos breed, how long they survive, and
how others have successfully transplanted kangaroo populations in the
nickbenn (8:56:36): "Otherwise, I'm not investing a dime in
'SIx Flags Over Kangaroos'!"
(8:56:45): And thats what successful ppeople do before they get into
nickbenn (8:57:07): Exactly right.
shirleybirdteach (8:57:15): invite Pam again, she got
nickbenn (8:57:59): ANy other questions/reflections on the
problem, or on the Java code?
(8:58:46): (thx, Shirley!)
nickbenn (8:59:17): I invite all
who are interested to look at my reflections on the homework, and on my
modifications to the Java classes, on the challenge/sti site.
chtkjohn (8:59:38): thank you
betty_strong2004 (9:00:12): Nick, if we want to be able
to really help out students, would it be better to do some reading on Java or
possibly take a class on it?
(9:00:16): i've been intermitten, what is the path for the
nickbenn (9:01:20): Well, it would
certainly be good for those students (and the teachers, if possible) to
participate in the java track at the kickoff. However, it's generally only
possible to participate in one track or another (i.e. Starlogo), not both. So,
that can be tricky.
nickbenn (9:01:49): But in general, I think it's a
good idea to do some reading/playing with Java.
celiaeinhorn (9:02:02): Or Betty, you can get your team
a mentor who can help with Java!
(9:02:13): good idea!!
(9:02:26): Our mentor list is at
(9:02:32): not sure about the s or not
Java is a wonderful language in a lot of ways - not least of which is that you
can download a java compiler (and entire development environment) free, and you
can download mountains of tutorial and documentation information free, all from
Sun (the folks that invented Java).
(9:02:52): thank you
nickbenn (9:03:48): And yes: one of
the most important things to do, especially if the team has minimal experience
with Java (or StarLogo, or Excel, etc.), is find a mentor who can help with that
aspect (in addition to the same or another mentor helping in the problem
nickbenn (9:04:09): this link is on WebCT, but here it is
nickbenn (9:04:27): That is the home page
for all of Sun's Java stuff: the downloadable software, documentation,
nickbenn (9:05:09): It's an invaluable
nickbenn (9:06:18): Now, here's a question for
nickbenn (9:06:53): If we wanted to update our Java
program to include certain predators (some animals - even birds - prey on very
young kangaroos), what might we do, from a Java perspective?
shirleybirdteach (9:07:18): make a new
nickbenn (9:07:36): And what would that new class model,
shirleybirdteach (9:07:45): The dingo
ate my baby!
nickbenn (9:07:49): Hahahahahaha
(9:07:52): Very good
chtkjohn (9:08:00): i
was thinking of vicous rabbits with long fangs
(DIngoes are definitely predators that attack kangaroos.)
jkraloff2001 (9:08:20): zoo would then keep track of
roos and the pred numbers?
(9:08:40): And eaten kangaroos
betty_strong2004 (9:08:43): will you have predators at
a theme park killing in front of visitors?
Seriously, exactly right: In Java, we write classes for each of the different
kinds of "things" in our model: Kangaroos, dingoes, etc.
shirleybirdteach (9:08:58): disease
(9:09:35): Hahaha...probably not, Betty...or at least, not intentionally.
But birds will still kill young joeys, no matter what we do. And, if it is a
wildlife-style park, then there will indeed be other predators.
betty_strong2004 (9:09:51): ok
irene_anne_lee (9:09:56): would dingos also be
implemented using hashset objects then tracked using a separate
nickbenn (9:10:21): And the "zoo"/park/etc. class will indeed
hold populations of all of these things.
nickbenn (9:10:49): Good
question, Irene. We'd have to think about the best "containers" for the
nickbenn (9:11:48): (By the way, for those that
looked at the zoo class: we could have avoided using an array altogether;
iterating over a HashSet can look a little confusing, for those looking at Java
code for the first time, so I used an array to make that part a little more
nickbenn (9:12:16): That brings up an important
nickbenn (9:12:36): One of the things we do in any programming
language is manage collections of things - in arrays, sets, lists,
nickbenn (9:13:27): That is a critical thing to know about any
new language: what are the facilities for managing groups of things, and if
there are different kinds of facilities, what are the differences between
nickbenn (9:14:38): StarLogo is very cool in this respect: we
can write some very involved stuff, without having to do any of that collection
management ourselves. We let StarLogo keep track of that, and we just say things
like: "Ok, now tell all the dingoes to hunt kangaroos!"
shirleybirdteach (9:15:29): there are alot of pred/prey
models for starlogo
nickbenn (9:15:31): (We can, of course, manage
some of those collections ourselves, in StarLogo - in some cases, depending on
the design of our program, we have to. But we can go a long way without doing
nickbenn (9:15:39): Exactly, Shirley.
(9:16:50): Ok, that's all I've got for this morning. Any other
jkraloff2001 (9:17:35): If one
manages to create a good starlogo model and had the time and the expertise would
a java version add any great understanding or streamline the computation
nickbenn (9:18:01): Well, they would be used for different
nickbenn (9:18:33): In Java, we tend to write a lot
more code on the details of how the different objects work.
jkraloff2001 (9:19:19): I guess that is my real
question - what types of things do java or starlog best address?
shirleybirdteach (9:19:44): starlogo addresses
nickbenn (9:19:53): Starlogo is really best for
agent-oriented models: where you're going to turn your animals loose, and say
"Go do what yer gonna do!"
nickbenn (9:20:13): Ini our example so far,
we have no interaction between kangaroos.
nickbenn (9:20:27): We don't
(yet) have any predators.
(9:20:39): (I will invite you to a Star Logo conference at 10:30.
David is archiving. I am inviting. It takes a village.)
shirleybirdteach (9:20:53): thanks nick
(9:20:57): So, there would be little gained, at this point, from moving to
StarLogo. However, if we are considering looking at interaction between
nickbenn (9:21:33): such as: do kangaroos form groups
(they do, by the way), and does the existence of size of those groups affect
fertility or mortality (it does),
nickbenn (9:21:46): we could use
StarLogo to model that.
nickbenn (9:22:14): (Much more easily than we
could do that in Java: the folks at MIT have done the hard work for us, in that
nickbenn (9:22:21): On the other hand, ...
(9:23:23): if our model uses a lot of mathematical manipulations; if it
doesn't involve interaction between independent or mostly-independent entities;
if it involved interation across more than two dimensions (celestial mechanics
problems, for example), then StarLogo is probably not our best bet.
jkraloff2001 (9:24:46): thanks that
nickbenn (9:25:29): Also, remember that, in terms of position,
Starlogo uses a discrete map. If you want to model detailed movement (again,
gravitational problems come to mind), it might not be the best
nickbenn (9:25:36): err, choice.
Any other questions?
nickbenn (9:27:55): ok! I'll be sending this
transcript for David to post on the challenge/sti site, as well. Please feel
free to ask questions via Yahoo or e-mail (or WebCT, when it is
nickbenn (9:28:16): Thanks, all! Good questions, good
thinking about the problem.
(9:28:21): thanks Nick