Resources for learning the Math and Science behind computing
Moderators: phlip, Moderators General, Prelates

 Posts: 52
 Joined: Fri Nov 09, 2007 11:46 pm UTC
Resources for learning the Math and Science behind computing
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.
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
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.
Also, post questions here and we can try to help or point you to the right place.

 Posts: 52
 Joined: Fri Nov 09, 2007 11:46 pm UTC
Re: Possibly a very stupid question
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
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.

 Posts: 52
 Joined: Fri Nov 09, 2007 11:46 pm UTC
Re: Possibly a very stupid question
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.
 necroforest
 Posts: 195
 Joined: Tue Apr 10, 2007 3:46 pm UTC
 Contact:
Re: Possibly a very stupid question
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).
ONE PART CLASS, ONE PART WHISKEY, TWO PARTS GUN! SERVE NEAT!
Re: Possibly a very stupid question
MIT's open courseware has CS courses available here: http://ocw.mit.edu/OcwWeb/ElectricalEngineeringandComputerScience/index.htm if any of those topics appeal to you.

 Posts: 52
 Joined: Fri Nov 09, 2007 11:46 pm UTC
Re: Possibly a very stupid question
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 noncs guys to understand, or moderators demanding citations on pointless things.
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 noncs guys to understand, or moderators demanding citations on pointless things.
Re: Resources for learning the Math and Science behind computing
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)
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
Micron wrote:MIT's open courseware has CS courses available here: http://ocw.mit.edu/OcwWeb/ElectricalEngineeringandComputerScience/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.
 Danikar

 Posts: 99
 Joined: Tue Feb 19, 2008 4:10 pm UTC
 Location: Blue Texas
Re: Resources for learning the Math and Science behind computing
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.
Note that you can be an accomplished programmer without knowing anything about Markov algorithms; it just depends on what you find interesting.
 Gatesunder
 Posts: 120
 Joined: Sat Feb 09, 2008 11:24 pm UTC
 Location: KSU
Re: Resources for learning the Math and Science behind computing
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 . . .
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 . . .
I'm wrong 99% of the time, but some day that 1% will be better than the rest ...
Re: Resources for learning the Math and Science behind computing
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.
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
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.

 Posts: 94
 Joined: Fri Dec 19, 2008 4:40 pm UTC
Re: Resources for learning the Math and Science behind computing
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 whathaveyou. 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
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 whathaveyou. 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
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
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
of course i don't read that this is a three month+ old thread sighhh

 Posts: 2
 Joined: Sat Mar 21, 2009 4:11 am UTC
Re: Resources for learning the Math and Science behind computing
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

 Posts: 94
 Joined: Fri Dec 19, 2008 4:40 pm UTC
Re: Resources for learning the Math and Science behind computing
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
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.fuberlin.de/rojas/neural (individually download chapters, to keep your RAM a bit less taxed)
http://page.mi.fuberlin.de/rojas/neural/neuron.pdf (the WHOLE book, as one giant 500page block)
It's a decent read, and the class I'm taking is great.
INDEX: http://page.mi.fuberlin.de/rojas/neural (individually download chapters, to keep your RAM a bit less taxed)
http://page.mi.fuberlin.de/rojas/neural/neuron.pdf (the WHOLE book, as one giant 500page block)
It's a decent read, and the class I'm taking is great.
"We never do anything well unless we love doing it for its own sake."
Avatar: I made a "plastic carrier" for Towel Day à la So Long and Thanks for All the Fish.
Avatar: I made a "plastic carrier" for Towel Day à la So Long and Thanks for All the Fish.
 Yakk
 Poster with most posts but no title.
 Posts: 10879
 Joined: Sat Jan 27, 2007 7:27 pm UTC
 Location: E pur si muove
Re: Resources for learning the Math and Science behind computing
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)?
One of the painful things about our time is that those who feel certainty are stupid, and those with any imagination and understanding are filled with doubt and indecision  BR
Last edited by JHVH on Fri Oct 23, 4004 BCE 6:17 pm, edited 6 times in total.
Last edited by JHVH on Fri Oct 23, 4004 BCE 6:17 pm, edited 6 times in total.
 Berengal
 Superabacus Mystic of the First Rank
 Posts: 2707
 Joined: Thu May 24, 2007 5:51 am UTC
 Location: Bergen, Norway
 Contact:
Re: Resources for learning the Math and Science behind computing
It is practically impossible to teach good programming to students who are motivated by money: As potential programmers they are mentally mutilated beyond hope of regeneration.

 Posts: 94
 Joined: Fri Dec 19, 2008 4:40 pm UTC
Re: Resources for learning the Math and Science behind computing
The Haskell Road to Logic, Math and Programming (http://flditwww.cs.unidortmund.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.
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.
 ConcatenatedWords
 Posts: 17
 Joined: Thu May 29, 2008 9:41 pm UTC
Re: Resources for learning the Math and Science behind computing
deconvoluted wrote:The Haskell Road to Logic, Math and Programming (http://flditwww.cs.unidortmund.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 selfstudy.
"I hereby endorse this product and/or service. I'm not a paid actor! I'm a real consumer just like you!"

 Posts: 52
 Joined: Sat Apr 04, 2009 5:00 am UTC
Re: Resources for learning the Math and Science behind computing
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.

 Posts: 129
 Joined: Wed Jan 14, 2009 6:09 am UTC
Re: Resources for learning the Math and Science behind computing
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 twosentence 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.
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.

 Posts: 129
 Joined: Wed Jan 14, 2009 6:09 am UTC
Re: Resources for learning the Math and Science behind computing
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.
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.

 Posts: 94
 Joined: Fri Dec 19, 2008 4:40 pm UTC
Re: Resources for learning the Math and Science behind computing
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.
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.

 Posts: 52
 Joined: Sat Apr 04, 2009 5:00 am UTC
Re: Resources for learning the Math and Science behind computing
Haskell terrifies me.

 Posts: 94
 Joined: Fri Dec 19, 2008 4:40 pm UTC
Re: Resources for learning the Math and Science behind computing
This is why it's so scary.

 Posts: 52
 Joined: Sat Apr 04, 2009 5:00 am UTC
Re: Resources for learning the Math and Science behind computing
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?
 Berengal
 Superabacus Mystic of the First Rank
 Posts: 2707
 Joined: Thu May 24, 2007 5:51 am UTC
 Location: Bergen, Norway
 Contact:
Re: Resources for learning the Math and Science behind computing
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.
It is practically impossible to teach good programming to students who are motivated by money: As potential programmers they are mentally mutilated beyond hope of regeneration.

 Posts: 94
 Joined: Fri Dec 19, 2008 4:40 pm UTC
Re: Resources for learning the Math and Science behind computing
@lordlicorice
You should check out the Simon PeytonJones 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.
You should check out the Simon PeytonJones 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.

 Posts: 52
 Joined: Sat Apr 04, 2009 5:00 am UTC
Re: Resources for learning the Math and Science behind computing
deconvoluted wrote:@lordlicorice
You should check out the Simon PeytonJones 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
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.
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
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
"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
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
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.
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
Anani Levitin, The Design and Analysis of Algorithms is quite good. But it doesn't cover data structures.
"There are only two hard problems in computer science: cache coherence, naming things, and offbyone errors." (Phil Karlton and Leon Bambrick)
coding and xkcd combined
coding and xkcd combined
Feel free to call me Julian. J+ is just an abbreviation.
Who is online
Users browsing this forum: Exabot [Bot] and 0 guests