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
davean wrote: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.

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
Micron wrote: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.


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 Science

I 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.html

It'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.org

Excellent 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
Wikiportal
Wikibooks: 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.pdf

I 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
deconvoluted wrote: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).


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
:shock: :shock:
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.pdf
http://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.