What are the prequisites for studying The Art of Computer Programming?

Click For Summary
The discussion centers on the challenges of studying "The Art of Computer Programming" (TAOCP) by Donald Knuth, particularly due to its use of the MIX assembly language, which the user has not yet studied. The user expresses a desire to gain a deeper understanding of computer science beyond their university syllabus and seeks advice on how to approach TAOCP effectively. Responses suggest that while TAOCP is a respected classic, it may not be the most accessible resource for an undergraduate. Recommendations include starting with course materials or more introductory texts on data structures before tackling TAOCP. Additionally, suggestions are made to gain familiarity with assembly language and programming fundamentals through other resources. The user acknowledges their confidence in mathematics and programming but expresses concern about their lack of experience with assembly language. Overall, the conversation emphasizes the importance of foundational knowledge and accessible learning materials in computer science education.
Maths Absorber
Messages
59
Reaction score
3
Hi friends,

I have an avid interest on Mathematics and progranming and am working very hard to become a great computer scientist/ engineer. I have been researching books that woukd help me in this goal and by all accounts, TAOCP is one of them.

I am convinced that studying this book wilk give me a distinct advantage over most of my classmates who just do the university syllabus (which unfortunately, doesn't go into great depth). I'm in my second year of engineering.

However, one major block I've come across is finding out that the book is written on an imsginary computer called MIX in assembky language. We're only going to do assembly language next semester and it's an area I have no experience in. It scared me and I didn't go very far with the book.

My question is what is the best way to go about it? We have a ciurse on data structures this semester and I wish to master it through TAOCP. What is the prequisite required to understand it? Do I need to buy another book and study assembky language and then start reading it or is there any other approach which would help me?

Many thanks for your time.
 
Physics news on Phys.org
Hi Mat,

I have TAOCP in my bookcase for sentimental reasons. For your purposes any other book would be a lot better than trying to get at it through struggling with MIX.
Find something you like, or browse the material for your course.

[edit] if that's not sophisticated enough, a simple google of introduction to data structures should allow you to find something that matches your course topics and leads you further.

Good luck !
 
You are talking about the book by Knuth, right?

https://www.amazon.com/dp/0321751043/?tag=pfamazon01-20

That one?

Probably you could benefit from it. But also, probably you could get the same benefit from some other books that are a bit more accessible. Knuth is more interested in, well, academic issues and theory behind various things. These are interesting questions. But probably there are better ways for an undergrad to get through a class on a particular computer topic.

Knuth is one of those "classic" texts that everybody wants everybody else to read. It's a lot like the Feynman lectures books. Even Feynman wasn't particularly enthusiastic about making it the text for a class. Lots of fun, very interesting, and everybody should read it. But it should not be your main source or main learning material.

For example: If you want to learn data structures, probably the text for your class is the place to start. Or you could even start with one of the really introductory books. Maybe a Schaum's Outline or something like that. Or you could delve into one of the Numerical Recipes books.

https://www.amazon.com/dp/0521880688/?tag=pfamazon01-20

If you wanted to learn to code in a particular language, there are user groups and similar resources. For example, for C++ you could do worse than starting here.

https://isocpp.org/faq

If you want to learn how to code properly, then you want to get into various software engineering topics. For example, learning the "morality" of computer programming is a keen issue. A book I quite like is this one.

https://www.amazon.com/dp/0735619670/?tag=pfamazon01-20
 
Last edited by a moderator:
I would list these as the prerequisites:

(1) Solid mathematics experience, up to at least intermediate calculus.
(2) Experience in a low level programming language. These days probably plain C. You should have written at least 2-3 small programs in plain C.
(3) Experience with assembly language. These days probably x86 or x86_64. You should have written at least 2-3 small programs in pure assembly.
 
Thank you for all your generous inputs.

The book prescribed by my university doesn't appeal to me at all actually. Plus, I've never heard anyone describe it as a classic. That's why I wanted to do The Art of Con liter Programming. I don't want to use it to get through a course. My actual intention behind using it was because it's a classic and so revered. I figured learning it would enhance my skills.

I will definitely check out the numerical Recipes book. Thank you for the recommendations.

I am confident about the mathematical part of it and the programming side of it. I'm worried about the assembly side of it, which I'm completely clueless about.

Anyway, thanks for your help, guys.
 
TL;DR: Jackson or Zangwill for Electrodynamics? Hi, I want to learn ultrafast optics and I am interested in condensed matter physics, ie using ultrafast optics in condensed matter systems. However, before I get onto ultrafast optics I need to improve my electrodynamics knowledge. Should I study Jackson or Zangwill for Electrodynamics? My level at the moment is Griffiths. Given my interest in ultrafast optics in condensed matter, I am not sure which book is better suited for me. If...

Similar threads

  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 16 ·
Replies
16
Views
3K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 7 ·
Replies
7
Views
854
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 13 ·
Replies
13
Views
2K
  • · Replies 5 ·
Replies
5
Views
1K
  • · Replies 7 ·
Replies
7
Views
3K