Friday, November 13, 2009 2:51 AM,
This message from a student is not for today. In fact, feel free to delete or at the very most, put it on the stack for reading after the semester is over and you are at home suffering from withdrawal pains of no EE 306 to do. A student writes: Hello again Dr. Patt In class, you have suggested more than a few times to look into Donald Knuth's series of volumes titled The Art Of Computer Programming. Do you have any other suggestions as well or does Knuth do the job? Also are there more books on how the computer works (something similar to your book)? Something that goes over other types of computer processes that you weren't able to cover in your book due to limiting the material to one semester. Or do I just need to wait until my upper division classes? Thanks for the help, <<name withheld to protect the student who has not had enough>> Certainly you could wait, but you do not have to wait until your upper division classes. Knuth is excellent for what it covers. It is called The Art of Computer Programming, and deals with issues in programming. I certainly strongly encourage everyone serious in computer science and engineering to have copies of it on their shelves. Whether you do so now, or wait and get the series as a graduation present is up to you. Our textbook should give you a strong foundation on the topics it covers (number representations, digital logic, computer organization, assembly language, and intro to high level programming in C), but then of course I am hardly objective when it comes to my own book. We have tried to make the book solid and rigorous on each element, but certainly not complete with respect to all the ramifications. But, as you clearly understand from your comment on "upper division classes," there is much more to deal with as you get into each of these elements. With respect to digital logic, my preferred book is the one by John Wakerly. I don't have the complete citation off the top of my head, but Google these days seems happy to fill in the blanks. With respect to other high level languages, that will depend on the language. Because C is a language that exposes the most to the programmer, I think you will find chapters 11-19 in our book useful when you study these concepts with some other language. At least I have been told that by former students who have gone on to 312 and 322C. For example, the notion of functions which is an important component of most programming languages is pretty clearly spelled out I think in our book. Pointers are simply LDI and STI revisited. With respect to computer organization and architecture, that depends on the particular ISA. Right now I do not have any recommendation, but I hope to change that soon. With respect to 319K, which you will get next semester, you should check with Professor Valvano. With respect to operating systems at the undergraduate level, Bryant and O'Halloran seems to be a good choice, but that is something for a couple of years from now. OR, again, you can wait for your upper division courses. Good luck as you proceed through the curriculum. And, please start by earning an A in EE 306. Yale Patt