Resources for learning the Math and Science behind computing

A place to discuss the science of computers and programs, from algorithms to computability.

Formal proofs preferred.

Moderators: phlip, Prelates, Moderators General

Resources for learning the Math and Science behind computing

Postby HappySmileMan » Fri Mar 21, 2008 8:10 pm UTC

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.
HappySmileMan
 
Posts: 52
Joined: Fri Nov 09, 2007 11:46 pm UTC

Re: Possibly a very stupid question

Postby davean » Fri Mar 21, 2008 8:13 pm UTC

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.
User avatar
davean
Site Ninja
 
Posts: 2438
Joined: Sat Apr 08, 2006 7:50 am UTC

Re: Possibly a very stupid question

Postby HappySmileMan » Fri Mar 21, 2008 8:18 pm UTC

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.
HappySmileMan
 
Posts: 52
Joined: Fri Nov 09, 2007 11:46 pm UTC

Re: Possibly a very stupid question

Postby davean » Fri Mar 21, 2008 8:26 pm UTC

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.
User avatar
davean
Site Ninja
 
Posts: 2438
Joined: Sat Apr 08, 2006 7:50 am UTC

Re: Possibly a very stupid question

Postby HappySmileMan » Fri Mar 21, 2008 9:05 pm UTC

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.
HappySmileMan
 
Posts: 52
Joined: Fri Nov 09, 2007 11:46 pm UTC

Re: Possibly a very stupid question

Postby necroforest » Fri Mar 21, 2008 10:24 pm UTC

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!
User avatar
necroforest
 
Posts: 195
Joined: Tue Apr 10, 2007 3:46 pm UTC

Re: Possibly a very stupid question

Postby Micron » Fri Mar 21, 2008 10:49 pm UTC

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.
Micron
 
Posts: 319
Joined: Sat Feb 16, 2008 1:03 am UTC

Re: Possibly a very stupid question

Postby HappySmileMan » Sat Mar 22, 2008 2:07 am UTC

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.
HappySmileMan
 
Posts: 52
Joined: Fri Nov 09, 2007 11:46 pm UTC

Re: Resources for learning the Math and Science behind computing

Postby Horsman » Sat Mar 22, 2008 5:48 pm UTC

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)
Horsman
 
Posts: 16
Joined: Fri Mar 21, 2008 5:49 pm UTC

Re: Possibly a very stupid question

Postby Danikar » Tue Apr 01, 2008 11:17 pm UTC

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.
- Danikar
User avatar
Danikar
 
Posts: 14
Joined: Tue Apr 01, 2008 10:51 pm UTC
Location: Huntington Beach, CA

Re: Resources for learning the Math and Science behind computing

Postby Grumpy Code Monkey » Wed Apr 30, 2008 6:36 pm UTC

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.
Grumpy Code Monkey
 
Posts: 99
Joined: Tue Feb 19, 2008 4:10 pm UTC
Location: Blue Texas

Re: Resources for learning the Math and Science behind computing

Postby Gatesunder » Mon May 05, 2008 4:52 am UTC

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 . . .
I'm wrong 99% of the time, but some day that 1% will be better than the rest ...
User avatar
Gatesunder
 
Posts: 120
Joined: Sat Feb 09, 2008 11:24 pm UTC
Location: KSU

Re: Resources for learning the Math and Science behind computing

Postby Indelible » Wed Jun 11, 2008 5:35 am UTC

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.
Indelible
 
Posts: 8
Joined: Wed Jun 11, 2008 4:26 am UTC

Re: Resources for learning the Math and Science behind computing

Postby tex » Mon Aug 18, 2008 10:42 am UTC

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.
tex
 
Posts: 7
Joined: Mon Aug 18, 2008 9:56 am UTC

Re: Resources for learning the Math and Science behind computing

Postby deconvoluted » Mon Dec 22, 2008 4:20 am UTC

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 :)
deconvoluted
 
Posts: 94
Joined: Fri Dec 19, 2008 4:40 pm UTC

Re: Resources for learning the Math and Science behind computing

Postby Aushin » Wed Mar 18, 2009 5:41 pm UTC

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
Aushin
 
Posts: 2
Joined: Wed Mar 18, 2009 5:37 pm UTC

Re: Resources for learning the Math and Science behind computing

Postby Aushin » Wed Mar 18, 2009 5:55 pm UTC

of course i don't read that this is a three month+ old thread sighhh
Aushin
 
Posts: 2
Joined: Wed Mar 18, 2009 5:37 pm UTC

Re: Resources for learning the Math and Science behind computing

Postby burntcerial » Sat Mar 21, 2009 4:15 am UTC

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
burntcerial
 
Posts: 2
Joined: Sat Mar 21, 2009 4:11 am UTC

Re: Resources for learning the Math and Science behind computing

Postby deconvoluted » Sat Mar 21, 2009 6:47 pm UTC

It's not a dumb question. But if you read the other replies in this thread, it's been answered.
deconvoluted
 
Posts: 94
Joined: Fri Dec 19, 2008 4:40 pm UTC

Re: Resources for learning the Math and Science behind computing

Postby andrewxc » Sun Mar 22, 2009 3:10 am UTC

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.
"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.
User avatar
andrewxc
 
Posts: 223
Joined: Tue Sep 09, 2008 2:39 am UTC
Location: Savage, MD

Re: Resources for learning the Math and Science behind computing

Postby Yakk » Mon Mar 23, 2009 5:09 pm UTC

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.
User avatar
Yakk
Poster with most posts but no title.
 
Posts: 10454
Joined: Sat Jan 27, 2007 7:27 pm UTC
Location: E pur si muove

Re: Resources for learning the Math and Science behind computing

Postby Berengal » Mon Mar 23, 2009 5:21 pm UTC

You've probably already checked these, but for completeness
Wikiportal
Wikibooks: CT for Haskellers
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.
User avatar
Berengal
Superabacus Mystic of the First Rank
 
Posts: 2707
Joined: Thu May 24, 2007 5:51 am UTC
Location: Bergen, Norway

Re: Resources for learning the Math and Science behind computing

Postby deconvoluted » Mon Mar 23, 2009 7:53 pm UTC

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.
deconvoluted
 
Posts: 94
Joined: Fri Dec 19, 2008 4:40 pm UTC

Re: Resources for learning the Math and Science behind computing

Postby ConcatenatedWords » Sun Mar 29, 2009 10:35 pm UTC

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.
"I hereby endorse this product and/or service. I'm not a paid actor! I'm a real consumer just like you!"
User avatar
ConcatenatedWords
 
Posts: 17
Joined: Thu May 29, 2008 9:41 pm UTC

Re: Resources for learning the Math and Science behind computing

Postby lordlicorice » Tue Apr 14, 2009 12:56 am UTC

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.
lordlicorice
 
Posts: 52
Joined: Sat Apr 04, 2009 5:00 am UTC

Re: Resources for learning the Math and Science behind computing

Postby The Mad Scientist » Wed Apr 15, 2009 5:49 am UTC

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.
The Mad Scientist
 
Posts: 129
Joined: Wed Jan 14, 2009 6:09 am UTC

Re: Resources for learning the Math and Science behind computing

Postby The Mad Scientist » Wed Apr 15, 2009 6:14 am UTC

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 Mad Scientist
 
Posts: 129
Joined: Wed Jan 14, 2009 6:09 am UTC

Re: Resources for learning the Math and Science behind computing

Postby deconvoluted » Thu Apr 30, 2009 8:48 pm UTC

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.
deconvoluted
 
Posts: 94
Joined: Fri Dec 19, 2008 4:40 pm UTC

Re: Resources for learning the Math and Science behind computing

Postby lordlicorice » Thu Apr 30, 2009 9:09 pm UTC

Haskell terrifies me.
lordlicorice
 
Posts: 52
Joined: Sat Apr 04, 2009 5:00 am UTC

Re: Resources for learning the Math and Science behind computing

Postby deconvoluted » Thu Apr 30, 2009 9:28 pm UTC

This is why it's so scary.
deconvoluted
 
Posts: 94
Joined: Fri Dec 19, 2008 4:40 pm UTC

Re: Resources for learning the Math and Science behind computing

Postby lordlicorice » Thu Apr 30, 2009 9:45 pm UTC

: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?
lordlicorice
 
Posts: 52
Joined: Sat Apr 04, 2009 5:00 am UTC

Re: Resources for learning the Math and Science behind computing

Postby Berengal » Thu Apr 30, 2009 9:56 pm UTC

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.
User avatar
Berengal
Superabacus Mystic of the First Rank
 
Posts: 2707
Joined: Thu May 24, 2007 5:51 am UTC
Location: Bergen, Norway

Re: Resources for learning the Math and Science behind computing

Postby deconvoluted » Thu Apr 30, 2009 10:27 pm UTC

@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.
deconvoluted
 
Posts: 94
Joined: Fri Dec 19, 2008 4:40 pm UTC

Re: Resources for learning the Math and Science behind computing

Postby lordlicorice » Fri May 01, 2009 9:42 pm UTC

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/
lordlicorice
 
Posts: 52
Joined: Sat Apr 04, 2009 5:00 am UTC

Re: Resources for learning the Math and Science behind compu

Postby Disgrace » Thu Apr 08, 2010 8:40 pm UTC

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.
Disgrace
 
Posts: 1
Joined: Thu Apr 08, 2010 8:33 pm UTC

Re: Resources for learning the Math and Science behind compu

Postby Borbus » Fri May 21, 2010 12:06 pm UTC

Donald Knuth's "The Art of Computer Programming". And for more about the mathematics, "Concrete Mathematics". Accept no substitutes.
Borbus
 
Posts: 3
Joined: Fri May 21, 2010 10:24 am UTC

Re: Resources for learning the Math and Science behind compu

Postby Parsifal » Thu Jun 02, 2011 11:30 am UTC

"Origamist Haskell programmer
(always starts out with the “basic Bird fold”)


I snorted at this one :)
Parsifal
 
Posts: 114
Joined: Thu Feb 28, 2008 1:35 am UTC

Re: Resources for learning the Math and Science behind compu

Postby Canone » Tue Sep 27, 2011 7:43 am UTC

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.
Canone
 
Posts: 1
Joined: Tue Sep 27, 2011 7:35 am UTC

Re: Resources for learning the Math and Science behind compu

Postby Idetuxs » Sat Mar 24, 2012 6:25 am UTC

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. :)
User avatar
Idetuxs
 
Posts: 11
Joined: Thu Jun 16, 2011 12:33 am UTC

Re: Resources for learning the Math and Science behind compu

Postby Jplus » Sat Mar 24, 2012 7:27 pm UTC

Anani Levitin, The Design and Analysis of Algorithms is quite good. But it doesn't cover data structures.
Feel free to call me Julian. J+ is just an abbreviation.
Image coding and xkcd combined
User avatar
Jplus
 
Posts: 1560
Joined: Wed Apr 21, 2010 12:29 pm UTC
Location: classified

Next

Return to Computer Science

Who is online

Users browsing this forum: allmhuran and 0 guests