10 ms·
Foundations of Computer Science
- thisisdallas 13y agoWould this be a good resource for someone who doesn't have a CS degree and who doesn't necessarily know the foundation of CS?
- shva 13y agoAfter skimming through it a bit, and as a CS student, this looks like an excellent introduction to the theory of computer science, especially for someone with no background in it. It corresponds with what I would expect a first or second year university course on Computer Science would cover. After reading some of this, if you're still interested in this sort of thing, the rather infamous Introduction to Algorithms published by MIT press may be a good next step. PDFs can be found online with a bit of digging.
- thisisdallas 13y agoAwesome, thanks for the help and the additional resources!
- blaabjerg 13y agoHere's the Prerequisites section: Students taking courses based on this book have ranged from first-year undergraduates to graduate students. We assume only that students have had a solid course in programming. They should be familiar with the programming language ANSI C to use this edition. In particular, we expect students to be comfortable with C constructs such as recursive functions, structures, pointers, and operators involving pointers and structures such as dot, ->, and &.
- lexisnexis86 13y agoThis is fantastic. Thanks for sharing!
- badhairday 13y agoOh man, I remember this book. My university uses it for a sophomore level CS course.
- darrellsilver 13y agoAwesome book. I think we used this book in my CS days, but would have to check my notes. Well timed post as well: We're adding more on programming fundamentals to our course at http://www.thinkful.com/ http://www.thinkful.com/
- mathattack 13y agoI like that they share the lecture notes too. http://i.stanford.edu/~ullman/fcsc-notes.html http://i.stanford.edu/~ullman/fcsc-notes.html
- darrellsilver 13y agoOh, that's really awesome.
- mathattack 13y agoAmazing how much they've stood the test of time.
- flinty 13y agogreat. Commenting for looking at later.
- mathattack 13y agoI hope you don't wait another 20 years. These have been waiting long enough. :-)
- cobookman 13y agoWe used the book for ECE 3020 - Mathematical foundations of computer Engineering at Gatech. Lecture notes have been taken down, but here are our homework solutions: http://users.ece.gatech.edu/~dblough/3020/solutions/hw_solutions.html http://users.ece.gatech.edu/~dblough/3020/solutions/hw_solut...
- Zergy 13y agoThis is one thing about GaTech that really annoys me. Every professor seems to remove thier notes at the end of every semester and only post them when the content becomes relevent to the course. You cant look ahead and cant reference them afterwards.
- signa11 13y ago> Every professor seems to remove thier notes at the end of every semester and only post them when the content becomes relevent to the course. might this be possibly done because there is not too much variation in course content from one sem to next ?
- Zergy 13y agoI'm sure this is the reasoning but it’s a stupid reason. I joined a frat because they have a service where they upload all the notes by class and professor and that caused my average GPA per semester to jump nearly a point. It’s simply lazy, easy to game, makes crunches nearly unbearable, and interferes with the student’s ability to learn. It’s also why GT while it has a reputation on par with MIT is actually a much worse school IMO. GT produces results because it lets a large amount of people in and them culls them out by being very difficult. Most GT students are very good at teaching themselves or finding groups such as the frat I’m with to get help. CS Classes are often more of a hindrance than a place to learn and many of the 3+ students I know stopped attending most classes and are basically self taught my self included those who do go to class study while there and simply keep an ear out for hints about what may be on the test. There are exceptions, especially after the sophomore year, but in general GT professors simply read aloud same notes for the last 5 years that have a very loose connection to what’s going to be on the test.
- jryan49 13y agoAlso used this book during university. We all had to print it out on a printer.
- mcguire 13y agoAnd I just discovered that I'm still a university computer science department system administrator: Every fiber of my being screamed, "Dear god, no! Use the Copy Center!"
- paulasmith 13y agoGreat book. It's amazing that after all these years the content is still relevant.
- joelg236 13y agoI mean, kind of, but not really. Math textbooks from the 60's are still relevant today, so why would computer science be sufficiently different? I can see that there are new concepts and whatnot, but there hasn't been any kind of fundamental change in thinking. I wouldn't expect there to be.
- statik_42 13y agoThis seems like a great book just from skimming a few chapters, I'll make sure I spend more time with this later. Thanks for posting.
- rbanffy 13y agoI can't find any license. I wonder if the authors would allow someone to convert the book to epub or mobi.
- thomasjames 13y agoIn the meantime, I just used PDFtk: pdftk preface.pdf toc.pdf ch*.pdf index.pdf cat output Aho_Ullman_1992_Foundations_of_Computer_Science.pdf
- themstheones 13y agoIs there an epub available?
- vbtemp 13y agoFrom the first paragraph of the first chapter: > But fundamentally, computer science is a science of abstraction — creating the right model for thinking about a problem and devising the appropriate mechanizable techniques to solve it. Too often in computer science education these days, this essential fact is lost.
- sonabinu 13y agoThis is so universal about computer science and programming ... I have it on my wall!
- deleted 13y ago[deleted]
- statik_42 13y agoSo true. People at my school don't always realize that computer science isn't just about programming, it's truly a subset of mathematics.
- chas 13y agoHomotopy type theory[1] is essentially working to show that math is (or can be viewed as) an interesting application of computer science. [1] http://homotopytypetheory.org/2013/06/20/the-hott-book/ http://homotopytypetheory.org/2013/06/20/the-hott-book/
- hackinthebochs 13y agoVery interesting! I've often got into nasty arguments with people online when I dared to say that Computer science (Computing) was not a subset of math, but rather could be viewed more naturally as a superset. It is good to see serious academic work being done along these lines.
- eru 13y agoYou can have the same debate about logic and mathematics, or to some extent philosophy and mathematics.
- dschiptsov 13y ago1992 - a world without Java... And, you know, the book about foundations is... SICP.) OK, this is C Edition.
- jorgeleo 13y agoif "computer science is a science of abstraction — creating the right model for thinking about a problem and devising the appropriate mechanizable techniques to solve it" then language is of no importance
- signa11 13y ago> language is of no importance well, you are just being facetious, and i guess you know it too. languages are part of 'devising the appropriate mechanizable techniques to solve it' as well as algorithms & data-structures which support the abstractions that you just came up with...
- dschiptsov 13y agoLanguage is a medium of expression of ideas (nothing in common with medium.com), so, less constrained it is the better. That is why Scheme in particular was chosen for SICP - it is small and expressive. It was a language for teaching, in good old times.))
- rgbrgb 13y agoInterestingly this was not the book we used in Al Aho's CS Theory course in 2011.
- vishal0123 13y agoWhy so many books these days are available to download for free one chapter at a time. It just makes reading worse.
- realti 13y agoI just downloaded the entire book using ' wget -mkp http://i.stanford.edu/~ullman/focs.html#pdfs http://i.stanford.edu/~ullman/focs.html#pdfs ' (Should work from any *nix systems having wget utility; I tried from mac) (explained here http://opstribe.wordpress.com/2013/06/22/a-simpler-backup-method-for-your-blog/ http://opstribe.wordpress.com/2013/06/22/a-simpler-backup-me... )
- jonknee 13y agoThat gets a lot more than the book PDFs... You could do something like this just to snag the chapters: curl -O http://i.stanford.edu/~ullman/focs/ch[01-14].pdf http://i.stanford.edu/~ullman/focs/ch[01-14].pdf Still less than ideal since they aren't one file. But it's easy enough to merge together.
- patricklynch 13y agoI like it; it makes it easier to read in a web browser. But if you want a full copy: 1. DownThemAll to pull down all of the .pdf links, 2. pdftk to merge them all into one file
- thiagoc 13y agohttp://ec2-54-232-207-208.sa-east-1.compute.amazonaws.com/focs.pdf http://ec2-54-232-207-208.sa-east-1.compute.amazonaws.com/fo...
- TY 13y agoThank you!!!
- tux1968 13y agoMany of the same questions when discussed here previously. Still no epub which is a shame.. https://news.ycombinator.com/item?id=1450633 https://news.ycombinator.com/item?id=1450633
- sgtnotorious 13y agoVery awesome book!
- deleted 13y ago[deleted]
- SatyajitSarangi 13y agoACM members once had a poll to resurrect a few classic CS books. That poll slowly became a "favourite CS books" list. This is the list: http://t.co/LOli1BKFuL http://t.co/LOli1BKFuL Some splendid suggestions there.
- sonabinu 13y agogreat list!!!!
- dylanrw 13y agoHere are all of the PDFs compiled into a single one with correct page numbers, including the preface etc. http://static.dyli.sh/Foundations%20of%20Computer%20Science%20-%20Al%20Aho%20and%20Jeff%20Ullman.pdf http://static.dyli.sh/Foundations%20of%20Computer%20Science%...
- jontas 13y agoI downloaded and merged the individual PDFs into one file, you can grab it here: https://dl.dropboxusercontent.com/u/6428759/merged.pdf https://dl.dropboxusercontent.com/u/6428759/merged.pdf Edit: I did this using commands mentioned in some other comments and some Googling (this only works on OSX): curl -O http://i.stanford.edu/~ullman/focs/ch[01-14].pdf http://i.stanford.edu/~ullman/focs/ch[01-14].pdf && /System/Library/Automator/Combine\ PDF\ Pages.action/Contents/Resources/join.py -o ./merged.pdf ./*.pdf
- wolfhumble 13y agoCool one-liner! Might want to switch the last part of the command, though, as all other pdf files in that folder get merged in as well (learned the hard way) :-) Something like this would probably be safer: curl -O http://i.stanford.edu/~ullman/focs/ch[01-14].pdf http://i.stanford.edu/~ullman/focs/ch[01-14].pdf && /System/Library/Automator/Combine\ PDF\ Pages.action/Contents/Resources/join.py -o ./merged.pdf ./ch[0-1][0-9].pdf
- jontas 13y agoSorry about that--I actually just created a new folder and moved into it before running the command, I probably should've mentioned that to prevent the issue you ran into.
- ekns 13y agoHere's a more portable version (works with bash, pdftk and wget): wget http://i.stanford.edu/~ullman/focs/ch{01..14}.pdf http://i.stanford.edu/~ullman/focs/ch{01..14}.pdf && pdftk ch*.pdf cat output merged.pdf
- FraaJad 13y agoMany people have posted the combined PDF on this thread. However, there is no way to economically print this PDF for self use. Lulu puts the limit at 740 pages and this book weighs in at 790+ pages. Does anyone know of a cheap online printer that can print at around 2cents/page?
- justin66 13y agoWith that budget you can get there with duplex b&w laser printing onto standard copier paper. I guess you'd have to buy a binder, but still cheaper than lulu I would think.
- peter303 13y agoI was in the Stanford bookstore a few days ago and noticed their summer softback text for their summer Comp Sci 101 course was $132. It was about Java and basic computer principles together. It resembled a standard softback beginning Java reference book but with some exercises added to each chapter. Aho and Jeff have done a fine service offering their more meaty textook online gratis. (You dont even want to know what hardback texts cost- over $200.)
- peter303 13y agoComputer Science has come of age when textbooks from 20 years ago are about as relevant as they are today. That means there are now timeless principles in the discipline. Most of the computer languages used in mY MIT classes 40 years ago are not around today.
- nsomaru 13y agoFrom the preface (prerequisites): > Students taking courses based on this book have ranged from first-year undergraduates to graduate students. We assume only that students have had a solid course in programming. They should be familiar with the programming language ANSI C to use this edition. In particular, we expect students to be comfortable with C constructs such as recursive functions, structures, pointers, and operators involving pointers and structures such as dot, ->, and &.\ Could someone recommend a resource for someone who is fairly proficient in Python?
- Loadin 13y agoThe C Programming Language =]
- super_mario 13y agoHere is a version with all chapters merged into single file and Bookmarks/Outline links working correctly: https://docs.google.com/file/d/0B4Hlagvt6wuTNGY5SlB3QlZQYTQ/edit?usp=sharing https://docs.google.com/file/d/0B4Hlagvt6wuTNGY5SlB3QlZQYTQ/...
- loupeabody 13y agoMany many many thanks for this link. That's another resource in the bucket along with SICP[0] and MIT 6.00[1]. I'm gonna have a beastly year for learning. [0]http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html [1]http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/ http://ocw.mit.edu/courses/electrical-engineering-and-comput...
- orlandob 13y agothanks