
Foundations of Computer Science - sonabinu
http://i.stanford.edu/~ullman/focs.html
======
jontas
I 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
Cool 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
Sorry 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.

------
vbtemp
From 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.

~~~
statik_42
So true. People at my school don't always realize that computer science isn't
just about programming, it's truly a subset of mathematics.

~~~
chengiz
Ok I'll bite. Why is "creating the right model for thinking about a problem
and devising the appropriate mechanizable techniques to solve it" a subset of
_mathematics_?

~~~
TeMPOraL
Because the mathematics is basically distilled, formalized art of precise
thinking. It's the art of manipulating and morphing mental models. It's as
much about numbers as astronomy is about telescopes ;).

~~~
seanmcdirmid
Forming a model might not involve precise thinking, it often involves lateral
thinking, at least with me.

I heard that computer science was more of a subset of music than math.

~~~
Retric
Higher math requires a great deal of lateral thinking. Also, music an math are
often closely related but I don't see the connection between music an say
computer vision.

~~~
seanmcdirmid
Computer vision practitioners do mostly math, are we calling them computer
scientists also? Sheesh :). Whenever I get in the same room with one, we are
talking completely different languages (and we do have a sizeable computer
vision team in our lab).

------
SatyajitSarangi
ACM 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
great list!!!!

------
mathattack
I 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
Oh, that's really awesome.

~~~
mathattack
Amazing how much they've stood the test of time.

------
dylanrw
Here 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%...](http://static.dyli.sh/Foundations%20of%20Computer%20Science%20-%20Al%20Aho%20and%20Jeff%20Ullman.pdf)

------
FraaJad
Many 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
With 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.

------
cobookman
We 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_solut...](http://users.ece.gatech.edu/~dblough/3020/solutions/hw_solutions.html)

~~~
Zergy
This 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
> 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
I'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.

~~~
mturmon
"GT while it has a reputation on par with MIT"

This is not the case. Best not to repeat this claim.

~~~
barry-cotter
If one is being extremely charitable (to the poster, not Georgia Tech) one
could say that GATech is an elite engineering school but not super elite, like
MIT. There is legitimate controversy over what the best university is for CS
in the world. For what the top four are there isn't. They are CMU, MIT,
Berkeley and Stanford. Georgia Tech has a really great reputation and every
professor there is a very impressive researcher but it is not comparable to
MIT.

------
loupeabody
Many 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-
comput...](http://ocw.mit.edu/courses/electrical-engineering-and-computer-
science/6-00-introduction-to-computer-science-and-programming-fall-2008/)

------
peter303
I 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.)

------
vishal0123
Why so many books these days are available to download for free one chapter at
a time. It just makes reading worse.

~~~
realti
I 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-
me...](http://opstribe.wordpress.com/2013/06/22/a-simpler-backup-method-for-
your-blog/) )

~~~
jonknee
That 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.

------
peter303
Computer 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.

------
darrellsilver
Awesome 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/)

------
rgbrgb
Interestingly this was not the book we used in Al Aho's CS Theory course in
2011.

~~~
zerr
But what book it was?

~~~
rgbrgb
I believe it was the one required here:
[http://www.cs.columbia.edu/~aho/cs3261/](http://www.cs.columbia.edu/~aho/cs3261/)

------
nsomaru
From 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
The C Programming Language =]

------
thisisdallas
Would 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
After 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
Awesome, thanks for the help and the additional resources!

------
rbanffy
I can't find any license. I wonder if the authors would allow someone to
convert the book to epub or mobi.

~~~
thomasjames
In 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

------
super_mario
Here is a version with all chapters merged into single file and
Bookmarks/Outline links working correctly:

[https://docs.google.com/file/d/0B4Hlagvt6wuTNGY5SlB3QlZQYTQ/...](https://docs.google.com/file/d/0B4Hlagvt6wuTNGY5SlB3QlZQYTQ/edit?usp=sharing)

------
paulasmith
Great book. It's amazing that after all these years the content is still
relevant.

~~~
joelg236
I 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.

------
tux1968
Many 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)

------
statik_42
This 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.

------
badhairday
Oh man, I remember this book. My university uses it for a sophomore level CS
course.

------
jryan49
Also used this book during university. We all had to print it out on a
printer.

~~~
mcguire
And 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!"

------
themstheones
Is there an epub available?

------
lexisnexis86
This is fantastic. Thanks for sharing!

------
sgtnotorious
Very awesome book!

------
orlandob
thanks

------
dschiptsov
1992 - a world without Java...

And, you know, _the_ book about foundations is... SICP.) OK, this is _C
Edition_.

~~~
jorgeleo
if

    
    
        "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
> 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...

