Java has never been my programming language until this week. I registered the Distributed System class just to fulfill my curiosity. Professor asked students to register for some class project. Among the topics, I find this one is quite strange: Trust in P2P network. As an engineering student, I am quite fascinate about calculation and if it related to programming, then scientific programming! This topic, however, actually pushes me out of my comfort zone. I simply reasoned that I could learn most by working hard on something completely new. This is exactly the reason why I chose the topic. Along the class, I find the algorithm of EigenTrust yields impressive results.
S. D. Kamvar, …, “The EigenTrust Algorithm for Reputation Management in P2P Networks”, Twelfth International World Wide Web Conference, 2003
OK, this is my target for the project. Go a litle further, we could find that this paper is actually quite popular. Wiki has an entry for it. CiteSeerX informs us that it has 331 citations, impressive! S. D. Kamvar, the principal investigator of this work, even goes further to claim that this paper has 1171 citations, according to Google Scholar. I do not know who to trust in this case, but I do know that either number we pick, it still shows that this paper has significant impact to the research community.
Let’s come back to my main topic of this post, the environment of choice for this project is NetLogo. To me, NetLogo seem to be a fun toy environment with cute little turtle animations. How could it help me to reproduce the results of this paper? Luckily, the authors provide web demo version and download-able source code. The web version is painfully slow. So I rule it out and turn to the Java source code. I now have an excellent incentive to learn JAVA.
Regarding to basic Java introduction for scientist, go no further than Programming for Scientists blog. This blog provides much more than this basic introduction. It also has some interesting articles:
- Links to some great articles on programming
- The basics of … C\C++
- The 4 levels of making code work
- 4 ways to become a better programmer
OK these are enough for warming up section. Next step should be reading:
A. B. Downey, How To Think Like A Computer Scientist in Java – 4th
we have web version and pdf version depend on your taste. I myself use both because they all taste good
. So far, those material is more than enough to me. Further on the road, I may consider the following books:
- S. J. Chapman, Java for Engineers and Scientists – 2nd, Prentice Hall 2003
- B. Hahn, K. Malan, Essential Java for Scientists and Engineers, Butterworth-Heinemann 2003
