just a quick change by ADB to test that Recent Changes are working.
This page is slowly being superceded by ReadingRoom sublinks. Please make any interesting updates there, though it's OK to leave (or improve) this here for archival purposes.
Links
new links
Python & scripting languages vs. Java & system languages: Article by John Ousterhout, inventor of Tcl
Contents
General/Unsorted
4 Concepts in Programming Language Description, readable/skimmable, informative, dunno if we need it
Scheme Tutorials
Superceded by ResourcesForScheme, which should really be called ReadingRoom/Scheme
Scheme Tutorial at cs.hut This is a decent Scheme tutorial by Catharina Candolin.
Coding style guidelines An example of good coding style from our friends at MIT.
See our very own ResourcesForScheme page for much, much more.
Data Structures, Algorithms
Generally superceded by ReadingRoom pages
Wikipedia: Algorithms, good on breadth, very readable
Wikipedia: Big O notation, a bit mathy, but good to go through
John Morris's Course Notes -- generally excellent on what they cover and pretty animations
Java Applets for Data Structures Programs, lots of neat examples
Algorithms & Data Structures, VERY informative and useful explanation of common sorting algs
Dictionary of Algs and DS, the canonical NIST guide. Read some, it's not as good as the linux.wki.edu site, but still good.
Algorithms and Data Structures, frontpage has a comprehensive and detailed approach to analyzing Euler's Greatest-Common-Denominator algorithm; didn't read rest of site
DS & Algs with OO Design Patterns in Java, "Foundational Data Structures" and "Stacks, Queues, Deques" okay; a bit-java-heavy(more like teaching java than teaching techniques sometimes)
Compact Guide to Sorting and Searching, okay, a bit overglossed
- Shell Sort Links:
All About Shell Sort, a really nice description of Shell sort and its analysis
Princeton Paper on Shell Sort, a somewhat more in depth look at Shell sort analysis - interesting to read after you've already looked at the previous link to understand the basics
Shell Sort History, just kind of fun to know
DS & Alg Resources: buncha links, book titles, etc.
Complexity
Partially superceded by ReadingRoom/OrdersOfGrowth; more to come at ReadingRoom/NpCompleteness and ReadingRoom/TuringMachines
NP-Completeness, homepage, has good "Useful Links" section at bottom
Turing machine, general info and problem statement?
http://www-csli.stanford.edu/hp/Turing4.html Resources we could consider on Turing and logic
An Introduction to Computational Complexity, highly readable, haven't read parts C-D.
Google directory on complexity
Wikipedia: Computational complexity theory; overglosses, not enough explanation at a low enough level
Wikipedia: NP-complete; okay
Godel's Incompleteness Theorem, totally readable, links back to a translation of the original text
Automata
Superceded by ReadingRoom/FiniteStateMachines
Automata Definitions, seemed mathy on first reading, but I think this is the best link of the bunch
Finite State Machines, okay
Finite automata and string matching, some on the regexp connection, okay
FA and RE, C++, many type examples
The Pumping Lemma; cute poem
Wikipedia: Pumping Lemma; actual information
and decent explanation
CS2490 Lecture Notes Some chapters are skimpy, but most seem to be useful intros/reinforcements to material.
cs251 Handouts for weeks 5 and 6 are vaguely useful -- talks about Parsing, State Machines, NFA/ DFA. Other weeks are a bit too vague or rely too much on whatever text the prof was using.
http://www.csd.uwo.ca/research/grail/links.html List of automata resources
Logic
superceded by ReadingRoom/Logic
Wikipedia: Logic; (server down, will review when back up)
Wikipedia: Predicate Logic, decent
Truth Tables; most truth table pages were horrible, this one is okay. Photocopies from a logic text are probably a better bet for truth tables.
Wikipedia: Truth Tables, see previous
UGAI Intro to Logic, actually pretty good, if a bit glossed
Information Retrieval
Wikipedia: Information Retrieval, good general(highly general) introduction. I know I found more things on IR, they were just mostly less than good or not obviously relevant... I'll dig them up.
Parsing
See also ReadingRoom/Grammars
Introduction to Syntax Directed Parsing, despite being for proprietary software, was actually readable, informative. Check that this wasn't just special-case information.
Wikipedia: Parser, lots of links to types of parsers
Interpreters
NB substantial overlap between this category and Programming Languages
- The Friedman/Wand/Haynes book is a good place to start.
- SICP and other scheme books also cover interpreters.
- FORTH resources:
http://www.forth.org/tutorials.html Pointer to tutorials
http://www.lclark.edu/~drake/courses/pl/a8.html Peter Drake @ Lewis & Clark Forth interpreter assignment
http://willware.net:8080/agj/fj.html A series of Java applets running interpreters
http://www.lclark.edu/~drake/courses/pl/ Peter Drake's Programming Languages course at Lewis & Clark College has a whole set of really neat assignments -- mostly on scheme but with a programming languages bent -- including a Forth interpreter
- See Graham, Norvig from Programming Languages.
Lex/YACC
Programming Languages
NB substantial overlap between this category and Interpreters
http://www.norvig.com/python-lisp.html Peter Norvig on Python for Lisp Programmers also gives insight the other way around
- Programming language stuff from Paul Graham:
http://www.paulgraham.com/icad.html Revenge of the Nerds (Lisp vs. other languages; what makes a language good)
http://www.paulgraham.com/popular.html Being Popular (What makes a language popular; motivation behind Arc)
http://www.paulgraham.com/rootsoflisp.html The Roots of Lisp (On McCarthy's intentions and how that affects the language)
http://www.paulgraham.com/onlisptext.html On Lisp -- full text of his book
http://www.paulgraham.com/progbot.html Programming Bottom Up (On the idea of building languages to solve your problem)
http://www.paulgraham.com/taste.html Taste for Makers (Taste/aesthetics and design)
- Also see the programming languages notes elsewhere in this wiki and the section on prolog in particular
Semantic Web
The Semantic Web, Scientific American article, comprehensive and informative despite datedness
MindSwap, semantic website and lab extrordinaire
PlanetRDF, community blog for RDFphiles
Ontology Portal, mostly linguistics, some information
Plink - foaf site
http://www-personal.si.umich.edu/~hardin/semantic_course.htm A course on the semantic web. Provides a nice skeleton and several useful links.
http://www.w3schools.com/ Lots of free tutorials, including quizzes. Pretty basic but pretty helpful.
- SWeb X Scheme
http://okmij.org/ftp/Scheme/xml.html Scheme and xml, especially SXML
HtmlPrag pragmatic HTML parser generates SXML
Scheme Cookbook on SchemeWiki -- includes recipes; in PLTscheme
http://schemewiki.org/Cookbook/WebChapter#Web_Programming Web Programming
http://schemewiki.org/view/Cookbook/XmlChapter XML on the SchemeWiki
http://schemewiki.org/Cookbook/XMLRecipeRSS Reading and Writing RSS Files from the SchemeWiki
http://www.double.co.nz/scheme/modal-web-server.html Some how to on the server side
Random Links that Crept In...
pragmatics, Highly heavy on the technical side, didn't get through more than the first screenful, but probably informative
The Semantics-Pragmatics Distinction, skimmable
Pragmatics and Computational Linguistics(pdf); chunky beyond belief(36 pgs), but skimmable.
Other CS Education programs/papers
Introduction to Algorithms course objectives
CS Body of Knowlege, good overview of important bits of CS from "Computing Curricula 2001"
The Course In Between, neat course at Langara in BC