1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

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

  1. Aug 12, 2015 #1
    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.
  2. jcsd
  3. Aug 12, 2015 #2


    User Avatar
    Science Advisor
    Homework Helper
    2017 Award

    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 !
  4. Aug 12, 2015 #3


    User Avatar
    Education Advisor
    Gold Member

    You are talking about the book by Knuth, right?


    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.


    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.


    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.

    Last edited by a moderator: May 7, 2017
  5. Aug 12, 2015 #4


    User Avatar

    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.
  6. Aug 12, 2015 #5
    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.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook