title: Making a list of books that cover topics of a typical CS undergrad
body: <p>I want to cover the equivalent of a typical CS undergrad course in material, so I'm making a list of books to cover the typical topics. I've split the list into topics that, from the research I did, <em>I think</em> are compulsory and optional. I would like some help to confirm if the topics are split correctly, and if the books are of the correct level. Also, please let me know if I left out any important topics, or if any are beyond undergrad level.</p>
  
  <p>Thank you for your time!</p>
  
  <p>Edit regarding the on hold status: I do not believe this question is off-topic as I am not asking for a recommendation for books - I am asking if the <em>topics</em> I have listed are indicative of a typical CS course, and if any important topics are missing. The books links are only there in case the books I have chosen are not correct for the topic, and can be removed if necessary.</p>
  
  <hr>
  
  <p><strong>COMPULSORY</strong></p>
  
  <p>Operating Systems: <a href="https://rads.stackoverflow.com/amzn/click/com/1118063333" rel="noreferrer" rel="nofollow noreferrer">Operating System Concepts</a></p>
  
  <p>Networks: <a href="https://rads.stackoverflow.com/amzn/click/com/0132856204" rel="noreferrer" rel="nofollow noreferrer">Computer Networking: A Top-Down Approach</a></p>
  
  <p>Discrete Mathematics: <a href="https://rads.stackoverflow.com/amzn/click/com/0201558025" rel="noreferrer" rel="nofollow noreferrer">Concrete Mathematics</a></p>
  
  <p>Data Structures and Algorithms: <a href="https://rads.stackoverflow.com/amzn/click/com/0262033844" rel="noreferrer" rel="nofollow noreferrer">Introduction to Algorithms</a></p>
  
  <p>Computer Architecture: <a href="https://rads.stackoverflow.com/amzn/click/com/0136108040" rel="noreferrer" rel="nofollow noreferrer">Computer Systems: A Programmer's Perspective</a></p>
  
  <p>Automata Theory: <a href="https://rads.stackoverflow.com/amzn/click/com/113318779X" rel="noreferrer" rel="nofollow noreferrer">Introduction to the Theory of Computation</a></p>
  
  <p>Compilers: <a href="https://rads.stackoverflow.com/amzn/click/com/012088478X" rel="noreferrer" rel="nofollow noreferrer">Engineering a Compiler</a> was recommended to me over the dragon book.</p>
  
  <p>Database Theory: <a href="https://rads.stackoverflow.com/amzn/click/com/0321197844" rel="noreferrer" rel="nofollow noreferrer">An Introduction to Database Systems</a></p>
  
  <p>Programming Language Concepts and Design: <a href="https://rads.stackoverflow.com/amzn/click/com/0123745144" rel="noreferrer" rel="nofollow noreferrer">Programming Language Pragmatics</a></p>
  
  <p><strong>OPTIONAL</strong></p>
  
  <p>Cryptography: <a href="https://rads.stackoverflow.com/amzn/click/com/0470474246" rel="noreferrer" rel="nofollow noreferrer">Cryptography Engineering: Design Principles and Practical Applications</a></p>
  
  <p>Functional Programming: <a href="https://rads.stackoverflow.com/amzn/click/com/1593272839" rel="noreferrer" rel="nofollow noreferrer">Learn You a Haskell for Great Good!</a></p>
  
  <p>Artificial Intelligence: <a href="https://rads.stackoverflow.com/amzn/click/com/0136042597" rel="noreferrer" rel="nofollow noreferrer">Artificial Intelligence: A Modern Approach</a></p>
  
  <p>Computer Graphics: <a href="https://rads.stackoverflow.com/amzn/click/com/1568814240" rel="noreferrer" rel="nofollow noreferrer">Real-Time Rendering</a></p>