User:Mshonle
Who I Am and What I Do
My name is Macneil Shonle. My area is software engineering, so I like to take a software engineering kind of approach to the texts that I work on:
- Data Structures {fundamental tools}
- Algorithms {fundamental techniques}
- Data Structures and Algorithms {advanced tools and techniques}
- Programming Languages
- Logic for Computer Scientists
I'm primarily interested in the Algorithms book, which I work on whenever I find myself having the time. I want the book to primarily focus on the techniques used for designing your own algorithms (or understanding someone else's), rather than just having yet-another-reference book. The goal is to help people see the forest for the trees. While Knuth and CLRS are great books to have, I learned algorithms from a professor who had a great vision of teaching them. My main goal for the Algorithms book is to communicate that vision.
Many data structures books focus on seemingly trivial details and miss telling the greater story of abstraction. The book SICP, on the other hand, tells the story of abstraction quite well. Thus, my goal for the Data Structures book is to tell the same abstraction story in the context of all the most fundamental data structures.
Lately, the OO idea has only been half-understood by authors of popular data structures books. For example, I've seen several sources confuse the concept of encapsulation with abstraction. Much of the complexity of modern OO languages is actually quite arbitrary, so focusing on that only means you are telling an artificially complex story.
I created the Advanced book primarily as a place to keep off-topic but interesting material. While some cutting edge algorithms or data structures are very cool, they are inappropriate for introductory texts. (Why confuse the reader who is not yet comfortable with even the basic concepts yet?)
(I'm also an admin and active member of wikibooks, so you may find that many of my user contributions are simply deleting spam or voting in strange discussions of odd books.)
I'm also a Wikipedian, so you should check out my wikipedia page too.
Where've I been?
I've been sucked into a graduate student vortex for a while. Research first, as that's what pays the bills! MShonle 22:32, 8 December 2005 (UTC)
Did I Delete a Wikipedia Link?
Perhaps you've come to my page because I deleted a wikipedia link inserted into one of the books I work on? Sorry about that... didn't mean to bite anyone's head or anything. In the future I'll try leaving the wikipedia links up longer. However, it is my intention that the books we work on won't need wikipedia links in the main body of the text. Here's how I see it:
- If a book entry mentions something well known, such as the internet, or prime numbers, there's no need to link. A really confused reader could still google or search on wikipedia themselves.
- If a book mentions (e.g.) prime numbers in a way that is important, it should recap in-place the relevant properties instead. In fact, you can use the wikipedia as a resource to help you write that recap. Instead of flooding a person with all of the information the wikipedia entry gives, it's your job to just give them what they need to know. (Perhaps a definition, or a notation, for example.)
- If you really think the information linked will help the person, because it's a very interesting tangent, put the link instead at the end of the chapter, in a Related Readings section. (But again, if it's not a tangent, but important, it should be in the body of the text!)
- Some people think information, information, information is always good and "so long as it's true, it's useful". I instead take the view that our time on this planet is limited, and thus it's more valuable if we do what we can to provide signals to highlight the most important information. Without these signals (i.e., we let all information through, and include a link to every word used that has a wikipedia entry) learning will be hurt.
- On the other hand, for the Wikipedia itself, the rich and deep links are the information. Less-so with a book, where the writing and transfering of specific knowledge is what's needed, not the categorization and linking of general knowledge.
But given all of that, this project is a part-part-time job for me. Some sections will be stubs for a year if someone else doesn't get to them first. The books will be sparse in areas until the First Edition is achieved, and it sure will look like they need the links. But instead of linking, get to writing! Your writing or spelling doesn't even have to be good: we'll help you, just as others have helped me.
See you in the page logs!
Scrap Pages
- /Policy
- /Around 2000 Words -- A personal statement
- /Charters an idea of mine for helping the VFD process and respecting expert contributors -- but without major bureaucracy
- /First edition another policy idea that would encourage books to reach a "shippable" stage, and help reorganize the main page to lead more people to completed works
- /Scrap some material that might be rewritten and put into a very introductory economics book
- /SEAdvancedModularity
To Do
- Unify the "computing" bookshelves so that there is only three names:
- Computer Science -- the more "math-like" stuff you would get in college
- Programming -- language guides, library tutorials, programming tips and recipies
- IT -- about computer programs, using them, set up of networks, so long as you aren't writing much "code"
- Re-order the programming language shelve so that there is no "misc", "hybrid" or "imperative" sections (all are far too general topics to be helpful).
- Finish policy write ups.
- Design/write up all data-structure ADTs for the book