You can find some resources, mostly books, in the following links
http://stackoverflow.com/questions/194812/list-of-freely-ava...
http://stackoverflow.com/questions/1711/what-is-the-single-m...
11–20 of 63 posts
You can find some resources, mostly books, in the following links
http://stackoverflow.com/questions/194812/list-of-freely-ava...
http://stackoverflow.com/questions/1711/what-is-the-single-m...
While not strictly a CS book, "Godel, Escher, Bach" by Douglas Hofstadter definitely has strong roots in the area. It's not a text book, nor anything even close, however, there is a reasonable amount of mathematics and programming language design which make it educational as well as inspirational (particularly formal logic systems, around which the premise of the book is built). The book is somewhat life changing, in…
The standard for computational grammars and parsers in natural language processing is: Prolog and Natural-Language Analysis - Fernando C. N. Pereira and Stuart M. Shieber The PDF is available from the publisher: http://www.mtome.com/Publications/PNLA/prolog-digital.pdf It also serves as a great introduction to Prolog and logics programming.
functional stuff is making a comeback. haskell can be daunting in its pure-ness sometimes, requiring monads for seemingly anything useful. but it's a wonderful language/lifestyle choice. this online book broaches the subject pretty well: http://learnyouahaskell.com/chapters
- After learning functional programming I realized how much of my programs do just mapping or folding over data. You start to spot the cases where this is not immediately obvious after some FP practice.
- After learning logics programming, I realized how much of my programs do a poor man's version of backtracking.
Maybe one of those languages is so much fun that you'll eventually change your 'lifestyle'. E.g. I use Haskell in many cases where I'd previously use Python or C.
[1] Of course, it doesn't always come natural. C++ STL does provide maps and folds, but since pre-C++0x doesn't have lambdas, using them requires more effort.
The standard for computational grammars and parsers in natural language processing is: Prolog and Natural-Language Analysis - Fernando C. N. Pereira and Stuart M. Shieber The PDF is available from the publisher: http://www.mtome.com/Publications/PNLA/prolog-digital.pdf It also serves as a great introduction to Prolog and logics programming.
I've heard "The Art of Prolog" is good, too... a quick glance at Amazon shows it to be ridiculously expensive, though.
It really depends on what you feel you're missing and what you're hoping to do (definitions of "daily work" vary widely). If you're looking to get up on theory by doing your own program of sorts, you could do worse than start with these (in roughly this order): Structure and Interpretation of Computer Programs - Abelson, Sussman, and Sussman Introduction to Algorithms - Cormen, Leiserson, Rivest, and Stein The Art of…
Computer Architecture: A Quantitative Approach - Hennessy and Patterson
functional stuff is making a comeback. haskell can be daunting in its pure-ness sometimes, requiring monads for seemingly anything useful. but it's a wonderful language/lifestyle choice. this online book broaches the subject pretty well: http://learnyouahaskell.com/chapters
It'll reinforce some concepts from math, and lead you toward writing code in a manner that's considered good practice in other languages - such that it's generally maintainable and testable. Similarly, if you're familiar with Design Patterns, you'll see that a lot of patterns are attempts to implement functional concepts in OO languages. That said, as a fan of Haskell I'm definitely biased, and a lot of that can be said for other functional languages as well.
"Real World Haskell" is also very good, but probably not the best place to start if you haven't written in a functional language before.
It really depends on what you feel you're missing and what you're hoping to do (definitions of "daily work" vary widely). If you're looking to get up on theory by doing your own program of sorts, you could do worse than start with these (in roughly this order): Structure and Interpretation of Computer Programs - Abelson, Sussman, and Sussman Introduction to Algorithms - Cormen, Leiserson, Rivest, and Stein The Art of…
Thinking Forth - Brodie
functional stuff is making a comeback. haskell can be daunting in its pure-ness sometimes, requiring monads for seemingly anything useful. but it's a wonderful language/lifestyle choice. this online book broaches the subject pretty well: http://learnyouahaskell.com/chapters
To steal words from a comment earlier today, Haskell has a very steep but very rewarding learning curve. It'll reinforce some concepts from math, and lead you toward writing code in a manner that's considered good practice in other languages - such that it's generally maintainable and testable. Similarly, if you're familiar with Design Patterns, you'll see that a lot of patterns are attempts to implement functional c…
definitely a lot less hand-holding than learnyouahaskell, but they complement each other pretty well.