Resources
CS351: Web Resources
This is a miscellaneous collection of links that you may or may not find useful for this class.
Langauge and tool specs/docs
- The official Java API for the 1.4.1 Javasoft release. Read it. Use it. Know it. Breathe it. Live it.
- Errata for the class text (The Java Programming Language, 3rd ed.) Yes, even the Language Masters make mistakes sometimes.
-
Creating a GUI with JFC/Swing: The JavaSoft tutorial on putting
together applications with Swing components. A great starting place
if you're dying to do GUI development.
- Object Serialization The complete documentation on the Java serialization mechanism. This is pretty heavyweight documentation -- I would start with the section in your textbook for basic understanding. Only venture here if you need the very detailed story.
- Writing doc comments for javadoc. This page is a guide on how to write doc comments, focusing on issues like content, style, and the syntax of javadoc comments.
- The Javadoc tool documentation. Unlike the previous link, this page is a technical manual on how to use the javadoc tool to compile your doc comments into HTML documentation pages. It does also have a reference section on acceptable tags, though.
- Using hprof to Tune Performance. A Sun/Javasoft article about the -Xrunhprof option to the java interpreter. Only really scratches the surface of what hprof can do, but gives enough info to get you started.
- The HPROF Profiler Agent The closest thing to documentation on hprof that I could find. Still too sparse, but gives some sense of what it's about.
- PerfAnal: A Performance Analysis Tool This is a (very, very) basic profiling/performance analysis tool layered on top of hprof. It makes interpreting hprof output much easier, but it should in no way be mistaken for a professional grade tool. Pay special attention to the caveats (JVM and hprof dependencies) described at the bottom of the page.
Emacs, the One True Editor
- The Emacs Wiki. Lots of miscellaneous useful information.
- Information on customizing Emacs via Emacs init file (aka dotfile).
Useful support code, libraries, and other miscellany
- The GNU Java Getopt port (local copy; the original can be found here). JavaDoc documentation for the Getopt library.
- The Internet Engineering Task Force (a.k.a., IETF). These are the people who're responsible for standardizing all aspects of the Internet, including email. Of particular interest to us is:
- RFC822 the original email specification. (Note that this is not the complete email spec -- in particular, it doesn't describe MIME, message digests, etc. -- but it's sufficient for our needs at the moment.)
- CVS for Dummies Sadly, this page doesn't really apply to anybody in this course, b/c I haven't seen any dummies here, but it may have some gems of insight for you nonetheless.
- Implementation notes on A* A nice page that describes some of the design decisions behind selecting the right OPEN and CLOSED data structs for A*.
Math and other insights
- A nice, albeit somewhat long, Introduction to Bayesian Reasoning. Thanks to Paul Pantazis for suggesting this link.
- The CLR text on Algroithms, as well as a number of other great CS resource books, can be found on the UNM Library Electronic Books page. (Click on "Books24x7 ITPro Library Collection"). CogNet also has some great resouces here.
Support Info for Project 3
- MIPS Assembly Language Tutorial. This is probably more than you want/need, but it does come with a number of working examples. It also comes with a short appendix that gives a brief overview of some commonly used MIPS instructions.
- A short guide to instruction binary coding for MIPS assembly instructions. It's not complete -- there are some instructions that it doesn't cover -- but it does emake a good illustration of how many instructions are laid out.
- The complete, uber, one and only MIPS Assembly Language Programmer's Guide (c. 1992, by Silicon Graphics). This is very much overkill for this assignment (most of the things it discusses are far more complicated than we need, and aren't included in this assignmemt). Still, it may be useful and it is authoritative. Use at your own risk.
