Showing posts with label taocp. Show all posts
Showing posts with label taocp. Show all posts

Friday, January 9, 2009

Self study plans

Self studying is always fun. Currently, I'm learning Haskell by reading Yaht and doing all the exercises in it. Almost done. In paraller, I'm reading through SICP which Santa brought kindly to me. The idea is to kill two birds with one stone (that's a terrible, violent idiom!) by writing a Scheme interpreter in Haskell. There is a promising tutorial to do just that in Wikibooks. After Yaht is done and the interpreter chapter been read in SICP, I plan to start the interpreter project.

And the bad news: the taocp project is currently halted :(

Thursday, April 24, 2008

Very busy

Current project status: Don't have time for taocp. Very busy.

Friday, March 28, 2008

TAOCP: Finished with 1.2 Mathematical Preliminaries

The final sections of 1.2 grow increasingly more complicated. Section 1.2.9 (Generating Numbers) was particularly nasty, and I got hardly anything out of it. Well, we can use it to find more information of some infinite series. Section 1.2.10 (Analysis of an Algorithm) begins gently, introducing a simple algorithm and demonstrating a flow chart for it. The end of that section was perhaps a little too much, however. Contradictory to my initial plan to skim the sections that are marked for mathematically inclined, I decided to read section 1.2.11.1 (the big-oh notation) as it is not a new concept for CS students and it's a very important concept when discussing algorithms. Sections 1.2.11.2 (Euler's summation formula) and 1.2.11.3 (Some asymptotic calculations) were skipped altogether.

So this brings section 1.2 to an end. I'm at page 124 and to my surprise I only had to skip a few pages from 1.2 Next becomes the MIX section that I have waited for.

TAOCP: (Harmonic+Fibonacci) Numbers

Section 1.2 is nearing its end as I just finished with 1.2.7 and 1.2.8 One could talk a lot of the Fibonacci series and of its relation to phi, but I'm sleepy and will just repeat a handy equation from the book that I didn't know: F_n = round(phi^n/sqrt(5), 0), where F_n is the nth fibonacci number and phi equals 0.5*(1+sqrt(5)), that is the golden ratio 1.618...

Wednesday, March 26, 2008

TAOCP: Slow progression

I've been busy in the past few days, and only tonight found time to proceed reading taocp. The section was 1.2.6 Binomial Coefficients. For the first time I found myself skipping some paragraphs that were full of equations. Much of the equations described how to play with Pascal's triangle, that indeed is a fascinating object.

Thursday, March 20, 2008

TAOCP: Half way into mathematical preliminaries

I have now taken a custom of reading taocp right before going to bed. Tonight I read sections 1.2.3 (Sums and Products), 1.2.4 (Integer Functions and Elementary Number theory) and 1.2.5 (Permutations and Factorials). I've now read almost a half of section 1.2, and the text is getting denser. I'm definitely waiting for the maths section to be over and get to delve into the description of MIX which is the hypothetical computer used throughout the book series.

Tuesday, March 18, 2008

TAOCP: Induction and logarithms

Knuth suggests that it may be wise to skim through the mathematical sections from the beginning of the book when reading for the first time. I decided to read on and only start skimming when it becomes overly heavy. The sections about mathematical induction and logarithm were pretty basic stuff, not too hard to read, although many of the exercises were beyond my math scope.

In one exercise it was asked what is the value of log_pi (pi), that is, base pi logarithm of pi. We can immediately declare an answer following the definition of a logarithm, but because rational numbers act in an awkward manner as base, couldn't we just declare it undefined? The right answer given by Knuth is 1, of course.

Next time it is sums and products who will accompany me.

Saturday, March 15, 2008

TAOCP: Foreword and 1.1. Algorithms

Here we go. In the foreword, I found it amusing that Knuth kindly informs that the reader should have written and tested three computer programs in order to have enough pre-knowledge for his book series. I think we can't count a "Hello, world" as one here. The statement is arbitrary of course.

Having read the reading instructions + the state machine I decided to keep picking the "yes" edge from the state "2+2=5" which leads to the "skim math" state, and concentrate on programming. I won't be missing the math though, it's prevalent all over.

The first actual section (1.1.) was written in a sound way. I'm not sure I fully understood the formal definition of a computational method, though. So I'm planning to re-read that part next time.

Friday, March 14, 2008

TAOCP is here

Great, the material is finally here, and it is now possible to start the mission I talked about in the first post of this blog. Ah, the sweet scent of a new book.

Sunday, March 9, 2008

Challenge

I really envy hard-working, enthusiast people who voluntarily get involved with massive projects in their free time in the subject they so love. I occasionally have some free time, too. My plan is to read through perhaps the most significant "introductory" text from our field. That is The Art of Computer Programming.

Everyone knows Donald E. Knuth's legendary TAOCP series but hardly anyone has read it. It contains the fundamental knowledge from our field - computer programming - in rigorous detail. TAOCP is still in progress, the first three volumes (Fundamental Algorithms, Seminumerical Algorithms, Sorting and Searching) are already available and have been for several decades. Volumes 4 to 7 are in progress. I hope aging Knuth will have enough time to finish the series.

I don't know if I can maintain motivation through the three available volumes but I certainly are going to try. The books are already on their way from an American net-store (dollar is cheap nowadays!). They've estimated to deliver the books in two weeks.

I plan to document my progress or lack of progress in this blog and comment the chapters as I go. I'm not going to set a strict schedule for myself because the amount of free-time is not a constant. I unfortunately cannot follow the reading instructions that Knuth generously offers in the first volume. However I try to keep reading a few pages regularly, because huge time gaps will definitely kill the project. And no, should I succeed I'm not planning to send a resume to Bill Gates (nor Paul Allen for that matter).