May 2006 Archives

2006-05-31 20:01:28

Algorithm Animation

I read two papers today.

J. L. Bentley. Tools for experiments on algorithms. In R. F. Rashid, editor, CMU Computer Science: A 25th Anniversary Commemorative, pages 99--23. ACM Press, New York, 1991.

I had thought that Algorithm Animation is for education, however Bentley told me, at this paper, that Algorithm Animation is also useful for algorithmic experiments. He gave some important suggestions. I just pick some of it to here, since some were in previous posts.
  • Write your workhorse program well.

    Build the experiments around, not into, your program. Use a single program for animations, experiments, and production runs; the various views of the computation can help to identify bugs.

  • Animate your program.


Some web sites about Algorithm Animation are following:
  • ALGAE is a framework for quick construction of algorithm animations. ALGAE is aimed at computer science instructors who, like myself, employ LCD overhead pads or projectors to display computer video output in the classroom or who teach web-based courses in programming and data structures.
  • The Complete Collection of Algorithm Animations (CCAA) is a comprehensive collection of links to all of the algorithm animations that can be run over the Internet. Each of these sites provides animations that aide the learning and understanding of algorithms.
Here is some history of Algorithm Animation in Mei Ki Amy YUNG's On-line Animation for a Programming Language Course.

I also found a interesting web site, TefoA - Testbed for Algorithms

Posted by AbnerCYH | Permanent Link | Categories: Notes

2006-05-31 16:17:21

Sociobiology: The Phoenix effect

Kevin R. Foster's ``Sociobiology: The Phoenix effect'' is really interesting. I read it from News and Views,Nature 441, 291-292 (18 May 2006).

A spore-forming bacterium can escape from social collapse and extinction with a single mutation that has a dramatic effect. Here is evidence that a cooperative system can recover from the very brink of destruction.

The interesting part is that the The Phoenix effect is just based on mutation-level. However, I don't know what benefits is from cheating?

The paper ``Evolution of an obligate social cheater to a superior cooperator,'' by Francesca Fiegna, et. al. seems also interesting, but there are too many biological terms. :(

2006-07-05 Update: Another related article, R. Craig MacLean and Ivana Gudelj, Resource competition and social conflict in experimental populations of yeast, Nature 441, 498-501 (25 May 2006)

Posted by AbnerCYH | Permanent Link | Categories: Papers

2006-05-31 14:15:21

Interesting Links or News

I used Listmixer to manage my notes of surfing such as funny articles, websites almost for two months. It is so convenient to record the URLs like POST-IT.

However, it also make me not so arduous to digest what I read on this blog...:)

A good news is that the global ozone layer should be recovered. I am not expert on this field, but it is a good news for everyone living on earth. More detail refer to ScienceDaily: Earth's Ozone Layer Appears To Be On The Road To Recovery.

``British Professors Seek to Cut Ties to Israeli Scholars'' is a weird news. I believed that the professors or faculties have rights to present his opinions about religions, politics, etc. However, it seems not suitable to boycott Israeli academe at the level of faculty union. This movement seems like the movement of fair trade coffee. The behavior might be good for personal, but I think that they threatened to boycott academic exchange for political goals is a threat to academic freedom.

Michael Mandel's column ``Bordering on Absurdity'' caught my eyes, too.

What are the objections to such an open-borders policy? The obvious one is that letting in a higher number of immigrants would drive down wages. However, economist David Card, of the University of California at Berkeley, has shown that there's little evidence that pay has gone down significantly in cities with large immigration populations (see BW Online, 5/08/06, "The Economic Case For Legalizing Illegals").

I found it out and read it.

In a 2005 study, Borjas and fellow Harvard economist Lawrence Katz calculated that the arrival of unskilled immigrants from 1980 to 2000 depressed wages of high school dropouts relative to those of educated workers by 8%. But in a less noticed part of the study, they found that wages of high school dropouts fell only by 3% to 4% if employers installed new machinery to make more productive use of workers. That's an "almost undetectable" difference from his own results, says Card.


Posted by AbnerCYH | Permanent Link

2006-05-27 23:59:54

Me

My friend bought a new DC..........

The cloth I wore is the memorial cloth of CYCU.

me

Posted by AbnerCYH | Permanent Link

2006-05-26 21:50:32

CPSC 590: Research Methods in Computer Science

I had thought that I am good at gathering data, however I am not. I found a great web page about Research Methods in Computer Science but I didn't find it before.

CPSC 590, Research Methods in Computer Science, September 2003

An introduction to methods used in computer science research. Topics include techniques and conventions in research methods, evaluation approaches, and presentation of results.


Posted by AbnerCYH | Permanent Link | Categories: Notes

2006-05-24 17:21:25

Big Bad News

----- Forwarded message from Frank K?ster -----

From: Frank K?ster Subject: [Thomas Esser] teTeX: no next release To: teTeX maintainers Date: Mon, 22 May 2006 14:43:41 +0200 Old-Return-Path: User-Agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/22.0.50 (gnu/linux)

From: Thomas Esser Subject: teTeX: no next release To: tetex@dbs.uni-hannover.de, tetex-pretest@dbs.uni-hannover.de, tetex-announce@dbs.uni-hannover.de Cc: tex-live@tug.org Date: Mon, 22 May 2006 10:38:21 +0200 Follow-Up: tetex@dbs.uni-hannover.de User-Agent: Mutt/1.5.9i Xref: localhost.localdomain mail.tetex:730 mail.tex-live:2929

Hi,

I am sorry to announce some bad news about teTeX: there won't be a next release. To be more precise: there won't be a next release done by me.

In the past, preparing a release ment to spend all my spare time for about 2-3 month on getting the release out (in addition to doing regular updates on yources and the texmf tree). The time spend on it increased with the size of the distribution.

My current development tree (just as it is today) is available from rsync://tug.org/tetexdevsrc/ so if anybody wants to pick it up, just do it.

Basically, teTeX consists of a source tree and a texmf tree with fonts, macros, configuration, etc.

The source tree of teTeX-3.0 is included 100% in TeX Live (http://www.tug.org/texlive/) which is released once per year. So, there is no doubt for me that all the stuff that is now included in the source tarball will be maintained actively. There are some parts which have been originally written by me (scripts such as updmap, texconfig, fmtutil) and I think that it won't be a problem for me to continue to maintain these things (and submit updates into the TeX Live repository).

The texmf tree of teTeX is a monolitic distribution of individual CTAN packages. I am unsure if someone else wants to maintain such a monolitic monster package. I am sure that it would be much better to set up a package based infrastructure, such as MikTeX's. This infrastructure was recently ported to Linux, so using this might be a good start. Another possible source of information about creating TeX packages is again TeX Live. The work done there can be used to create debian packages in a mostly automated way.

All the best,

Thomas

PS: Follow-Up set to tetex@dbs.uni-hannover.de.


Posted by AbnerCYH | Permanent Link

2006-05-24 17:18:10

Things in Forthcoming Weeks

I have some tasks in the forthcoming weeks.
  • Compiler Construction: 6/2 project 3
  • NSC Project: Approx. algorithms survey, the defition of preformance ratio of BIDS problem. (6/5)
  • Workshop on String Processing and Approximation Algorithms: I might need to read something more about SDP.
    M.X. Goemans and D.P. Williamson, Improved Approximation Algorithms for Maximum Cut and Satisfiability Problems Using Semidefinite Programming, J. ACM, 42, 1115--1145, 1995. And M.X. Goemans and F. Rendl, Semidefinite Programs and Association Schemes, Computing, 63, 331--340, 1999.
  • Paper review: 5/31
  • I will attend the Workshop on BioAlgorithmics. I need read more bio-algorithms before it.

Posted by AbnerCYH | Permanent Link

2006-05-22 01:24:41

A Short History of Computational Complexity

Today I read Lance Fortnow and Steve Homer's paper, A short history of computational complexity. Bulletin of the European Association for Theoretical Computer Science, 80, 2003. Computational Complexity Column.

It is an interesting article.

Quickly though we discovered that the basic Turing machine model fails to account for the amount of time or memory needed by a computer, a critical issue today but even more so in those early days of computing. The key idea to measure time and space as a function of the length of the input came in the early 1960's by Hartmanis and Stearns. And thus computational complexity was born.

Berman and Hartmanis [BH77, HB78] formulated their isomorphism conjecture. The conjecture stated that all NP-complete sets are P-isomorphic (that is, isomorphic via polynomial time computable and invert-ible isomorphisms).

I had surprised that there are so many terms about complexity such as Algorithmic Complexity, Computational Complexity, Proof Complexity. This article explains some of them like Structural Complexity which studies the structure of classes of computational complexity, but I were misled by its name to that it is about measuring something of structures of (mathematical) objects.

Another very interesting section is Probabilistic Complexity.

In 1977, Solovay and Strassen [SS77] gave a new kind of algorithm for testing whether a number is prime. Their algorithm flipped coins to help search for a counterexample to primality. They argued that if the number was not prime then with very high confidence a counterexample could be found.

This algorithm suggested that we should revise our notion of evencient computation". Perhaps we should now equate the evenciently computable problems with the class of problems solve in probabilistic polynomial time. A whole new area of complexity theory was developed to help understand the power of probabilistic computation.

Probabilistically Checkable Proofs also appeals my attention, because the Algorithm Seminar II studied approximation algorithms and PCP plays very important role in this fields.

In 1988, Ben-Or, Goldwasser, Kilian and Wigderson [BGKW88] developed the multiprover interactive proof system. This model has multiple provers who cannot communicate with each other or see the conversations each has with the verifier. This model allows the verifier to play one prover off another.

Fortnow, Rompel and Sipser [FRS94] show this model is equivalent to probabilistically checkable proofs, where the prover writes down a possibly exponentially long proof that the verifier spot checks in probabilistic polynomial time. They also show that every language accepted by these proof systems lie in NEXP, nondeterministic exponential time.

In 1990, Babai, Fortnow and Lund [BFL91] show the surprising converse --- that every language in NEXP has probabilistically checkable proofs. Babai, Fortnow, Levin and Szegedy [BFLS91] scale this proof down to develop "holographic" proofs for NP where, with a properly encoded input, the verifier can check the correctness of the proof in very short amount of time.

And I and my classmates thought that Arora is the inventor of PCP, however, according to this article, the inventors of PCP should be the others, and Arora made a important contribution :

In 1992, Arora, Lund, Motwani, Sudan and Szegedy [ALM+98] building on work of Arora and Safra [AS98] showed that every language in NP has a probabilistically checkable proof where the verifier uses only a logarithmic number of random coins and a constant number of queries to the proof.

Arora et. al. show that, unless P = NP, every MAXSNP-complete set does not have a polynomial-time approximation scheme. For each of these problems there is some constant $\delta>1$ such that they cannot be approximated within a factor of £_ unless P = NP.



Sections 7, 8, 9 introduce some fields of complexity that are familiar to CS students. (OK, I am ignorant and ill-informed.)

Descriptive complexity aims to measure the computational complexity of a problem in terms of the complexity of the logical language needed to define it. As is often the case in complexity theory, the issues here become more subtle and the measure of the logical complexity of a problem more intricate than in computability theory. Descriptive complexity has its beginnings in the research of Jones, Selman, Fagin [JS74, Fag73, Fag74] and others in the early 1970's. More recently descriptive complexity has had significant applications to database theory and to computer-aided verification.

The ground breaking theorem of this area is due to Fagin [Fag73]. It provided the first major impetus for the study of descriptive complexity. Fagin¡¦s Theorem gives a logical characterization of the class NP. It states that NP is exactly the class of problems definable by existential second order Boolean formulas. This result, and others that follow, show that natural complexity classes have an intrinsic logical complexity.


Posted by AbnerCYH | Permanent Link | Categories: Papers

2006-05-17 22:51:56

Complex Networks

Kevin seemed interested in MIDS problem on permutation graph. If he chose that as topic of master thesis, then I might not chose close topics, e.g., MIDS on chordal graph.

I might chose the topics about complex network, since my NSC project is about graph theory and I am interested in complex science.

Theoretical Computer Science, Volume 355, Issue 1, Complex Networks (6 April 2006)

Complex networks are large networks encountered in practice that seem to lack any apparent structure. Typical complex networks include internet topologies, web graphs, peer-to-peer networks, social networks (cooperation between people, economical exchanges, friendships, and others), biological networks (protein/gene interactions, brain, food webs), linguistic networks (co-occurrence graphs, synonyms), and many more. Precisely defining a complex network is a tricky proposition since it is hard to set up a definition that is broad enough to capture the above examples, yet restrictive enough to make mathematical sense.



Some other articles in which I am interested:

Posted by AbnerCYH | Permanent Link

2006-05-11 20:51:48

Workshop on BioAlgorithmics

My adviser Prof. Tang will attend the Workshop on BioAlgorithmics 2006 in National University of Singapore, and $3$ students go with him. I might be the one of them. :-)

I might need to improve my ability of listening and the knowledge about computational biology.

Posted by AbnerCYH | Permanent Link

2006-05-10 03:44:27

Bibliography reference manager

I am using JabRef. It seems good. It is written in Java, so that I can use it on Linux (at Lab) and on WinXP (at home). The speed is acceptable, I am almost not aware that it executes on JVM.

It also could link to the e-papers on hard-disks, although it can't not "manage" files in fact, this feature helps me can reduce the long file name to short file name as bibtexkey.



Some colleges will buy some softwares like Ref. Manager to help students to manage their bibliography file, however they are too expansive for personal usage. It might mean that the bibliography is useless after student graduating, so I think the free or cheap bibliography reference managers are necessary.

However, JabRef is specific to Bibtex, there are some drawbacks for people who don't use bibtex. For example, in LaTeX the format of citation is controlled by bibtex, so that JabRef doesn't worry about it, however it is drawback for not latex users. i.e., a imaged article,

FRAXIS Lu, "P=NP is trivial," J. ACM, vol. 100, pp. 20-22, 2010.

According to the requirements of different journals, it might transform to other format like

Lu, FRAXIS, "P=NP is trivial," J. ACM, vol. 100, pp. 20-22, 2010.

or

FRAXIS Lu, "P=NP is trivial," J. ACM (2010), vol. 100, pp. 20-22.

But, JabRef can't do it. (However, it is not his fault.)

Posted by AbnerCYH | Permanent Link

2006-05-08 02:00:01

Language

It seems a taste that computer scientist like to model things with computer language especial to complex phenomena.

Posted by AbnerCYH | Permanent Link

2006-05-08 00:05:20

I made a mistake

I tried to use the experimental feature "Import from BibTeX" of CiteULike. I download the. bib file of "Ordered Vertex Partitioning" form the link on DMTCS, and I made CiteULike to import the .bib file.

I just thought such .bib file is a text file containing only bibliography data of the paper "Ordered Vertex Partitioning", but I were wrong! It is the whole bibliographies data of DMTCS. Thus, my account of CiteULike became too mass to be useful for me.

Ohmmm....

Posted by AbnerCYH | Permanent Link

2006-05-07 18:42:36

Non-Standard Logics

Another interesting thing!

Peter Suber maintains a bibliography of Non-Standard Logics. Although I am not interested in logic, it is still fun to know how many kinds of logics is in the world. Nevertheless, this list is not complete.

* Categorical logic * Combinatory logic * Conditional logic * Constructive logic * Cumulative logic * Deontic logic * Dynamic logic * Epistemic logic * Erotetic logic * Free logic * Fuzzy logic * Higher-order logic * Infinitary logic * Intensional logic * Intuitionistic logic * Linear logic * Many-sorted logic * Many-valued logic * Modal logic * Non-monotonic logic * Paraconsistent logic * Partial logic * Prohairetic logic * Quantum logic * Relevant logic * Stoic logic * Substance logic * Substructural logic * Temporal (tense) logic

Posted by AbnerCYH | Permanent Link

2006-05-07 18:32:36

the world of computability and complexity

I saw it from the web page of Neil Immerman's coures.

It is a diagram of the world of computability and complexity!!! descriptiveSimple

Posted by AbnerCYH | Permanent Link

2006-05-07 02:35:42

Format of Note Make Different

I had written an entry at 2006-04-09 about Automated Reasoning. After that, I started to read the prof. R. C. T. Lee's book and wrote some notes with LaTeX.

At present, I decide to stop reading, because the materials of it don't interest me. The notebook, unlike others in this blog, will not be put on Internet. That's because this notebook is in PDF format.

Although the content of this note is as poor as my other notes, that are written in HTML format, in this blog, I still feel some different between them. The PDF format seems more formal than HTML format. so that putting it on Internet will make me embarrassed because of the significant difference between content and form.

However, I will read Martin Davis' Computability and Unsolvability as planned before. (It's fun that the book which I checked out from library is donated by prof. C. L. Liu.)

Posted by AbnerCYH | Permanent Link

2006-05-07 00:24:43

LaTeX and BibTeX

I started to write notebook with LaTeX as I mentioned at the last entry. For consistency of notebook, I use bibtex to maintain bibliography. The followings are some resources.

Some introductory articles for BibTeX

Tools :: Database Management
  • JabRef is an open source bibliography reference manager. The native file format used by JabRef is BibTeX, the standard LaTeX bibliography format.
  • gBib is a user-friendly editor and browser for BibTeX databases. You can use it also to insert citations inside a LyX document. (For linux)
  • BibDB - A BibTeX Database Manager for DOS and Win32.


Tools :: Toolkits They are only for Unix, but last one.

Resources Collection

LaTeX or BibTeX for specific fields

I also found some style files, i.e., acm.bst, algorithmica.ltx, ieeetr.bst, talg.ltx, acmtrans, computational-complexity, ieeetran, kluwer, nature, siam. e-jc.bst.

However, many journal publishers provided related files for submitter.

Posted by AbnerCYH | Permanent Link

2006-05-05 21:25:52

Personal Research Notebook / Journal

When I wrote down my new idea, that is about designing algorithm for my NSC project, on the notebook dedicated to this project, I suddenly thought that I thought that it might be better to write all idea on the common notebook; this approach might cause a little bit mass, however the text search tools can solve this problem.

Actually I have this idea for a long time, so that I read some books such as "The Craft of Research", "Writing the Laboratory Notebook", and many many others. Nevertheless, those books do not focus on the notebook for non-experimental record use or lack for details.

Thus I just googled for the template of research notebook, and luckily I found a web page for the non-laboratory fields --- Notes on the Personal Research Notebook / Journal. This web page doesn't really have rich content. it just tell people "notebooks are helpful even for non-laboratory fields".

However, from the links and links in it linked, I found a book which seems useful --- Notebooks of the Mind : Explorations of Thinking, by Vera John-Steiner. And I pretty like this article "A Letter to Research Students" by Duane A. Bailey who is a computer scientist, and "Informal Guide to CS" on his homepage. (It seems not written by him.)

Posted by AbnerCYH | Permanent Link

2006-05-04 22:32:03

BioLinux

As the bio-related researchers started to use Linux in their researches, some softwares were released with prefix "Bio" of their name, such as Bio-Python, Bio-Perl, etc.

Dose a bio-science specific distribution of Linux exist?

The answer is "YES"! That's bioknoppix.

Bioknoppix is a customized distribution of Knoppix Linux Live CD. With this distribution you just boot from the CD and you have a fully functional Linux OS distribution with open source applications targeted for the molecular biologist. Beside using some RAM, Bioknoppix doesn't touch the host computer, being ideal for demonstrations, molecular biology students, workshops, etc.

Nevertheless, the last update time seems 2004-11-15.

The other is BioLinux, that does not another Linux distribution, but to provide add-on RPM packages for existing Linux distributions. It seems no update after 2005.

However not all projects stopped, BioLinux-BR Project, that named for Bioinformatic + Linux + Brazil, released BioLinux-BR 2.1 at Jan/26/2006.

Firedragen (not a name, an ID on BBS) recently announced that he will start a Biolinux Project too. I expect it.

Posted by AbnerCYH | Permanent Link

2006-05-04 17:53:51

Write Down The Algorithm

Today, when I read a paper with ugly pseudo code, I thought about a question: Did somebody invent a language of algorithm description? The first item in Google is ``RGK Loos. The Algorithm Description Language ALDES (Report). ACM SIGSAM Bull., 10(1):15--39, 1976'', and I googled for more informations, i.e.,

Posted by AbnerCYH | Permanent Link

2006-05-02 22:53:31

Reading Computer Programs: Instructor's Guide and Exercises

Ref. Reading Computer Programs: Instructor's Guide and Exercises by Lionel E. Deimel and J. Fernando Naveda. Educational Materials, CMU/SEI-90-EM-3, August 1990, Software Engineering Institute, Carnegie Mellon University.

The authors also maintain a up to date annotated bibliography -- Code Reading and Program Comprehension.

This paper spent much time in discussing how people read programs. However, it might interest people who study software engineering management or cognitive science. This paper also contains some example codes and annotated bibliography, so that it is just 50 pages excluding codes and bibliography.

The approaches of reading programs are very code-specific, i.e., our choice of reading program bottom-up or top-down is according to the quality of codes and completeness of documents.

4.3. Tools and Techniques

There is 30 suggestions in this section.
  1. Be aware that code and comments (or other documentation) may not agree. The code may be correct and the comments wrong, or the reverse. Both may be wrong.
  2. Use indentation to help understand structure. However, incorrect indentation (more likely to come from a human than a compiler or prettyprinter) may be misleading.
  3. Try to build a model of the style conventions used in the program. If, for example, a consistent scheme has been used for identifiers, this knowledge can be used to help understand the meaning of newly encountered identifiers. It is important to read the program with the programmer's conventions, rather than your own, in mind.
  4. Be wary of apparently analogous functions performed in non-analogous ways.
  5. Consider the possibility that the programmer did not know what he was doing. (If a reader need to make this decision, this code might be not worth to read.....)
  6. Watch out for code written to overcome compiler or computer limitations or code containing apparently magic numbers.(That's why they are magic.)
  7. Watch out for use of nonstandard language features.(I.e., read and understand the functions of smallest structured code units, "if ... else ...." et al., and read larger code fragments by those knowledge.)
  8. Odd-looking arithmetic operations may be required to maintain accuracy. Consider possible roundoff implications.
  9. Because changes to the code often introduce errors and inconsistencies, look for evidence of changes.
  10. If, after a good deal of study, a piece of code is making no sense, ask another programmer to look at it. Consider explaining to him what you think you do know.
  11. Search for information, particularly in documentation, that relates objects in different knowledge domains, for example, comments that associate variables with problem-domain objects.
  12. Be wary of objects that have the same identifier but different scopes. Reasoning about the wrong objects can be frustrating.
  13. Be wary of objects having nearly the same names, particularly those whose identifiers differ by a single character.(On the other hand, guess the thoughts of programmer. It might helps for understanding codes just like programming style, however the trade-off is hard to chose.)
  14. Particular code may be an artifact that no longer serves a function.
  15. Be sure you make no inessential assumptions when reasoning about concurrent programs.
  16. Be alert for variables that serve more than one function or that are used inconsistently, as they can mislead the reader.
  17. The effect of apparent bugs in the program can be undone by an inverse bug somewhere else.
  18. Use symbolic execution to determine function. (I can't understand the meaning of symbolic execution. Reference: Littman, D. C., Je. Pinto, S. Letovsky, and E. Soloway. Mental Models and Software Maintenance. In Empirical Studies of Programmers: Papers Presented at the First Workshop on Empirical Studies of Programmers, June 5-6, 1986,Washington, D.C., E. Soloway and S. Iyengar, eds. Norwood, N.J.: Ablex, 1986, 80-98. Reprinted in J. Syst. and Software 7, 4 (Dec. 1987), 341-355.)
  19. Use code substitution to verify or refine hypotheses.
  20. Tracing code with test data, whether by hand or using a symbolic debugger, will not by itself tell you what function the code performs. However, it can help suggest some hypotheses and eliminate others.
  21. Be alert for literals that are conceptually distinct but that happen to have the same values.
  22. In languages that permit operator overloading, be sure the operator you think you have is really the one you do have.
  23. Be willing to abandon hypotheses for which there is insufficient evidence. (It is my bad habit, too.)
  24. Use program slicing [Weiser81]. Throw out parts of the program irrelevant to the particular function or state of the program of interest, in order to study the program.([Weiser81] Weiser, Mark. Program Slicing. Proc. 5th Int. Conf. on Software Eng. New York: IEEE, 1981, 439-449.

    ``Program slicing is a method used by experienced computer programmers for abstracting from programs. Starting from a subset of a program's behavior, slicing reduces that program to a minimal form which still produces that behavior. The reduced program, called a slice, is an independent program guaranteed to faithfully represent the original program within the domain of the specified subset of behavior.

    Finding a slice is in general unsolvable.'')
  25. Use an editor or browser to traverse the code. Editors that support multiple windows can show several parts of the program at once.
  26. File search tools such as UNIX grep can be used to find identifiers that may be in one of several files.
  27. In the absence of tools like a cross-reference generator, such unlikely tools as spelling checkers can be useful for listing the identifiers used in the program.
  28. Traditional debugging techniques can be used to read code. The addition of print statements, for example, can be useful in verifying hypotheses.
  29. Read programs with a cross-reference listing, structure chart, or similar summaries of program information close at hand. It is sometimes useful to generate such charts by hand if they cannot be obtained automatically.


2006-05-20 Update:
William wrote an entry which is related on this topics on his blog. [Link] (in chinese).

Posted by AbnerCYH | Permanent Link | Categories: Notes

2006-05-02 18:53:16

Journal Price

Interesting Article: Math Journal Price Survey, based on AMS 2004 data, ordered by Price per Page

Posted by AbnerCYH | Permanent Link

2006-05-01 09:14:55

Note on An Introduction to Scientific Research

I will stop to read the related books on research method, because those books seems unable to answer my question; I doesn't mean that those books are not good, however they are too general to fit my field. The remaining books in my previous post seem almost about scientific writing and presentation.

I am interested in two types of books about research now, one is how to do theoretical research, another is how to do empirical research in CS. The first kind of books seems not much; in fact, I don't know any. Most books similar to this topic are about solve problems, like Polya's great books. I found one book that seems worth to read, The Mathematical Experience, Study Edition by Philip J. Davis, Reuben Hersh, Elena A. Marchisotto, G.-C. Rota. )(It seems for math teaching.)

Another kind of books, I had noted in earlier post, Note on Empirical Methods in CS and AI, and I have read some articles in it; I will read Empirical methods for artificial intelligence by Paul R. Cohen, for learning some details. Furthermore technical skills are important, such as Reading Computer Programs: Instructor's Guide and Exercises by Lionel E. Deimel and J. Fernando Naveda, Programming Optimization Techniques, Performance Analysis Tools. (Actually, I need to write a term-project of Compiler Construction, thus it will be a good motivation to learn such techniques.)



Ref. : An Introduction to Scientific Research, by E. Bright Wilson.

Chapter 2 : Searching The Literature

At First, the author discussed the importance of searching literature as usual; he classified literature by structure of the materials, i.e., Encyclopedias, Literature guides, Handbooks, Books, Reviewed Journals, Abstract and indexing journals.

About literature guides, examples are too old like ``Guide to the literature of mathematics and physics'' by N.G. Parke III, 1947. I can't really understand what literature guides is? Therefore I modified the name of Parke's book and keyed it in google, then books and resources appeared. However, my library have none. :(

About Technical Book Review Index, I knew that some publications like The American Mathematical Monthly, ACM SIGACT News contains some book reviews and it is easy to search in their databases. Nevertheless, it is not easy to find out a book review for certain books among databases.

The author suggested that search literature in order of structure, i.e., encyclopedias for general treatment, handbook for broad discussion, books for detail, survey or review papers, and current original papers.

Finally, at the rest of this chapter, the authors discussed the topics ``Notes and Indexes'' which is one of topics that I most want to know, but unfortunately the author focused on indexing and managing notes of literature. Those methods (management systems) are out of date in the computer age. The thing I really want to know is how to noting literature, but the author didn't discuss about it.

Posted by AbnerCYH | Permanent Link | Categories: Notes