Page **1** of **2**

### Resources for learning the Math and Science behind computing

Posted: **Fri Mar 21, 2008 8:10 pm UTC**

by **HappySmileMan**

Are there any good all purpose sites for comp. sci. learning, I was thinking of sites like wikis or stuff like that that would contain explanations, examples, uses etc. of many things to do with comp. sci. (like different programming styles, stacks, queues, stuff like that).

I'm currently just in secondary school and there's not much good libraries or bookstores around, and sometimes it can be hard to find good, detailed info on this stuff online.

### Re: Possibly a very stupid question

Posted: **Fri Mar 21, 2008 8:13 pm UTC**

by **davean**

Hum, some background might help. What do you know and what do you want to know?

Also, post questions here and we can try to help or point you to the right place.

### Re: Possibly a very stupid question

Posted: **Fri Mar 21, 2008 8:18 pm UTC**

by **HappySmileMan**

davean wrote:Hum, some background might help. What do you know and what do you want to know?

Also, post questions here and we can try to help or point you to the right place.

I know very little, I can program C++, have made some programs, but know pretty much nothing about the actualy computer science behind things, like stacks, queues, different methods of searching, stuff like that, or when, where and how to use them.

I can't really give good examples, just looking for a good overall place that would teach you stuff about computer science.

I don't need to learn how to program, I already know that, I just need to learn a lot more about the actual science and though process behind it, of which I know pretty much nothing, sorry if I'm being vague, but I'm not quite sure how to explain.

### Re: Possibly a very stupid question

Posted: **Fri Mar 21, 2008 8:26 pm UTC**

by **davean**

HappySmileMan wrote:davean wrote:Hum, some background might help. What do you know and what do you want to know?

Also, post questions here and we can try to help or point you to the right place.

I know very little, I can program C++, have made some programs, but know pretty much nothing about the actualy computer science behind things, like stacks, queues, different methods of searching, stuff like that, or when, where and how to use them.

I can't really give good examples, just looking for a good overall place that would teach you stuff about computer science.

I don't need to learn how to program, I already know that, I just need to learn a lot more about the actual science and though process behind it, of which I know pretty much nothing, sorry if I'm being vague, but I'm not quite sure how to explain.

That helps, I understand what you want now. As for resources, I'm not sure; I'll try to think of some, hopefully other people around here might have some good suggestions.

In the meantime, the

Dictionary of Algorithms and Data Structures comes to mind as a way to orient your self on algorithms which seems a primary focus of your interest.

Programming Languages: Application and Interpretation by Shriram Krishnamurthi is a good online and free book on Programing Language theory if you want to understand how programing languages like C++ are implemented and work.

As for Foundations of Computation/Theory of Computation, Automata, and the like, I'm afraid I lack a good reference off the top of my head.

### Re: Possibly a very stupid question

Posted: **Fri Mar 21, 2008 9:05 pm UTC**

by **HappySmileMan**

Bookmarked and downloaded, reading the book now.

### Re: Possibly a very stupid question

Posted: **Fri Mar 21, 2008 10:24 pm UTC**

by **necroforest**

For "theory" I'd recommend Sipser's "Introduction to the Theory of Computation" - it even has a math intro for people who aren't familiar with discrete math topics (proofs, logic, sets, graphs, etc).

### Re: Possibly a very stupid question

Posted: **Fri Mar 21, 2008 10:49 pm UTC**

by **Micron**

MIT's open courseware has CS courses available here:

http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/index.htm if any of those topics appeal to you.

### Re: Possibly a very stupid question

Posted: **Sat Mar 22, 2008 2:07 am UTC**

by **HappySmileMan**

Thank you guys, bookmarked everything, will probably start on Monday (Social life tomorrow, social life/website designing Sunday, but after that real life shall not interfere with my nerdiness for a few weeks probably).

Incidentally there needs to be a wiki for comp. sci. and related areas, where it can really into detail, with examples and stuff, sicne wikipedia usually isn't detailed enough and is very strict about guidelines in most cases.

Anyone know anywhere that would be willing to host a wiki for that kind of stuff, like free hosting that doesn't suck and would allow that kind of stuff? I'm sure wikipedia could be updated on those subjects, but I've seen improvements reverted for stupid reasons like keeping it simple enough for non-cs guys to understand, or moderators demanding citations on pointless things.

### Re: Resources for learning the Math and Science behind computing

Posted: **Sat Mar 22, 2008 5:48 pm UTC**

by **Horsman**

Different Things you'd probably want to look for:

Data Structures (About how to represent data in programs, in good and efficient ways)

Algorithms (how to efficiently compute results for problems and design problem solutions)

Discrete Math (Formal proofs, number theory, probability, combinatorics, graph theory)

Automata Theory (theory on languages and compilers, finite automatic, push down automata, formal Languages, compilation and programming language design)

### Re: Possibly a very stupid question

Posted: **Tue Apr 01, 2008 11:17 pm UTC**

by **Danikar**

Wow, I have gone to their open courseware before and it didn't seem like there was much there. I must of been in the wrong area because there is a ton of classes now. w00t! I now have something to do.

### Re: Resources for learning the Math and Science behind computing

Posted: **Wed Apr 30, 2008 6:36 pm UTC**

by **Grumpy Code Monkey**

I have a copy of

Models of Computation and Formal Languages, by R. Gregory Taylor; it's an introduction to computability theory (mathematical basics, models of computation (Turing machines, Markov algorithms), formal languages and automata), and as such doesn't offer much in the way of data structures or algorithms. However, if you're interested in the basis of Computer Science (not just programming), it's a good resource. If you're still in high school, the math may be a bit daunting (it's not so much

hard as it is formal and unfamiliar), but that's the nature of the beast. You might want to look for a used copy, though; it's pretty expensive new.

Note that you can be an accomplished programmer without knowing anything about Markov algorithms; it just depends on what you find interesting.

### Re: Resources for learning the Math and Science behind computing

Posted: **Mon May 05, 2008 4:52 am UTC**

by **Gatesunder**

Wikipedia is always helpful.

Computer ScienceI can't get enough of the cryptography material on that site.

EDIT: Probably best used once you have a topic of interest in mind, else you could spend days reading through tons of stuff at random, segueing from one topic to another till you eventually end up at an article on necrophilia . . . which has never happened to me . . . honest . . .

### Re: Resources for learning the Math and Science behind computing

Posted: **Wed Jun 11, 2008 5:35 am UTC**

by **Indelible**

Hey man,

I graduated with a degree in comp. sci. at the end of last year and I'd be more than happy to give you a hand if you need it. The languages I know best are (in descending order) Java, C and C++. So definitely chuck a post on here or something if you want a hand with anything. I love talking at length about the intricasies of why the world doesn't need

another quicksort implementation (or irc client for that matter).

Anyway, I have waay too much time on my hands, so I might as well use some of it for good.

### Re: Resources for learning the Math and Science behind computing

Posted: **Mon Aug 18, 2008 10:42 am UTC**

by **tex**

Actually the resources are those books that are used by universities. They are often difficult to understand but comprehensive and profound. For example "The Art of Computer Programming" by Donald E. Knuth or "Structure and Interpretation of Computer Programs" (

Link to SICP Web Site) which is available for free on the web.

### Re: Resources for learning the Math and Science behind computing

Posted: **Mon Dec 22, 2008 4:20 am UTC**

by **deconvoluted**

This book might feel like a bit of a tangent but ... go and read Godel, Escher, Bach. Subtly, without noticing it, you'll learn a bunch of interesting computer science - not to mention that it's a fantastic read.

The AP Computer Science exam, at least back when I took it, contained a lot of (in fact nothing but) stacks, trees, heaps, queues, and what-have-you. Take note (and this is only my opinion - others will disagree) that in many ways these things are the products of computer science, rather than being computer science itself.

If you're interested in an intro course in algorithms, check out this book (it's a preprint draft so free for the moment):

http://www.cs.berkeley.edu/%7Evazirani/algorithms.htmlIt's not bad at all, and if you do some of the problems you'll be entertained for a while. Enjoy studying! This is the fun part

### Re: Resources for learning the Math and Science behind computing

Posted: **Wed Mar 18, 2009 5:41 pm UTC**

by **Aushin**

Before you do anything, I recommend How to Design Programs. Free at

www.htdp.orgExcellent book. If you get through it, How to Design Classes is an excellent followup. Get through both and you have a very nice foundation of knowledge to start with.

I actually made a forum username just to recommend these to you hahah

### Re: Resources for learning the Math and Science behind computing

Posted: **Wed Mar 18, 2009 5:55 pm UTC**

by **Aushin**

of course i don't read that this is a three month+ old thread sighhh

### Re: Resources for learning the Math and Science behind computing

Posted: **Sat Mar 21, 2009 4:15 am UTC**

by **burntcerial**

i know absolutely nothing about programming but would like to learn how to start so eventually i could make applications or whatever, sorry if im asking a really dumb question

### Re: Resources for learning the Math and Science behind computing

Posted: **Sat Mar 21, 2009 6:47 pm UTC**

by **deconvoluted**

It's not a dumb question. But if you read the other replies in this thread, it's been answered.

### Re: Resources for learning the Math and Science behind computing

Posted: **Sun Mar 22, 2009 3:10 am UTC**

by **andrewxc**

For anyone interested in Neural Networks, Raùl Rojas has released his book,

Neural Networks: A Systematic Introduction onto the web, for free. It is 4.7 MB or so, in pdf format.

INDEX:

http://page.mi.fu-berlin.de/rojas/neural (individually download chapters, to keep your RAM a bit less taxed)

http://page.mi.fu-berlin.de/rojas/neural/neuron.pdf (the WHOLE book, as one giant 500-page block)

It's a decent read, and the class I'm taking is great.

### Re: Resources for learning the Math and Science behind computing

Posted: **Mon Mar 23, 2009 5:09 pm UTC**

by **Yakk**

Anyone know of a good text or online resource to learn enough category theory to get an understanding of current functional programming paradigms (or even to understand the theory soup)?

### Re: Resources for learning the Math and Science behind computing

Posted: **Mon Mar 23, 2009 5:21 pm UTC**

by **Berengal**

You've probably already checked these, but for completeness

WikiportalWikibooks: CT for Haskellers

### Re: Resources for learning the Math and Science behind computing

Posted: **Mon Mar 23, 2009 7:53 pm UTC**

by **deconvoluted**

The Haskell Road to Logic, Math and Programming (

http://fldit-www.cs.uni-dortmund.de/~peter/PS07/HR.pdf) is a really nice book (if that link doesn't work, google ... PDF copies are freely available online).

A set of notes written by Mark Tarver called Logic, Proof and Computation: A Philosophical Introduction to the Foundations of Computer Science is a different take:

http://www.lambdassociates.org/lpc.pdfI like both of those together.

### Re: Resources for learning the Math and Science behind computing

Posted: **Sun Mar 29, 2009 10:35 pm UTC**

by **ConcatenatedWords**

I'm also a fan of Haskell Road"; the fact that the solutions to exercises are available upon request from the author's website (

http://homepages.cwi.nl/~jve/HR/) makes it a nice book for self-study.

### Re: Resources for learning the Math and Science behind computing

Posted: **Tue Apr 14, 2009 12:56 am UTC**

by **lordlicorice**

different programming styles, stacks, queues, stuff like that

Lots of beginning students of CS think that computer science is about programming. Not true. I love studying AI, crypto, algorithms, computability theory, computational complexity.. I just couldn't care less about the actual implementation. The

only fun language to program is assembly.

You definitely find that the more you study computer science the more it turns into "Mathematics: Topics 953632 to 155035770". You get math problems solved by computers (graph theory.. see the

four color theorem) and CS problems solved by math (see

this really cool proof). The only difference is that wikipedia is terrible for math but fantastic for CS.

### Re: Resources for learning the Math and Science behind computing

Posted: **Wed Apr 15, 2009 5:49 am UTC**

by **The Mad Scientist**

I'm currently reading The Haskell Road to Logic, Math and Programming and my opinion is that it's difficult and not particularly well written. Now, I may just be a dullard, but I feel that if I hadn't read a few tutorials on Haskell, some webpages about logic, and a small book about proving theorems, it would be impossible for me to keep up with the authors. They don't really explain how any of the example programs work. For example, on page 106 there is a very clever Haskell implementation of the Sieve of Eratosthenes which uses nested function definitions and double recursion and the authors don't deign to give even a two-sentence summary of how it works. My personal method of figuring out how it works consisted of staring at it for three minutes straight and finally realizing how it was doing what it was doing.

It also seems to focus too much on number theory. I'm only on chapter 4, so maybe it gets better, but as far as I'm concerned the book so far should have been called the Haskell Road to Excruciatingly Boring and Pointless Number Theory.

### Re: Resources for learning the Math and Science behind computing

Posted: **Wed Apr 15, 2009 6:14 am UTC**

by **The Mad Scientist**

Well, let me sort of tone that down.

The book does some really nice work on breaking concepts down schematically (e.g., the "proof recipes") and is very clear and concise. It's just dense, and the authors don't really seem to care if the reader understands the example programs or not. I'd say that it's a very good book to go to when you feel like you've lost your grip on some basic concept or another, sort of as a reference. But it's brisk and a bit unforgiving.

### Re: Resources for learning the Math and Science behind computing

Posted: **Thu Apr 30, 2009 8:48 pm UTC**

by **deconvoluted**

Really? Wow ... that's not how I found it at all. I thought the exercises were brilliantly placed and made it a lively and enjoyable book to work through. And the somewhat mysterious Haskell was part of the fun. My way was just to paste into the compiler and change random stuff to see what happens, until I get how it works.

Also, 3 minutes is pretty quick ... took me longer to figure out many of the examples

Ah just saw you're on Ch. 4 .. yeah the first few chapters are dry. 2 and 3 are good meat though.

### Re: Resources for learning the Math and Science behind computing

Posted: **Thu Apr 30, 2009 9:09 pm UTC**

by **lordlicorice**

Haskell terrifies me.

### Re: Resources for learning the Math and Science behind computing

Posted: **Thu Apr 30, 2009 9:28 pm UTC**

by **deconvoluted**

This is why it's so scary.

### Re: Resources for learning the Math and Science behind computing

Posted: **Thu Apr 30, 2009 9:45 pm UTC**

by **lordlicorice**

I'm "Another junior Haskell programmer". Well, I

was; at this point I'm curled up in the corner unblinking and inconsolable until the apocalypse erases mankind's wickedness from the earth. There are some things man was just not meant to know. What has science done?

### Re: Resources for learning the Math and Science behind computing

Posted: **Thu Apr 30, 2009 9:56 pm UTC**

by **Berengal**

I find it interesting to note how I progressively get more and more of those definitions as I learn more and more Haskell. I'm now at the Ph.D level.

### Re: Resources for learning the Math and Science behind computing

Posted: **Thu Apr 30, 2009 10:27 pm UTC**

by **deconvoluted**

@lordlicorice

You should check out the Simon Peyton-Jones

talk about Haskell. Even though it's stuff you probably already know if you've played with the language, hearing him explain about it just makes it seem .. easier.

### Re: Resources for learning the Math and Science behind computing

Posted: **Fri May 01, 2009 9:42 pm UTC**

by **lordlicorice**

deconvoluted wrote:@lordlicorice

You should check out the Simon Peyton-Jones

talk about Haskell. Even though it's stuff you probably already know if you've played with the language, hearing him explain about it just makes it seem .. easier.

I'm working through it; great stuff.

What's most terrifying is that there's actually a compiler for this.

btw here's the slides and part 2

http://conferences.oreillynet.com/prese ... njones.pdfhttp://blip.tv/file/325646/

### Re: Resources for learning the Math and Science behind compu

Posted: **Thu Apr 08, 2010 8:40 pm UTC**

by **Disgrace**

Grumpy Code Monkey has it correct.

Sipser's book is a good book, but it can be tricky without any guidance. I had Taylor as a professor for both a Discrete Structures class and a Theory of Computation/Computability course as an undergraduate, but due to Dr. Taylor's book being out of print, we used the Sipser's text. We had a lot of the problems in Sipser's book that irritated him.

I'm not sure if Taylor's book is laid out in this way, but he tends to teach computation in a backwards approach, Turing Machines -> PDA/CFG -> FSA/Reg, but it's really up to the learner if read independently.

When I took a graduate level Theory course, a professor of some greater renown suggested the book for the class and said that Taylor's book was one of the best books on Computation Theory he had ever seen.

As far as my $0.02: Discrete Mathematics. Learn it, live it, love it.

### Re: Resources for learning the Math and Science behind compu

Posted: **Fri May 21, 2010 12:06 pm UTC**

by **Borbus**

Donald Knuth's "The Art of Computer Programming". And for more about the mathematics, "Concrete Mathematics". Accept no substitutes.

### Re: Resources for learning the Math and Science behind compu

Posted: **Thu Jun 02, 2011 11:30 am UTC**

by **Parsifal**

"Origamist Haskell programmer

(always starts out with the “basic Bird fold”)

I snorted at this one

### Re: Resources for learning the Math and Science behind compu

Posted: **Tue Sep 27, 2011 7:43 am UTC**

by **Canone**

HappySmileMan wrote:Are there any good all purpose sites for comp. sci. learning, I was thinking of sites like wikis or stuff like that that would contain explanations, examples, uses etc. of many things to do with comp. sci. (like different programming styles, stacks, queues, stuff like that).

I'm currently just in secondary school and there's not much good libraries or bookstores around, and sometimes it can be hard to find good, detailed info on this stuff online.

Fot the total newbies I would recommend to find some online free university (there are lots of them) where you can the theory plus some consultations if you need.

Additionaly there you will get the links to the extra stuff.

### Re: Resources for learning the Math and Science behind compu

Posted: **Sat Mar 24, 2012 6:25 am UTC**

by **Idetuxs**

As this topic is about resources for learning CS, I can ask here.

Im looking for a book about Data Structures and Algorithms, I know nothing about it (maybe a little bit right now) but is for a course of the same name. I just finished my first year studying CS; said this to clarify is not a hobby and I need to go hard on it. My professor recommended these books and I would like to buy one, as I don't have money and time(yet) for all of them:

"Algorithms + Data Structures = Programs" - Niklaus Wirth

"Data Structures and Algorithms" - Ullman, Hopcrof, Aho

"Introduction to Algorithms" - Thomas Cormen

Could you give me your opinion? (can suggest book not listed too). We are using C if that matters.

Thanks.

### Re: Resources for learning the Math and Science behind compu

Posted: **Sat Mar 24, 2012 7:27 pm UTC**

by **Jplus**

Anani Levitin, The Design and Analysis of Algorithms is quite good. But it doesn't cover data structures.