25 Most Influential Books in Computer Science 2010–2020

phd books for computer science

Computer science, as we interpret it here, encompasses both the academic study of computing systems and philosophical and sociological reflections on the impact of computers upon human society.

Key Takeaways

  • Computer science is an extremely challenging field of study, and programming student will benefit from the study and reading done outside of their regular coursework. Our list of the most influential computer science books are must-reads!
  • There are numerous forms of learning when it comes to programming: university courses, video-based classes (like Udacity ), interactive classes (like those offered by Codecademy ), and online courses, just to name a few. But computer science books can be just as helpful.
  • With so many computer science books today, choosing the right books is so overwhelming. The key is to know exactly what you want to study.

With these criteria in mind, we have compiled a list of the most influential books in computer science of the past decade (2011–2021). We have assigned an objective measure of “influence” to each book on the basis of the number of references it has received in both the academic literature and the popular media.

Note that our list does not necessarily represent the most popular computer science books overall published during the past ten years, nor is it a straightforward list of computer science bestsellers during that time frame.

The main reason is that, although we have taken into consideration the most-popular introductory-level textbooks and basic manuals in the field, we have excluded advanced computer science textbooks and technical reference works. We have also omitted sacred texts and most fictional works which may contain material relevant to aspects of computer science.

Rather, our list provides you with the 25 books on computer science that have had the greatest combined academic and popular impact over the past decade.

The Must-read Computer Science Books

Computer science books not only teach the semantics and syntax of programming languages. These books are created to help everyone, computer science majors in particular, organize, think, and become an efficient problem solver—qualities that you should have as a computer coder. There is so much more to computer science books than learning programming languages like Java, Python, C++, and more.

Choosing the Right Computer Science Books

How do you choose the right computer science books?

Know the Technology You Want to Learn: This step is sometimes inherent, especially for programmers who already have programming skills but still need to learn something new to complete a project. Suffice it to say, there are times when even the most experienced programmers will not know what they want to learn at all.

Beginners in programming struggle to choose their first computer language. The more advanced programmers sometimes struggle to remain relevant and knowledgeable in a field that is constantly changing and evolving.

Other programmers can be a great source of information on different languages and skills are important for specific computer programming jobs. They may also be able to point you to an influential book or two that can help strengthen your knowledge base.

Beginning programmers will want to start with the basics. Find books that talk about the fundamentals of programming, data structures, and algorithms. These things are staples in any learning curriculum of computer science. Learning about computer hardware is just as important.

Evaluate the Book: When evaluating, check the table of contents to get a glance of the specific topics covered in the book. Do the topics align with your expectations? How broad (or narrow) is the scope? The formatting is also very important. When glancing through the page, do you see short paragraphs broken up with highlighted tips, lists, and diagrams? The complexity and length of the sentences are also very important. Technical books should explain concepts as simply as possible. The book is designed to present vital information in the most easy-to-understand manner.

The conversational style of the book also matters. Does the author use second-person pronouns like “you” and “your”? Does the book sound fun and a bit informal? Is the author trying to engage the readers with questions?

If these characteristics are present, then the author knows something about learning theories. The more readers are engaged in the book, the better benefit they get from what they’re reading. Finally, book reviews are also important when choosing the best computer science books. If other people can attest to the book, then most likely you can take advantage of it.

Otherwise, read on for a look at The 25 Most Influential Books in Computer Science .

25 Most Influential Books in Computer Science

The art of computer programming, volumes 1-4a boxed set.

By: Donald Knuth , 1962

Book Cover for The Art of Computer Programming, Volumes 1-4A Boxed Set

Knuth (b. 1938) is Professor Emeritus of computer science at Stanford University in Stanford, California. Born in Milwaukee, Wisconsin, he obtained his PhD in mathematics in 1963 from the California Institute of Technology (CalTech). In 1974, Knuth won the Turing Award—the equivalent of the Nobel Prize for computer science.

The book under consideration here is a classic, but no ordinary one. An ordinary classic is a work that never gets stale. This extraordinary classic is one that is never even finished! First published in 1962 in a single volume consisting of twelve chapters, the book has gradually but continuously expanded over the intervening 60 years.

Today, The Art of Computer Programming comprises four separate volumes. The last volume is divided into two parts, only the first part of which (consisting of Fascicles 0–4) has been published so far, under the designation Volume 4A.

The second part of Volume 4—to be denominated as Volume 4B—has been announced for the near future. It will consist of an unspecified number of additional fascicles, the first of which, Fascicle 5, was published separately in 2019. More volumes may appear after that.

The topics covered by Volumes 1–4A of this authoritative and encyclopedic work include the basic concepts of fundamental algorithms, random numbers, arithmetic algorithms, sorting, searching, and combinatorics.

The Man Who Invented the Computer: The Biography of John Atanasoff, Digital Pioneer

By: Jane Smiley , 2010

Book Cover for The Man Who Invented the Computer: The Biography of John Atanasoff, Digital Pioneer

Smiley (b. 1949) is best known as a novelist. She won the Pulitzer Prize for Fiction in 1991 for her bestselling novel, A Thousand Acres , which was loosely based on Shakespeare’s play, King Lear .

This book is a biography of the American physicist, John V. Atanasoff (1903–1995). Atanasoff’s father, who was an electrical engineer, was born in Bulgaria and emigrated to the US in 1889. Born in Hamilton, New York, the son was raised mostly in Florida.

Atanasoff received his bachelor’s degree in 1925 from the University of Florida. He then earned his master’s degree in mathematics in 1926 from Iowa State College (now Iowa State University) and his PhD in theoretical physics in 1930 from the University of Wisconsin at Madison. After graduation, Atanasoff accepted a position teaching mathematics and physics back at Iowa State College.

In Atanasoff’s day, scientists used slide rules, mechanical calculating machines and tabulators to solve math problems. Atanasoff teamed up with a graduate student named Clifford Berry (1918–1963) to try to develop a new method of calculation that would be faster and more reliable than the ones available at the time. The device they came up with in 1939 at Iowa State became known as the “Atanasoff-Berry Computer” (ABC).

The ABC employed Boolean logic and binary arithmetic to solve as many as 29 simultaneous linear equations. While it did not employ a central processing unit (CPU), it did use vacuum tubes in order to perform digital computations. Thus, the ABC’s design represents one of the earliest examples of an electronic digital computer.

The ABC also made use of electrical capacitance to create regenerative memory—a process similar to today’s dynamic random-access memory (DRAM).

How to Design Programs: An Introduction to Programming and Computing

By: Matthias Felleisen , Robert Bruce Findler , Matthew Flatt , and Shriram Krishnamurti, 1962

Book Cover for How to Design Programs: An Introduction to Programming and Computing

Felleisen is Trustee Professor in the Khoury College of Computer Sciences at Northeastern University in Boston, Massachusetts. He was born in Germany and immigrated to the US when he was 21 years old. He obtained his PhD in 1987 from Indiana University in Bloomington and spent several years teaching at Rice University in Houston, Texas, before moving to Northeastern in 2001.

Robert Bruce Findler is a professor of electrical engineering and computer science at Northwestern University in Evanston, Illinois. He received his PhD in 2002 from Rice University, where he worked under the supervision of Matthias Felleisen.

Matthew Flatt is a professor in the School of Computing at the University of Utah in Salt Lake City. He received his PhD in 1999 from Rice University, where he too worked under the supervision of Matthias Felleisen.

Shriram Krishnamurti is a professor of computer science at Brown University in Providence, Rhode Island. He was born in Bengaluru (formerly Bangalore), the capital of the Indian state of Karnataka. He received his PhD in 2000 from Rice University, where he also worked under the supervision of Matthias Felleisen.

In the 1990s, Felleisen developed PLT (“programming language theory”), a branch of computer science that investigates the analysis, classification, design, and implementation of programming languages according to their computational features.

Felleisen is also the author of TeachScheme! (the predecessor of ProgramByDesign), a program which teaches program-design principles to beginners. Felleisen and his three former graduate students published this book in 2001 in order to make his insights available to a wider audience. A second edition of How to Design Programs was released in 2018.

Born Digital: Understanding the First Generation of Digital Natives

By: John Palfrey and Urs Erwin Gasser 2008

Book Cover for Born Digital: Understanding the First Generation of Digital Natives

Palfrey (b. 1972) received his bachelor’s degree in 1994 from Harvard College. He has earned two doctorates: a DPhil in history from the University of Cambridge (1997) and a JD from Harvard Law School (2001). Palfrey taught at Harvard Law School for many years. Today, he is president of the MacArthur Foundation.

Gasser (b. 1972) is a Swiss-born professor at Harvard Law School. He also holds visiting professorships at Keio University in Japan and the University of St. Gallen in Switzerland.

Their book is an exploration of the ways in which the thinking of “digital natives” differs from that of “digital immigrants.” A “digital native” is someone who was born after the personal computing revolution (roughly after 1980). Such persons have grown up in a world equipped with computers and have never known anything else. A “digital immigrant” is someone born substantially before 1980, whose early childhood did not include computers and who has had to learn to use them as a teenager or adult.

A revised and expanded edition of the book was published in 2016, with the subtitle “How Children Grow Up in a Digital Age.”

Concrete Mathematics: A Foundation for Computer Science

By: Ronald Graham , Donald Knuth , and Oren Ptashnik, 1989

Book Cover for Concrete Mathematics: A Foundation for Computer Science

Graham (1935–2020) received his PhD in mathematics in 1962 from the University of California, Berkeley. He spent much of his career at Bell Labs and AT&T Labs. Later, he taught at Rutgers University in New Brunswick, New Jersey, and the University of California, San Diego.

For Knuth’s bio, see #1 above.

Ptashnik (b. 1954) is a researcher at the Center for Communications Research in La Jolla, California. During the 1980s, he worked at Bell Labs. He received his PhD in computer science in 1990 from Stanford University, where he worked under the supervision of Donald Knuth.

Concrete Mathematics is a popular introductory textbook in computer programming written in a witty, accessible style. The book is based on a set of lectures which Knuth began delivering in 1970 at Stanford University.

It also draws on the first hundred pages or so of the “Mathematical Preliminaries” section from the first volume of Knuth’s The Art of Computer Programming . As a result, readers can use it as an introduction to that series of books.

The term “concrete” in the book’s title may be understood in two ways: (1) the math involved in the book is “concrete” in the sense that it is “applied,” as opposed to “abstract”; and (2) the title may also be construed as a contraction of the phrase “CONtinuous and disCRETE.”

A second edition of Concrete Mathematics was published in 1994.

Introduction to Algorithms

By: Thomas H. Cormen , Charles E. Leiserson , Ron Rivest , and Clifford Stein 1990

Book Cover for Introduction to Algorithms

Cormen (b. 1956) is a professor of computer science at Dartmouth College. He obtained his PhD in computer science from the Massachusetts Institute of Technology (MIT) in 1993.

Leiserson (b. 1953) is a professor of computer science at MIT. He received his PhD in computer science from Carnegie Mellon University in Pittsburgh, Pennsylvania in 1981.

Rivest (b. 1947) is an Institute Professor at MIT. He is also a member of MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL). He received his PhD in computer science in 1974 from Stanford University. In 2002, Rivest received the Turing Award for his work in computer cryptography.

Stein (b. 1965) is a professor of industrial engineering and operations research, with a cross-appointment in computer science, at Columbia University in New York City. He earned his PhD in computer science from MIT in 1992.

Introduction to Algorithms is just what its title says: an introductory textbook to algorithms used in computer science. The book covers many of the fundamental topics students will encounter in this field, including (but not limited to) the following:

  • Sorting and Order Statistics
  • Elementary and Advanced Data Structures
  • Design and Analysis Techniques
  • Graph Algorithms
  • Matrix Operations
  • Linear Programming
  • Polynomials and the Fast Fourier Transform (FFT)
  • NP-Completeness

The first three persons listed above co-authored the first edition of this book, which was published in 1990. A second edition appeared in 2001, at which time Stein was added as the fourth co-author. A third edition of the book was released in 2009 and a fourth edition has been announced for 2022.

A New Kind of Science

By: Stephen Wolfram , 2002

Book Cover for A New Kind of Science

Wolfram (b. 1959) was born in London into a family of German Jewish refugees. He was a child prodigy, who published his first peer-reviewed papers in quantum field theory and particle physics at the age of 15. He received his PhD in particle physics in 1979 from the California Institute of Technology (CalTech), where his dissertation was supervised by the storied Richard Feynman.

After graduating, Wolfram joined the faculty of Caltech, before moving to the Institute for Advance Study in Princeton, New Jersey in 1983. In 1984, he was involved in the founding of the Santa Fe Institute for the study of complex systems in Santa Fe, New Mexico. Two years later, he founded the Center for Complex Systems Research (CCSR) at the University of Illinois at Urbana–Champaign.

During this period of his career, Wolfram was primarily involved in two projects: developing the theory of cellular automata and developing a new computer algebra system, called Mathematica.

In 1988, Wolfram left academia to found his own company, Wolfram Research, in order to turn his ideas into commercial reality. Wolfram Language is one of the many new products developed by Wolfram’s company.

In his first book, A New Kind of Science , published in 2002, Wolfram presents an empirical study of simple computational systems such as cellular automata. He argues that such studies are important because the universe is inherently discrete in nature, not continuous. Hence, computer simulations based on discrete mathematics are inherently better-suited to the development of predictive models of empirical reality—especially, complex systems—than the continuous mathematics of traditional physics based on partial differential equations.

Wolfram predicts that his computational approach to physics will have a revolutionary influence on physics, chemistry, biology, and, indeed, all areas of science (hence the book’s title).

Inside Apple: How America’s Most Admired—and Secretive—Company Really Works

By: Adam Lashinsky , 2012

Book Cover for Inside Apple: How America's Most Admired---and Secretive---Company Really Works

Lashinsky (born c. 1967) received his bachelor’s degree in history and political science in 1989 from the University of Illinois at Urbana-Champaign. After serving as a reporter, editor, and columnist for several business, economics, and technology journals, Lashinsky was appointed Senior Editor-at-Large for FORTUNE magazine. He writes primarily about Wall Street and Silicon Valley.

The book under consideration here is both a history and an analysis of the leadership patterns, strategies, and tactics adopted by Apple Inc. during its rise to global prominence. Inside Apple places stress on the transition that occurred in 1996 when—with the company on the brink of bankruptcy—Apple co-founder Steve Jobs (1955–2011) returned to his former leadership role.

With only 90 days of cash on hand, Jobs began to turn his company around with a series of brilliantly designed and engineered products that proved to be wildly popular with the public, from the iPod, to the iPhone, to the iPad.

By the time of Jobs’s death in 2011, Apple Inc. had become the largest consumer electronics company in the world as measured by total global revenue. Today, with $274.5 billion in revenue earned in 2020, Apple remains the world’s largest technology company.

Structure and Interpretation of Computer Programs

By: Hal Abelson and Gerald Jay Sussman , with Julie Sussman, 1985

Book Cover for Structure and Interpretation of Computer Programs

Abelson (b. 1947) is Class of 1992 Professor of Computer Science and Engineering in the Department of Electrical Engineering and Computer Science at the Massachusetts Institute of Technology (MIT). He is a founder and director of both Creative Commons and the Free Software Foundation. He also directed the first implementation of the Logo programming language for the Apple II.

Gerald Sussman (b. 1947) is Panasonic Professor of Electrical Engineering at MIT. He has worked primarily in the areas of artificial intelligence (AI), programming languages, computer architecture, and Very Large-Scale Integration (VLSI) design.

Abelson and Gerald Sussman are both principal investigators with MIT’s Computer Science and Artificial Intelligence Lab (CSAIL). Julie Sussman is a computer programmer.

The book under consideration here is an introductory-level textbook in computer programming, which began life as the prescribed text in the principal authors’ classes at MIT. Presenting its material in Scheme, a dialect of Lisp, the book takes an innovative pedagogical approach. Namely, it makes use of a cast of six fictitious characters with facetious names, each of whom represents a topic or aspect of the field. For example, the character “Lem E. Tweakit” is an irate user, while “Alyssa P. Hacker” is a Lisp hacker.

A second edition of the book was published in 1996.

The Master Algorithm: How the Quest for the Ultimate Learning Machine Will Remake Our World

By: Pedro M. Domingos , 2015

Book Cover for The Master Algorithm: How the Quest for the Ultimate Learning Machine Will Remake Our World

Domingos (born c. 1966) is Professor Emeritus of computer science and engineering at the University of Washington in Seattle. He obtained his bachelor’s and master’s degrees in computer science and electrical engineering in 1988 and 1992, respectively, from the Instituto Superior Técnico in Lisbon, Portugal. He received his PhD in information and computer sciences in 1997 from the University of California, Irvine.

Domingos’s main field of research is machine learning. He is especially known for his work on uncertain inference, in connection with which he invented the Markov logic network.

This book advances a thesis about the nature of general or universal learning—making no distinction between human and machine learning. The thesis is that universal learning consists of five basic components:

  • inductive reasoning
  • connectionism
  • evolutionary computation
  • Bayes’s theorem
  • analogical modeling

The hypothetical “master algorithm” that is the subject of this book will be a combination of algorithms embodying each of these five features. The author predicts that the master algorithm will become a reality in the near future and that it will grow rapidly in such a way as to approach asymptotically a perfect understanding of the universe and all its contents, including human beings themselves.

Once that occurs, any computer running such a well-trained master algorithm will be able to solve any problem more efficiently than any human being could.

The book was reprinted in 2018.

In the Plex: How Google Thinks, Works, and Shapes Our Lives

By: Steven Levy , 2021

Book Cover for In the Plex: How Google Thinks, Works, and Shapes Our Lives

Levy (b. 1951) is a journalist and book author who specializes in the subjects of computers, technology, cryptography, the Internet, cybersecurity, and privacy. He received his bachelor’s degree from Temple University in Philadelphia and his master’s degree in literature from Pennsylvania State University at State College.

Levy was formerly chief technology writer and a senior editor for Newsweek magazine and is currently Editor-at-Large for Wired magazine. He has published his work in many prominent venues, including Rolling Stone , The New Yorker , The New York Times Magazine , and Harper’s .

In addition to his journalism, Levy has published eight books including the one under consideration here. This book is a history of the Google company. Its somewhat cryptic title is a reference to the word “googolplex,” from which Google’s young founders derived their company’s name.

The book begins with the origins of the company in 1996 as a dissertation project at Stanford University undertaken by PhD students Larry Page (b. 1973) and Sergey Brin (b. 1973). The result of their brilliant efforts was an Internet search engine that significantly outperformed all others.

The book then traces the rise of Google to the position of world dominance that the company enjoys today, with some 24,000 employees and an annual operating income in excess of $40 billion. The book received very positive reviews. Reviewers emphasized Levy’s ability to make difficult technical material intelligible to a general audience.

The Jargon File

By: Eric S. Raymond , 1991

Book Cover for The Jargon File

Raymond (b. 1957) is an American software developer, open-source software advocate, blogger, and author. Raymond is probably best known as the author of the bestselling 1999 book, The Cathedral and the Bazaar on the open-source movement (see #21 below).

In 1996, the author took over the curation of an online dictionary of slang terms that had been in existence for some time, which he published that year in book form as the third edition of the so-called Jargon File . Before bringing Raymond’s efforts on The Jargon File up to date, let us review its history prior to 1996.

The “Jargon File” was originated by Raphael Finkel (b. 1951) at Stanford University in 1975. In the early years, it was also referred to simply as “the File,” and after the publication of later editions, this first edition came to be referred to as “Jargon-1.”

Finkel soon passed the torch on to Don Woods (b. 1954); a little later it was picked up by Richard Stallman (b. 1953). In 1983, the latest version of the File up to that time was published under the editorship of Guy Steele (b. 1954). This book, which was titled The Hacker’s Dictionary and contained a commentary aimed at a mass market, constituted the first integral public presentation of the File.

The 1983 version of the File was based on contributions by Finkel, Woods, Stallman, Mark Crispin (b. 1949), and Geoff Goodfellow (b. 1956), but it became generally known as “Steele-83” for its general editor.

Raymond took over curation of the file and published it as it was as of 1991 under the title, The New Hacker’s Dictionary (known as “Raymond-1991”). However, the explosive growth of the Internet during the early 1990s motivated Raymond to quickly publish yet another new edition, entitled The New Hacker’s Dictionary , Third Edition, in 1996.

In 2000, Raymond released a “version 4.0” of The Jargon File . The latest incarnation of The Jargon File is a Kindle-only edition released in 2019.

Computers and Intractability: A Guide to the Theory of NP-Completeness

By: Michael Garey and David S. Johnson, 1979

Book Cover for Computers and Intractability: A Guide to the Theory of NP-Completeness

Garey (b. 1945) earned his PhD in computer science in 1970 from the University of Wisconsin at Madison. He was employed by AT&T Bell Laboratories from 1970 until 1999, where he worked in the Mathematical Sciences Research Center.

Garey specializes in computational complexity, discrete algorithms, graph theory, scheduling theory, and approximation algorithms. From 1978 until 1981 he served as Editor-in-Chief of the Journal of the Association for Computing Machinery .

Johnson (1945–2016) earned his Ph.D. in mathematics from MIT in 1973. He worked at AT&T Bell Laboratories from 1988 to 2013, where he rose to become head of the Algorithms and Optimization Department. He was also a visiting professor at Columbia University from 2014 to 2016.

A widely used and highly influential textbook, Computers and Intractability was the first book devoted exclusively to problems associated with NP-completeness. Though it is now somewhat outdated (for example, it lacks a discussion of the PCP Theorem), it remains a milestone and a classic of the field.

The reviews of this book could scarcely have been more glowing. For example, one critic wrote:

I consider Garey and Johnson the single most important book on my office bookshelf. Every computer scientist should have this book on their shelves as well. ... Garey and Johnson has the best introduction to computational complexity I have ever seen.

AI Superpowers: China, Silicon Valley, and the New World Order

By: Kai-Fu Lee , 2018

Book Cover for AI Superpowers: China, Silicon Valley, and the New World Order

Lee (b. 1961) was born in Taipei, the capital of Taiwan. In 1973, he immigrated to the US. He earned his bachelor’s degree in computer science from Columbia University in 1983 and his PhD in computer science from Carnegie Mellon University in 1988.

His doctoral dissertation consisted of the development of Sphinx, the first large-vocabulary, speaker-independent, continuous speech recognition system. He later published two technical monographs on speech recognition. Lee has spent his career in the computing industry, moving from Apple, to Silicon Graphics, to Microsoft, to Google.

In 2009 Lee resigned from Google and undertook a career as a venture capitalist. His main project has been Sinovation Ventures, a leading Chinese technology venture capital firm with offices in Beijing, Shanghai, Guangzhou, Shenzhen, and Nanjing. The stated goal of Sinovation Ventures is to create five Chinese start-ups per year in the areas of Internet businesses and cloud computing.

In this book, Lee brings his dual expertise in technology and business in China to bear on an analysis of present technological, economic, and political trends and where they are likely to lead. Lee makes many startling and controversial observations in this book. For example, he observes that “If data is the new oil, then China is the new Saudi Arabia.” He also praises China for subsidizing and according high status to the AI industry.

Another controversial section of the book explores the future impact that AI is likely to have on the nature of work available to the mass of the population in American and elsewhere.

The Society of Mind

By: Marvin Minsky , 1986

Book Cover for The Society of Mind

Minsky (1927–2016) was born and raised in New York City. After a tour of duty in the US Navy during World War II, he received his bachelor’s degree in mathematics in 1950 from Harvard University and his PhD in mathematics in 1954 from Princeton University.

Minsky joined the faculty of MIT in 1958 and remained there throughout his career. Together with John McCarthy (1927–2011), he co-founded what is known today as the MIT Computer Science and Artificial Intelligence Laboratory.

Minsky is a seminal figure in the field of artificial intelligence (AI). His 1969 book Perceptrons , co-authored with Seymour Papert (1928–2016), is considered a foundational document in the history of machine learning based on neural networks. The same year that the pathbreaking book Perceptrons was published, Minsky was awarded the prestigious Turing Award.

The Society of Mind covers a very wide range of topics, from language, memory, and learning to consciousness, the self, and free will. For this reason, it is as much a work of philosophy as a computer science text.

In this book, the author presents his own model of human intelligence step by step. Minsky’s basic idea is that natural human intelligence is built up from the interactions among simple, mindless parts, which he calls “agents” (an unfortunate word choice, since in ordinary speech “agents” are themselves intelligent).

Minsky then describes the result of the interactions among these myriad sub-intelligent “agents” as a “society of mind”—his term for intelligence, whether natural or artificial.

Superintelligence: Paths, Dangers, Strategies

By: Nick Bostrom , 2014

Book Cover for Superintelligence: Paths, Dangers, Strategies

Bostrom (b. 1974) was born as Niklas Boström in Helsingborg, Sweden. He received his bachelor’s degree in philosophy, mathematics, and artificial intelligence from the University of Gothenburg in 1994. Bostrom then earned two master’s degrees, one in philosophy and physics from Stockholm University and the other in computational neuroscience from King’s College London, both in 1996. Finally, Bostrom received his PhD in philosophy from the London School of Economics in 2000.

In 2005, Bostrom founded the Future of Humanity Institute (FHI) at the University of Oxford. FHI explores the far future of human civilization. Bostrom is also associated with the University of Cambridge’s Centre for the Study of Existential Risk.

After graduating, he briefly taught at Yale University in the US and then occupied a Postdoctoral Fellowship back at the University of Oxford. After leaving academia, Bostrom made his living as a freelance writer. He has published four books and some 200 peer-reviewed academic papers.

Bostrom writes on many topics, but one of his main fields of interest is artificial intelligence and the threat it poses to humanity’s future. The book under consideration here is his most in-depth discussion of this theme. The “superintelligence” referred to in the title is a kind of general intelligence far exceeding that of human beings, with which the author claims computers and robots will be equipped at some point in the future.

The book offers an accessible account of the technical issues underlying artificial intelligence and its philosophical interpretations. But the author does more than merely explain these matters. He also considers what changes in political organization might be required for humanity to effectively protect itself from the threat he sees as being posed by the advent of superintelligence.

The book was reprinted in 2016.

How to Survive a Robot Uprising: Tips on Defending Yourself Against the Coming Rebellion

By: Daniel H. Wilson , 2005

Book Cover for How to Survive a Robot Uprising: Tips on Defending Yourself Against the Coming Rebellion

Wilson (b. 1978) was born in Tulsa, Oklahoma. He is a member of the Cherokee Nation. Wilson earned his bachelor’s degree in computer science in 2000 from the University of Tulsa. As an undergraduate, he spent a semester abroad studying philosophy at the University of Melbourne.

Wilson completed a double master’s degree program, one in machine learning and one in robotics, as well as a PhD program in robotics, all in 2005 from Carnegie Mellon University’s Robotics Institute in Pittsburgh, Pennsylvania.

Despite his sterling academic credentials, Wilson did not pursue an academic career, but rather has made his living as a freelance writer. Wilson has published six novels, one short story collection, a graphic novel, and four comic books. He has also authored or co-edited seven works of non-fiction, including the book under consideration here.

How to Survive a Robot Uprising was optioned by a Hollywood producer in 2005, Wilson’s last year in graduate school. Although the film has not yet been made, this experience led to Wilson’s involvement with movies.

He has gone on to write two screenplays himself based on his own novels. Two more of his novels have also been optioned, as well as one short story. The latter is his only film project to be produced so far. The Nostalgist was directed by Giacomo Cimino and premiered at the Palm Spring International Shortfest in 2014.

This book is a tongue-in-cheek satire in the form of a how-to manual. With abundant scientific detail, it explains how to survive in a world in which superintelligent robots (see #16 above) have rebelled against their human masters. The effectiveness of its dark, deadpan humor derives from its subtle exaggeration of scientific facts beyond the bounds of reasonableness.

The Emotion Machine: Commonsense Thinking, Artificial Intelligence, and the Future of the Human Mind

By: Marvin Minsky , 2006

Book Cover for The Emotion Machine: Commonsense Thinking, Artificial Intelligence, and the Future of the Human Mind

Late in his life, Minsky (see #15 above) wrote a second book to update and clarify the ideas he expressed in his earlier book, The Society of Mind , published in 1986.

In the new book, Minsky basically tries to integrate the emotional or affective dimension of natural human intelligence (or “common sense”) into his earlier “society of mind” theory of intelligence as the resultant effect arising from the interactions among myriad unintelligent “agents.”

In a nutshell, Minsky downplays the distinctiveness of affectivity, arguing that the various emotions are simply “ways to think” about the different classes or types of problem situations that brains encounter in their interaction with the world.

He further claims that the brain employs “rule-based mechanisms” embodying “selection rules” (basically, algorithms) in order to “turn on” the appropriate emotions when a brain is faced with a specific kind of problem situation.

The author also uses his new book to review the achievements of AI, explaining why modeling natural intelligence, whether human or artificial, is so difficult.

Finally, Minsky considers such fundamentally philosophical questions as whether artificial brains embodied in computers and robots will really be able to think and, if so, what their experiences—their pleasures, sufferings, and so on—might be like.

Modern Operating Systems

By: Andrew S. Tanenbaum and Herbert Bos , 1992

Book Cover for Modern Operating Systems

Tanenbaum (b. 1944) was born in New York City and grew up in White Plains, New York. He received his bachelor’s degree in physics in 1965 from MIT and his PhD degree in astrophysics in 1971 from the University of California, Berkeley.

Tanenbaum is currently Professor Emeritus of Computer Science at the Vrije Universiteit Amsterdam (Free University of Amsterdam) in the Netherlands. He was a co-founder and served as the first Dean of a Dutch academic consortium known as the Advanced School for Computing and Imaging, with faculty from Vrije Universiteit Amsterdam, Delft University of Technology, and Leiden University.

Tanenbaum is perhaps best known as the inventor of MINIX, a free, Unix-like operating system for teaching. He is also well known for a famous 1992 debate with Linus Torvalds (b. 1969) regarding Usenet. In 2004, he founded the web site electoral-vote.com. Finally, Tanenbaum has advised an unusually large contingent of graduate students during his career at the Vrije Universiteit Amsterdam, many of whom have gone on to distinguished careers in computer science.

Herbert Bos is currently a full professor of computer science at the Vrije Universiteit Amsterdam. He received the degree of Ingenieur in computer science in 1994 from the University of Twente in Enschede, the Netherlands, and his PhD in computer science in 1999 from the University of Cambridge’s Computer Laboratory.

Bos joined Tanenbaum as co-author of Modern Operating Systems for the fourth edition published in 2014. The book under consideration here is a direct descendent of the book, Operating Systems: Design and Implementation , a textbook that Tanenbaum first published in 1987. The new book is basically the same as the old one, with the material relating to implementation omitted.

The book is written in autonomous C language and covers the fundamentals of Minix and other operating systems. The book describes many scheduling algorithms. Now in its fourth edition, Modern Operating Systems has proven to be a very popular textbook worldwide.

Things a Computer Scientist Rarely Talks About

By: Donald Knuth , 2001

Book Cover for Things a Computer Scientist Rarely Talks About

Often referred to as the “Father of Computer Science,” Donald Knuth (see #1 and #5 above) is uniquely qualified to comment on the larger philosophical significance of computer science.

With this book, Knuth has given us the benefit of his unparalleled experience and wisdom concerning the connection between computer technology and religion.

Among the large questions Knuth addresses in this remarkable book are:

  • the relationship between computation and infinity
  • the bearing of probability theory on free will
  • the place of mathematics in one’s personal understanding of the sacred

The book began life as a series of lectures delivered at MIT in 1999 on the topic of computers and religion. The following is a list of the lecture titles, which also makes up the published book’s table of contents:

  • Lecture 1: Introduction
  • Lecture 2: Randomization and Religion
  • Lecture 3: Language Translation
  • Lecture 4: Aesthetics
  • Lecture 5: Glimpses of God
  • Lecture 6: God and Computer Science

For the book, Knuth added an additional concluding section entitled “Panel: Creativity, Spirituality, and Computer Science.”

One reviewer, writing in the immediate aftermath of the lectures in 1999, summed up Knuth’s work with the following headline:

“Computer God Speaks About God, Computers”

The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary

By: Eric S. Raymond , 1999

Book Cover for The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary

In this book, Raymond (see #12 above) recounts his experience as a developer of the Linux kernel and a manager of the open source project known as fetchmail. He uses his own personal history as a backdrop for reflections on the eternal struggle between top-down and bottom-up approaches to system design.

The title of the book is based on the symbols of the medieval cathedral as an example of a top-down (centralized, goal-directed) system and of the bazaar (or market) as an example of a bottom-up (distributed, self-organizing) system.

The book grew out of a paper the author first presented at the Linux Kongress in 1997 in Würzburg, Germany. In 1999, the book was both published in English and self-published in German as Die Kathedrale und der Basar.

The book also advances many ideas concerning the best way to practice operating system design, including the following assertions:

  • Good software flows from a programmer’s personal interests and commitments
  • Rewriting and beta testing are essential to the process
  • Intelligently designed data structures are more important than coding
  • The next-best thing to having your own good ideas is recognizing your users’ good ideas
  • Innovation often lies in reconceptualizing the problem
  • Simplify as much as possible
  • A good tool should do what it is intended to do; a great took does unanticipated things

The Age of Spiritual Machines: When Computers Exceed Human Intelligence

By: Ray Kurzweil , 1999

Book Cover for The Age of Spiritual Machines: When Computers Exceed Human Intelligence

Kurzweil (b. 1948) was born and raised in New York City. He obtained his bachelor’s degree in computer science and literature in 1970 from MIT, where he was a student of Marvin Minsky’s (see #15 and #18 above).

While still an undergraduate at MIT, Kurzweil founded a company which used a program he had written to match high school students with potential colleges. He soon sold this company for three-quarters of a million dollars in today’s money.

In 1974, Kurzweil used his profits to start another company, Kurzweil Computer Products, Inc. One of the new company’s first products was first omni-font optical character recognition (OCR) system—a computer program capable of recognizing text written in any normal font. This product was immensely successful. Among the company’s many OCR-related products is the Kurzweil Reading Machine for the blind.

In 1984, Kurzweil founded Kurzweil Music Systems, whose first product was Kurzweil K250, a vastly improved electronic music synthesizer. Tests showed that trained musicians were unable to distinguish between sounds produced by a Kurzweil K250 set on piano mode and those produced by a real grand piano.

During the late 1980s and 1990s, Kurzweil founded several new companies, including one in the education sector, which combined his previously developed OCR capabilities with new pattern-recognition technologies to help people with disabilities such as blindness, dyslexia and attention-deficit hyperactivity disorder (ADHD) with their school work.

Beginning around 1990, and at increasing pace after 2000, Kurzweil turned his attention to writing projects, mainly on the topics of computer-human interaction and futurism, more generally. Altogether, he has written seven nonfiction books, including the one under consideration here, as well as one novel.

In a nutshell, Kurzweil argues in this book that continuous improvements in the intelligence of computers must inevitably lead to machines with human-like and, eventually, more-than-human capabilities, including the emergence of subjective consciousness (hence the book’s title). Kurzweil dubs this event “the singularity,” meaning the moment when computers pass a point of no return, when it will no longer be possible for human beings to control them.

The Age of Spiritual Machines is a mixture of solid computer science, reasonable speculation about the future development of artificial intelligence, controversial philosophy, and dubious claims about the future. The book attracted a large amount of attention from various intellectual communities, from academic computer scientists and philosophers to the fantasy and science fiction community and the general reading public.

An anthology of essays on this book—entitled Are We Spiritual Machines?: Ray Kurzweil vs. the Critics of Strong A.I. and edited by Jay W. Richards —was published in 2001. It contained contributions by Kurzweil and the distinguished philosopher, John Searle (b. 1932), among others.

In addition to Searle, many other philosophers have weighed in on The Age of Spiritual Machines , as well as its sequel, The Singularity is Near (2005). In general, one may say that the computer science community’s view of Kurzweil’s work has been far more favorable than that of philosophers.

The Mythical Man-Month: Essays on Software Engineering

By: Frederick P. Brooks, Jr., 1975

Book Cover for The Mythical Man-Month: Essays on Software Engineering

Brooks (b. 1931) was born in Durham, North Carolina. He obtained his bachelor’s degree in physics in 1953 from Duke University, located in his hometown. He then received his PhD in applied mathematics (computer science) in 1956 from Harvard University in Cambridge, Massachusetts.

In 1956, Brooks went to work for IBM, where he contributed to the development of several new computer systems before being appointed to lead the development of the IBM System/360 family of computers and the OS/360 software package. During this time period, he invented the phrase “computer architecture” to describe the design of operating systems.

In 1964, Brooks accepted a position with the University of North Carolina at Chapel Hill, where he spent the rest of his career. He won the coveted Turing Award in 1999.

Brooks’s book is about the various aspects of project development scheduling. It advances the thesis that the concept of a “man-month”—the theoretical amount of work done that can be performed by one person in one month—is not a useful metric with which to measure progress in the field of computer software engineering.

This book has been widely read and discussed. Its main idea was summed up by Brooks with the catchy phrase “adding manpower to a late software project makes it later.” In this form, it became famous as “Brooks’s Law.”

Brooks once remarked that more people cited his “law” than obeyed it, saying he should have called his book, The Bible of Software Engineering , because “everybody quotes it, some people read it, and a few people go by it.”

A second edition of the book was published in 1982, while a third, twentieth-anniversary edition was published in 1995. The twentieth-anniversary edition contained an appendix featuring a famous essay Brooks had written in 1986 entitled “No Silver Bullet—Essence and Accident in Software Engineering.”

Firewalls and Internet Security: Repelling the Wily Hacker

By: William Cheswick , Steven M. Bellovin , and Aviel D. Rubin 1994

Book Cover for Firewalls and Internet Security: Repelling the Wily Hacker

Cheswick (born c. 1953) received his bachelor’s degree in fundamental science in 1975 from Lehigh University, in Bethlehem, Pennsylvania. He worked for several companies, including Computer Sciences Corporation, before joining AT&T Bell Labs in 1987, where he and Bellovin developed the first computer network firewall.

Bellovin (born c. 1950) earned his bachelor’s degree in 1972 from Columbia University in New York City and his PhD in 1982 from the University of North Carolina at Chapel Hill. He worked for AT&T Bell Labs from 1982 until 2004. Since 2005, he has been a professor of computer science at Columbia University.

Rubin (b. 1967) received his bachelor’s, master’s, and PhD degrees in computer science and engineering in 1989, 1991, and 1994, respectively, all from the University of Michigan at Ann Arbor. He is currently Professor of Computer Science at Johns Hopkins University in Baltimore, Maryland.

This book recounts the development of the first computer network firewall by Cheswick and Bellovin at AT&T Labs in the 1980s. Their work helped define the concept of a firewall and heavily influenced the later formation of the perimeter security model, which during the mid-1990s became the dominant network security architecture.

Cheswick and Bellovin authored the first edition alone. They were joined by Rubin as co-author for the second edition, published in 2003.

The Computer and the Brain

By: John von Neumann , 1958

Book Cover for The Computer and the Brain

Von Neumann (1903–1957) was born and raised in Budapest, Hungary, into a middle-class, non-observant Jewish family. He was a child prodigy who at the age of six could divide eight-digit numbers in his head and converse in ancient Greek.

At the age of 19, von Neumann published a mathematics paper which gave the modern definition of ordinal numbers, superseding the definition advanced by Georg Cantor (1845–1918) that had been current up until that time.

Von Neumann pursued two courses of graduate studies simultaneously, earning a diploma in chemical engineering from ETH Zurich and a PhD in mathematics from Pázmány Péter University in Budapest, both in 1926. He then studied with David Hilbert (1862–1943) at the University of Göttingen, where he completed his Habilitation in 1927.

After finishing his formal studies, von Neumann concentrated on mathematics. By the end of 1929, he had published over 30 ground-breaking papers—achieving an incredible pace of more than one a month!

After briefly working as a Privatdozent at the Universities of Berlin and Hamburg, in 1930 von Neumann received an offer to join the Institute for Advanced Study (IAS) in Princeton, New Jersey. Three year later, the IAS offered von Neumann a lifetime professorship.

During World War II, von Neumann was recruited for the Manhattan Project and made important contributions to the development of the first atomic bomb.

Von Neumann made major contributions to an amazing number of fields of mathematics and science, of which the following are only some of the best known:

  • Proof theory
  • Ergodic theory
  • Measure theory
  • Functional analysis
  • Topological groups
  • Operator algebras
  • Lattice theory
  • Foundations of quantum mechanics
  • Von Neumann Entropy
  • Quantum mutual information
  • Density matrices
  • Quantum logic
  • Mathematical Statistics
  • Fluid dynamics
  • Game theory
  • Linear programming
  • Merge/sort algorithm
  • Computer architecture
  • Cellular automata
  • Artificial intelligence

Von Neumann began to take an interest in the theory of computation even before World War II. He worked briefly with the father of computer science, Alan Turing (1912–1954), when the latter visited the IAS in the late 1930s.

After the war, von Neumann became deeply involved in the design and implementation of the first electronic digital computers. Specifically, he worked closely on the EDVAC (Electronic Discrete Variable Automatic Computer), which was the world’s first computer to be based on binary arithmetic (the earlier ENIAC had still been based on the decimal system). EDVAC was built at the Ballistic Research Laboratory at Aberdeen Proving Ground, a US Army installation in Maryland, between 1944 and 1949.

Von Neumann’s second major computer project was the IAS Machine, built at the IAS between 1945 and 1951 under his supervision and utilizing an architecture designed by him, now known as the “von Neumann architecture.”

Finally, von Neumann, who was universally known to his American friends as “Johnny,” was playfully immortalized by the RAND Corporation in their machine, the “Johnniac,” which copied the IAS Machine’s architecture and ran continuously from 1953 until 1966. The tongue-in-cheek nickname “Johnniac” supposedly stood for “John von Neumann Numerical Integrator and Automatic Computer.”

The book under consideration here was originally intended for Yale’s prestigious Silliman Lecture series, but von Neumann did not live to deliver the lectures or this posthumously published book, which is based on his unfinished lecture notes.

This book was an early and important contribution to the computational theory of the mind. It argues that the brain must be a kind of digital computer, though one with many features that surpass the technology of Von Neumann’s day. The author speculates about the directions in which computers would have to develop to achieve the full capabilities of the human brain.

A second edition of the book was published in 2000, while a third edition was published in 2012.

For a look at some of the most influential books in data science, a field that is closely related to computer science, check out Data Science Tools and Trends and Books for Data Science

Now that you know what books to check out, consider a deep dive with a look at The Best Colleges & Universities for a Bachelor’s in Computer Science .

Visit our Study Guide Headquarters for tips, tools, and much more.

See our Resources Guide for much more on studying, starting your job search, and more.

  • Skip to Content
  • Skip to Main Navigation
  • Skip to Search

phd books for computer science

Indiana University Bloomington Indiana University Bloomington IU Bloomington

Open Search

  • Graduate Application
  • Funding Opportunities
  • Specializations
  • Minor in Computer Science
  • Minor in Information Technology
  • Accelerated M.S. in Computer Science
  • Accelerated M.S. in Secure Computing
  • Graduate Certificate in Cybersecurity
  • M.S. in Computer Science
  • M.S. in Bioinformatics
  • Cybersecurity Master's Program (M.S. in Secure Computing)
  • Dual M.S. in Secure Computing and M.A. in Russian and East European Studies

Ph.D. in Computer Science

  • Faculty Directory
  • People Directory
  • Colloquiums
  • Earn a Ph.D. Minor in Computer Science
  • Request Travel Funds
  • Degree Completion Application Form
  • A11 Hold Extension Request Form
  • Leave of Absence Form
  • Graduate Internship Request Form
  • Independent Study Request Form
  • Transfer of Graduate Credit Request Form

School of Informatics, Computing, and Engineering

Luddy School of Informatics, Computing, and Engineering

Department of Computer Science

  • Student Portal

A student stands and looks at a set of computer monitors in a computer lab.

Explore new frontiers in computing

Our Ph.D. in Computer Science gives you the opportunity to conduct theoretical and practical research in a broad range of subfields of computer science or in the intersection of computer science and disciplines such as biology, cognitive science, or statistics.

In one of the nation’s top computer science departments, you will complete rigorous coursework that gives you a strong foundation, learn about key topics like artificial intelligence and systems, explore additional areas of interest through independent study and a minor, and get experience via internships. After this extensive preparation, you will complete a qualifying exam and write a dissertation on a topic of your choosing.

Preparation for industry, research labs, or academia

Many of our Ph.D. graduates are hired by employers like Facebook/Meta, Microsoft, Apple, Google, Intel, MathWorks, Bosch, and Electronic Arts. Others work for research labs like Sandia National Laboratories or go to institutions like Carnegie Mellon, Oberlin College, King Saud University, Yale University, Children's Hospital Los Angeles, and Georgia Tech. Before you join them, come enjoy life at Indiana University and in Bloomington, one of the nation’s best small cities.

Average starting salary (2022)

A sampling of places our alumni land.

facebook logo

How to apply

Learn about the application deadline and what to submit with your application.

See what a Luddy education costs and learn about the cost of living in Bloomington.

Funding opportunities

We strive to provide financial support to all Ph.D. students during their academic careers.

You will do research in a department with a long tradition of innovation, alongside faculty who are shaping the future of computer science in areas like artificial intelligence, machine learning, bioinformatics, databases, programming languages, theory, and security. Plus, you will have access to IU extensive supercomputer resources .

Internships

Most of our Ph.D. students do summer or semester internships with companies like Google, Facebook, and Microsoft. Whether you want to go to a research lab or do a software engineering internship, you will get the experience and connections that will help you in your career.

Other opportunities

Other unique IU opportunities include the joint Ph.D. program with cognitive science and the Ph.D. in Computer Science with a logic minor or logic certificate .

Choose a minor

Broaden your education with a minor. You can choose a closely related field like math or take advantage of Indiana University’s wide-ranging programs and select a minor in an area like music. Other options include an internal minor of computer science credits or an individualized interdisciplinary minor.

Learn about Ph.D. minors offered by the Luddy School of Informatics, Computing, and Engineering . For information about minors outside Luddy, visit the websites of IU Bloomington’s other degree-granting colleges and schools .

We also offer a Ph.D. minor in computer science for doctoral students in other IU departments.

International students

Many of our graduate students, as well as our faculty, in computer science come to Bloomington from outside the United States. Indiana University draws students from around the globe for other programs of study. The university, our department, and the Luddy School of Informatics, Computing, and Engineering offer many types of support for you and our global community.

  • Learn about international student support
  • Learn about careers

Review your degree requirements

Degree requirements for the Ph.D. in Computer Science and the Ph.D. minor in Computer Science are listed in the University Graduate School academic bulletin. To review your specific requirements, choose the bulletin that represents the year you started, or plan to start, your program.

If your start year is not listed here, you can find an earlier bulletin .

2023–24 bulletin

2022-23 bulletin

2021–22 bulletin

Current student resources

Student portal.

Handbooks, forms, and more helpful resources.

See what courses we are offering and when.

For guidance and assistance early in your studies, contact Yan Huang, the graduate program director, at yh33@iu.edu or the Luddy Graduate Studies Office at gradvise@indiana.edu . Later you can contact your faculty advisor or Advisory Committee. We also recommend regularly consulting the timeline in the Ph.D. student handbook.

Take the next step

  • Learn about funding

Department of Computer Science resources and social media channels

  • Luddy Intranet
  • Service Requests

Five Books

  • NONFICTION BOOKS
  • BEST NONFICTION 2023
  • BEST NONFICTION 2024
  • Historical Biographies
  • The Best Memoirs and Autobiographies
  • Philosophical Biographies
  • World War 2
  • World History
  • American History
  • British History
  • Chinese History
  • Russian History
  • Ancient History (up to 500)
  • Medieval History (500-1400)
  • Military History
  • Art History
  • Travel Books
  • Ancient Philosophy
  • Contemporary Philosophy
  • Ethics & Moral Philosophy
  • Great Philosophers
  • Social & Political Philosophy
  • Classical Studies
  • New Science Books
  • Maths & Statistics
  • Popular Science
  • Physics Books
  • Climate Change Books
  • How to Write
  • English Grammar & Usage
  • Books for Learning Languages
  • Linguistics
  • Political Ideologies
  • Foreign Policy & International Relations
  • American Politics
  • British Politics
  • Religious History Books
  • Mental Health
  • Neuroscience
  • Child Psychology
  • Film & Cinema
  • Opera & Classical Music
  • Behavioural Economics
  • Development Economics
  • Economic History
  • Financial Crisis
  • World Economies
  • Investing Books
  • Artificial Intelligence/AI Books
  • Data Science Books
  • Sex & Sexuality
  • Death & Dying
  • Food & Cooking
  • Sports, Games & Hobbies
  • FICTION BOOKS
  • BEST NOVELS 2024
  • BEST FICTION 2023
  • New Literary Fiction
  • World Literature
  • Literary Criticism
  • Literary Figures
  • Classic English Literature
  • American Literature
  • Comics & Graphic Novels
  • Fairy Tales & Mythology
  • Historical Fiction
  • Crime Novels
  • Science Fiction
  • Short Stories
  • South Africa
  • United States
  • Arctic & Antarctica
  • Afghanistan
  • Myanmar (Formerly Burma)
  • Netherlands
  • Kids Recommend Books for Kids
  • High School Teachers Recommendations
  • Prizewinning Kids' Books
  • Popular Series Books for Kids
  • BEST BOOKS FOR KIDS (ALL AGES)
  • Ages Baby-2
  • Books for Teens and Young Adults
  • THE BEST SCIENCE BOOKS FOR KIDS
  • BEST KIDS' BOOKS OF 2023
  • BEST BOOKS FOR TEENS OF 2023
  • Best Audiobooks for Kids
  • Environment
  • Best Books for Teens of 2023
  • Best Kids' Books of 2023
  • Political Novels
  • New History Books
  • New Historical Fiction
  • New Biography
  • New Memoirs
  • New World Literature
  • New Economics Books
  • New Climate Books
  • New Math Books
  • New Philosophy Books
  • New Psychology Books
  • New Physics Books
  • THE BEST AUDIOBOOKS
  • Actors Read Great Books
  • Books Narrated by Their Authors
  • Best Audiobook Thrillers
  • Best History Audiobooks
  • Nobel Literature Prize
  • Booker Prize (fiction)
  • Baillie Gifford Prize (nonfiction)
  • Financial Times (nonfiction)
  • Wolfson Prize (history)
  • Royal Society (science)
  • Pushkin House Prize (Russia)
  • Walter Scott Prize (historical fiction)
  • Arthur C Clarke Prize (sci fi)
  • The Hugos (sci fi & fantasy)
  • Audie Awards (audiobooks)

Make Your Own List

Nonfiction Books » Technology » Computing

The best books on computer science and programming, recommended by ana bell.

Get Programming: Learn to code with Python by Ana Bell

Get Programming: Learn to code with Python by Ana Bell

How do computers work? What is well-crafted code? How do you write an algorithm? Ana Bell , lecturer in the Electrical Engineering and Computer Science Department at the Massachusetts Institute of Technology, chooses the best books to learn computer science and programming.

Interview by Edouard Mathieu

Get Programming: Learn to code with Python by Ana Bell

Code: The Hidden Language of Computer Hardware and Software by Charles Petzold

The best books on Computer Science and Programming - Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

The best books on Computer Science and Programming - Code Complete: A Practical Handbook of Software Construction by Steve McConnell

Code Complete: A Practical Handbook of Software Construction by Steve McConnell

The best books on Computer Science and Programming - Algorithms by Robert Sedgewick & Kevin Wayne

Algorithms by Robert Sedgewick & Kevin Wayne

The best books on Computer Science and Programming - Types and Programming Languages by Benjamin C. Pierce

Types and Programming Languages by Benjamin C. Pierce

The best books on Computer Science and Programming - Code: The Hidden Language of Computer Hardware and Software by Charles Petzold

1 Code: The Hidden Language of Computer Hardware and Software by Charles Petzold

2 clean code: a handbook of agile software craftsmanship by robert c. martin, 3 code complete: a practical handbook of software construction by steve mcconnell, 4 algorithms by robert sedgewick & kevin wayne, 5 types and programming languages by benjamin c. pierce.

B efore we start on the books you’ve chosen, since we’re going to talk about learning computer science and programming, I’m curious to know about your own learning path. Did you become interested in computers early in your life, or did you make that choice as you were going to university?

Sounds like a great dad! Then you chose computer science as an undergraduate and graduate program, and from there you went on to a PhD in computational biology?

That’s right, at Princeton.

Biology is often chosen for computer science-related PhDs, but people don’t always stay in the field. Is that your case or do you still work on genomics?

I no longer work on genomics. I became interested in the biology applications of computer science as I entered graduate school, so I decided to try to focus on that. But unfortunately I didn’t have the necessary training from undergrad, I had only taken the basic biology courses. So, oftentimes, I was relying on other students in my lab to help out with the domain knowledge part of analysing the machine learning results. I decided that I didn’t want to pursue genomics, but I really enjoyed the teaching that I did in graduate school, so my career path changed.

Let’s start talking about learning programming. Do you have any opinion on the “learning to code” debate? A few years ago everyone seemed to think that we should all learn how to code. In recent years or even months, other people have started saying “actually, it’s an interesting skill to have, but not as important to have as basic counting, writing and reading”. Do you think it can be beneficial to everyone to learn how to program, or does it remain an advanced skill that is interesting only to people who want to pursue it?

It’s a skill that everybody should have. Once you can solve a problem in a computational way, it’s easy to automate and get the computer to do the task for you many times really quickly. The programming part is easy to get, there are many resources online that you can find, and you can learn any language by yourself. It’s a skill you could have and use in your everyday life to improve it.

“Everybody should have the skill of thinking computationally”

But the skill that we’re actually trying to learn here is the idea of thinking in a logical, or computational way. It’s about learning the syntax of a language. So you have maths, you have English, and to be able to excel in both of those fields you need a different way of thinking. Computer science, or thinking in a computational way, falls somewhere in the middle: you do need to have a logical way of thinking, but there’s also a little bit of creativity that’s involved. Everybody should have the skill of thinking computationally.

And I guess it’s the goal of programs like Scratch to let younger students focus on the computational and algorithmic aspects, and not on the syntax?

Exactly, for kids the easiest way is to use visual software. You drag and drop something and immediately you see the results and what changes. That’s a great way to teach and an intuitive way to learn.

You’re teaching undergraduate students, aged around 18 to 20. If we widen this to anybody with an interest in learning how to program, regardless of their age and their higher education background, how hard would you say this is? It’s often said that programming is a skill that lends itself very well to self-teaching, that people who have not studied it at university can pick it up later. Would you agree with that or do you think that pursuing a proper university degree will make you a better programmer?

If you only want to learn how to program, you can definitely do that by yourself. Even young children can learn how to program. The difficult part that isn’t as easy to grasp on your own is to think in a computational way. It’s tough to understand that an algorithm is just a recipe, and even tougher to come up with new recipes yourself. You need to always expose yourself to that, through coding practice, lectures, chatting with somebody, or visually drawing out ideas. I think a course or something more formal would be necessary to understand algorithms.

Another common view is that programming is difficult to learn later in life. Do you have any experience with people managing to learn it in their fifties or sixties?

Let’s start talking about the computer programming books you’ve chosen. The first is Code: The Hidden Language of Computer Hardware and Software by Charles Petzold. I’d never heard of this one before but it seems very interesting. Is this a nice first step, to check how interested you are in the topic?

I picked it because it tells you how a computer works. A lot of times, people think that the monitor is the computer. I don’t know how common of a misconception that is, but it is definitely one! This book talks about all the chips and the gates, and it goes from a very low level all the way up. It gets you to use your imagination to virtually build a computer. It’s easy to read, you can lie down on the couch and enjoy it—it’s not so much of a textbook. It demystifies the magic of a computer and what it is. There is no theory involved, rather it presents the components and how they come together.

So you would recommend the book to anyone with an interest in computer programming, even if they don’t want to start coding themselves?

Exactly. If you don’t want to learn how to code but still want to learn what a computer is and a little bit of history behind it, this is a very good book. It goes all the way from the chips that make up the computer, up to the peripherals like the screen and keyboard. The details of how we build computers haven’t changed since Petzold wrote the book. But the size of things has changed!

And then, after this introductory book on programming, if a reader finds they really are interested and want to learn programming, this would be a good point to choose a language. Is that right?

Yes, the first book tells you about the hardware. Then if you want to learn how to program, you’ll need to learn a programming language. To do this, you don’t have to use a book, there are many tutorials online.

For complete beginners, one of the inevitable questions is, ‘which language should I start with?’ Why is Python so often recommended? Ten or fifteen years ago, students of computer science used to start with lower-level languages such as C/C++ or Java, and there has been a big shift in recent years, even though Python has been around since the 1990s. Do you think there’s a particular reason for that?

The first reason is that more people want to learn how to program, and languages like C/C++ and Java are cumbersome, so the syntax is not as easy to understand. What makes Python interesting and easy to learn is that it’s like a rough translation of English into code. You’re speaking this sort of broken English, and if you read Python code out loud, you can often tell what’s going on, which is nice. In Python you also don’t have to declare types of variables, as you’d have to do in C/C++ or Java; that makes it even more accessible. You don’t have to think about that aspect, the language does it for you. Having eliminated these annoying little things is what makes Python enjoyable to everyone.

“It’s tough to understand that an algorithm is just a recipe, and even tougher to come up with new recipes yourself”

The other reason is the push towards data science , and generally working with a lot of data. It makes Python nicer to use, because it’s close to languages like Matlab or R. With Python, you can write easy and quick scripts, without too many pesky language details. A lot of people who are not computer scientists or programmers want to get into this field of data science and analyse the data that’s coming their way. Usability makes Python a very attractive language.

So Python would definitely be your obvious recommendation, or do you see any alternatives out there for beginners?

Python is the easiest to learn, and is enough if you’re not going to work in the field of computer science and programming. Beyond that, Java is the other big one that I would recommend, and then C++. You have a lot more control in those languages and your code becomes much more efficient. If you’re dealing with a critical application like flying an airplane, you would not want to write that software in Python!

You’ve recently written your own introduction to programming, Get Programming: Learn to code with Python . You must have gathered a lot of insights from your experience teaching hundreds of students at MIT. Is there anything in particular that you do in the book, that is sometimes done wrong when it comes to teaching programming?

There’s no right or wrong way to teach programming, but one specificity is that I don’t actually get into code before chapter 4. I focus on getting the reader to understand what computer science is, and getting their head around that way of thinking about things.

“What makes Python interesting and easy to learn is that it’s like a rough translation of English into code”

One of the earliest chapters is “principles of learning a programming language”, the fact that you only do what you’re told to do. As humans we can infer things; if someone tells you to make dinner, you know that means going to the kitchen, taking pots and pans, using ingredients, etc. But if you said “make dinner” to a computer, it wouldn’t know where to start. So I’m trying to get readers to understand that a computer needs very specific commands, because it doesn’t know how to infer anything. Then the book goes through learning Python, while continuing to stress those points along the way.

One final question before we delve into the rest of your selection. Of course at Five Books we’re very interested in people’s favourite books, but there are so many resources online to learn programming. Do you think there are still merits to learning computer science with books?

Your second book is Clean Code by Robert C. Martin. Its subtitle is A Handbook of Agile Software Craftsmanship . Can you tell us what it’s about?

This book is going to show you how to write code that is readable by yourself in the future, or by somebody else. Martin wrote it in a very approachable way, and what I liked when I read it is that it starts talking about code right away. It actually starts with the most basic thing, which is how to name objects in your code. When you’re programming, you’re working with objects all the time; so to make your code readable, you need to use proper names for your variables. That’s the first chapter, and this is often overlooked so I was happy to see that.

Get the weekly Five Books newsletter

The tone of the book is quite conversational. Again, you can sit on the couch and read it; you don’t need to code. You can actually enjoy it if you don’t know how to program at all. Each chapter begins with a little scenario, often a conversation between two people, and it sets the scene for what the chapter will be talking about. That’s very helpful, and it makes it a very nice book to sit down with and read through.

This idea of readable code is a traditional piece of advice, especially from teachers to students. But readability, and especially commenting, are often seen as one of the most boring parts of programming. How do you convince your own students that it’s not a waste of time and that clean code will be valuable to both other people who read their programs, but also to their future self?

Well, I still haven’t been able to convince my students that it’s important! I don’t know if it’s possible. Sometimes even I don’t do it and regret it later. It’s a matter of not doing it, and then coming back to your code weeks later and not remembering what you did, and learning from those experiences! Two of the books I chose focus on making your code readable; so yes, it’s very important.

The idea that there can be such a thing as “code craftsmanship” is often difficult to grasp for beginners or people who don’t program. Can you explain what is usually understood—or your own definition—of what well-crafted code is?

First, well-crafted code is readable code. This means having comments that describe the thought process and what the code is trying to do—not how it’s doing it. Good variable names would also fall under that category. The other part is organising your code. That means using the right amount of classes and functions, and using them in the right away. You don’t want to write too many and over-engineer your code, but you shouldn’t write too few either so that the few you have are complex and not easy to understand. You want to have the right amount to make them useful and reusable.

Support Five Books

Five Books interviews are expensive to produce. If you're enjoying this interview, please support us by donating a small amount .

Your third book is Code Complete: A Practical Handbook of Software Construction , by Steve McConnell. Is this going further into the same idea, or does this book add something different?

It’s a pretty long book. It’s like Clean Code but it goes further. Clean Code gives examples in Java; this one gives examples in several different languages, to emphasize that the concepts it’s teaching aren’t language-specific and should be applicable to any language. It doesn’t teach you the code, it teaches you the software construction: commenting, classes, debugging, refactoring…

While Clean Code teaches best practices to individuals who are writing code for themselves, Code Complete is for people working in industry, writing software for companies, which means they’re giving their code to other people. It even has little checklists at key points in the book; if you are in industry, you can make sure that your code is readable and debugged by going through these checklists and making sure you’re touching upon all aspects. So it’s definitely more geared toward industry. If you have an interest in going into that, this would be the book to read. It’s a pretty old book, but it’s still very relevant. I remember my dad reading it.

Do you think that the concepts presented in these two books are what makes you go from someone who is able to program, to someone who programs very well?

Let’s go on to your fourth book, on a different topic: it’s called Algorithms , by Robert Sedgewick and Kevin Wayne. This is an exhaustive book on algorithms. What can you tell us about them?

The book presents some very basic algorithms, using Java. It’s written by two authors I’ve worked with in grad school at Princeton. There are two main books on algorithms used in universities, and this is one of them. They both present the same important algorithms that you’ll need to know, but this one does it in a much more approachable way. Every algorithm you see in the book is also implemented in Java, so if you want to run it, you can copy the code and execute it yourself. I like that it’s so practical. It doesn’t bog you down in mathematical terminology and proofs, which I also like.

I wouldn’t recommend sitting on the couch with this one, because you’ll need to be a bit more proactive. But as far as algorithm books go, this one is pretty approachable. I would say it’s also helpful if you’re going to go for programming interviews. They usually ask you to either write some algorithm or piece of code, and reading this book beforehand would be very useful to get ready.

The word “algorithm” seems to have taken on a huge significance in the last few years, in the media discourse about people’s fears of black boxes and manipulation. I find this very curious because when you learn computer science, algorithms are actually anything but black boxes. They’re very clear, step-by-step programs where you go from a problem to a detailed solution. Do you think that educating people about what algorithms are would be beneficial, and make us less scared of them?

Finally, your fifth book is Types and Programming Languages , by Benjamin C. Pierce. This book seems to delve deeper into some of the mathematical theory behind computer programming. Can you try to explain to our readers what type theory is, and why it’s important to understand it?

This final book is pretty advanced. It’s about programming language design. The best way to explain it is to draw a parallel between the physical world and programming languages. If you think about the physical world around us—objects, things in nature, etc.—we have come up with mathematics to help us describe what’s happening, in a systematic and logical way. Computer science is the same thing, but for what’s going on inside a computer. And around this idea of computations, you can build type systems. Type systems are the maths we’ve come up with; they help us describe computations or what’s going in a program, what operations are happening. They help us reason about what a program is doing, and often help programmers avoid mistakes when writing code. For example a type system might be able to say: ‘you’re trying to multiply a word by a decimal number, that doesn’t make any sense.’

“You do need a strong grasp of maths, but not the traditional maths people think of ”

It’s not a book for beginners, but it’s a good book if you’re interested in the theory behind programming languages. In the first book you’ve learned about the hardware, and in the next books you’ve learned about good code, and then algorithms. Now you can learn about programming languages themselves: how to write one, and how they do what they’re supposed to do.

This leads me to another aspect we haven’t talked about yet: people often say that to study computer science, you need to be good at maths . Do you still think that’s the case today, when computers hide so much of the computational theory behind layers of abstraction, or do you think that to program well, you still need a strong understanding of maths?

That’s a great question. You do need a strong grasp of maths, but not the traditional maths that people think of. When people think of maths, they think of operations, adding things, doing calculations. The mathematical grasp that you need is more on the logical side: thinking about binary choices—something that’s ‘true’ or ‘false’. This logical way of thinking, which is the way a computer thinks, is also a branch of mathematics. Unfortunately you only study it in undergraduate education, but you encounter it in life in a lot of ways. When you’re doing an online quiz where you follow a flowchart to find what kind of dog you are, you’re using logic to figure out something. That kind of maths is very useful, and that’s what gives you the mind of a programmer. But you have to change your thought process to think of statements in a programming language instead of pictures of dogs!

To come back to computer science in general, it’s a field that is infamous for its lack of diversity, with very low proportions of women and people of colour. Have you noticed any improvement in the last few years? Your own role in teaching computer science to undergraduate students seems like a step in the right direction.

There’s definitely improvement at many levels of education. A lot of women are taking my introductory course in computer science, because they recognise that it’s a useful skill to have. In my class we have about 40% women, which is pretty high. Our staff is somewhat large—we have 15 teaching assistants—and the majority of them are actually women. A lot of times, female students will take the course, they’ll love it, they’ll major in computer science, and towards the end they’ll want to give back. And I love that, because they often want to be teaching assistants, and they’re very dedicated and they do a very good job. And because 80% of our staff is female, then that cycle starts: the students taking the class see that the majority of TAs are women, so they think ‘I can do this too!’, and that helps push rates even higher. Of course the push towards general computer science education in high school will definitely help as well.

That’s a great transition to my last question: what piece of advice would you give to high school students thinking of starting a career in computer science?

I would say just go for it. Pick a language, stick with it, and learn as much as you can. It doesn’t matter what language, even if you start with a visual language like Scratch, that’s awesome. It starts to get you thinking about computer science, and the logical way that computers think. That’s a huge step towards succeeding in computer science post-secondary school.

April 30, 2018

Five Books aims to keep its book recommendations and interviews up to date. If you are the interviewee and would like to update your choice of books (or even just what you say about them) please email us at [email protected]

Ana Bell is a lecturer in the Electrical Engineering and Computer Science Department at MIT for "Introduction to Computer Science and Programming using Python", "Introduction to Computational Thinking and Data Science", and an Instructor for the same courses on edX.org . She received her PhD in computational biology from Princeton University in 2013. In 2017, she published "Get Programming: Learn to code with Python", with the goal of helping beginners learn their first real programming language.

We ask experts to recommend the five best books in their subject and explain their selection in an interview.

This site has an archive of more than one thousand seven hundred interviews, or eight thousand book recommendations. We publish at least two new interviews per week.

Five Books participates in the Amazon Associate program and earns money from qualifying purchases.

© Five Books 2024

logo

10 Best Computer Science Books to Read in 2023

Computer Science is a dynamic field that powers innovation and drives the digital age. If you're passionate about algorithms, programming, and the limitless possibilities of technology, consider taking a summer course with Oxford Summer Courses. Embark on an immersive journey through our Computer Science summer school, where you'll explore the fundamentals of coding, artificial intelligence, and the ever-evolving world of digital innovation.

What’s Included in an Oxford Summer Course?

Disclaimer:.

Please note that the following list of resources is recommended reading to deepen your knowledge and appreciation of Computer Science. While some of these resources may be included in the Oxford Summer Courses curriculum, the specific content of the summer school can vary.

Subscribe to our newsletter to receive helpful tips, tutorials, and thought-provoking articles that can inform and inspire your technical development. Sign up here.

1. "Introduction to Algorithms" by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein

  • "Algorithms are the heart of computing. They are the engine that drives computing. This is what makes a computer compute."
  • Published in 1990, "Introduction to Algorithms" is a fundamental text in the field of Computer Science. It provides a comprehensive introduction to the principles of algorithm design, offering timeless insights into solving complex problems efficiently.
  • Discussion: How have algorithms transformed the way we approach problem-solving in the digital age?

2. "Structure and Interpretation of Computer Programs" by Harold Abelson and Gerald Jay Sussman

  • "Programmes must be written for people to read, and only incidentally for machines to execute."
  • This classic book, often referred to as SICP, explores the fundamental principles of programming and computer science. It also emphasises on the importance of designing elegant and efficient programmes.
  • Discussion: How does the philosophy of program design presented in SICP still influence modern software development practices?

3. "The Pragmatic Programmer" by Andrew Hunt and David Thomas

  • "Programmers are constantly learning. It's a core part of the job. So don't be a slave to history."
  • In this pragmatic guide, Hunt and Thomas provide valuable advice on software development practices. It's a must-read for anyone looking to improve their coding skills to become a more efficient programmer.
  • Discussion: How can the principles of pragmatism in programming benefit today's software developers?

4. "Artificial Intelligence: A Modern Approach" by Stuart Russell and Peter Norvig

  • "The field of artificial intelligence is the study of how to make computers do things at which, at the moment, people are better."
  • This comprehensive book delves into the fascinating world of artificial intelligence. It covers a wide range of AI topics, from search algorithms to machine learning, making it an essential resource for understanding AI's current state and future potential.
  • Discussion: How has artificial intelligence evolved since the publication of this book, and what are its implications for society today?

5. "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. Martin

  • "Indeed, the ratio of time spent reading versus writing is well over 10 to 1. We are constantly reading old code as part of the effort to write new code."
  • Clean code is crucial in software development, and Robert C. Martin's book is a guide to writing code that is not only functional but also maintainable and elegant.
  • Discussion: Why is writing clean and maintainable code essential for modern software development, and how can it improve collaboration among developers?

6. "Computer Networking: Principles, Protocols and Practice" by Olivier Bonaventure

  • "The Internet is a major driving force in the development of many technologies that are used in our daily lives."
  • Understanding computer networking is essential in today's interconnected world. This book provides a comprehensive overview of networking principles and protocols.
  • Discussion: How has the landscape of computer networking changed since the publication of this book, and what role does it play in our digital lives today?

7. "The Mythical Man-Month: Essays on Software Engineering" by Frederick P. Brooks Jr.

  • "The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination."
  • This classic work by Frederick P. Brooks Jr. explores the challenges of software engineering and project management. It remains relevant in understanding the complexities of software development.
  • Discussion: How do the insights on software project management presented in this book apply to contemporary software development practices?

8. "Introduction to the Theory of Computation" by Michael Sipser

  • "Computation is about the transformation of information."
  • This book is an excellent resource for understanding the theory of computation, including formal languages, automata, and computational complexity.
  • Discussion: How does the theory of computation continue to influence the development of new computing technologies and algorithms?

9. "Coders at Work: Reflections on the Craft of Programming" by Peter Seibel

  • "Writing code is what people do. Building software is what people who like figuring out what code should be do."
  • Peter Seibel's book offers interviews with some of the most influential programmers and computer scientists. It provides insights into their thought processes and approaches to programming.
  • Discussion: What can aspiring programmers and computer scientists learn from the experiences and philosophies of the individuals featured in this book?

10. "Data Science for Business" by Foster Provost and Tom Fawcett

  • "In the modern world, business decisions are often guided by data, and data science is an important discipline for helping people make such decisions."
  • Data science is at the forefront of business and technology. This book explains the principles of data analysis and how it can be applied to solve real-world business problems.
  • Discussion: How does data science contribute to informed decision-making in various industries today, and what are its ethical considerations?

Oxford Summer Courses invites you to immerse yourself in the ever-evolving world of Computer Science. In this blog post, we present a meticulously curated list of 10 classic books that will ignite your passion for technology and deepen your understanding of the digital landscape. Join us on this intellectual journey, and you might discover a newfound passion for coding, problem-solving, and shaping the future through technology.

Ready to Join Oxford Summer Courses?

After submitting your application, we'll be in touch very soon to inform you of the outcome. Apply now to begin your journey with Oxford Summer Courses!

Share this article

Ignite your passion for computer science at Oxford Summer Courses. Immerse yourself in a carefully selected list of books that delve into computer programming languages, software development, and the cutting-edge innovations in the field of technology.

Get Our Newsletter

Oxford Summer Courses LTD

18 Beaumont Street, Oxford, OX1 2NA, United Kingdom

+44 01865 818403

B Corp Logo

Juniors 9-12

Oxford 13-15

Oxford 16-17

Oxford 18-24

Cambridge 13-15

Cambridge 16-17

Advanced Cambridge 18-24

Back-To-Back Courses

Four Week Enhanced Programme

Group Bookings

GDPR Notice

Privacy Policy

Terms and Conditions

tiktok

Oxford Summer Courses is an organisation which contracts with the colleges of the Universities of Oxford, Cambridge and London for the use of facilities, but which has no formal connection with the Universities of Oxford, Cambridge and London.

Oxford summer courses © 2024, oxford summer courses is a company registered in england and wales with company number 08011543.

phd books for computer science

  • Values of Inclusion
  • 2020 Antiracism Task Force
  • 2022 DEI Report
  • Research News

Department Life

  • Listed by Recipient
  • Listed by Category
  • Oral History of Cornell CS
  • CS 40th Anniversary Booklet
  • ABC Book for Computer Science at Cornell by David Gries
  • Books by Author
  • Books Chronologically
  • The 60's
  • The 70's
  • The 80's
  • The 90's
  • The 00's
  • The 2010's
  • Faculty Positions: Ithaca
  • Faculty Positions: New York City
  • Lecturer Position: Ithaca
  • Post-doc Position: Ithaca
  • Staff/Technical Positions
  • Ugrad Course Staff
  • Ithaca Info
  • Internal info
  • Graduation Information
  • Cornell Learning Machines Seminar
  • Student Colloquium
  • Fall 2024 Colloquium
  • Conway-Walker Lecture Series
  • Salton 2024 Lecture Series
  • Fall 2024 Artificial Intelligence Seminar
  • Spring 2024 Robotics Seminar
  • Spring 2024 Theory Seminar
  • Big Red Hacks
  • Cornell University - High School Programming Contests 2024
  • Game Design Initiative
  • CSMore: The Rising Sophomore Summer Program in Computer Science
  • Explore CS Research
  • ACSU Research Night
  • Cornell Junior Theorists' Workshop 2023
  • Researchers
  • Ph.D. Students
  • M.Eng. Students
  • M.S. Students
  • Ph.D. Alumni
  • M.S. Alumni
  • List of Courses
  • Course and Room Roster
  • CS Advanced Standing Exam
  • Architecture
  • Artificial Intelligence
  • Computational Biology
  • Database Systems
  • Human Interaction
  • Machine Learning
  • Natural Language Processing
  • Programming Languages
  • Scientific Computing
  • Software Engineering
  • Systems and Networking
  • Theory of Computing
  • Contact Academic Advisor
  • Your First CS Course
  • Technical Electives
  • CS with Other Majors/Areas
  • Transfer Credits
  • CS Honors Program
  • CPT for International CS Undergrads
  • Graduation Requirements
  • Useful Forms
  • Becoming a CS Major
  • Requirements
  • Game Design Minor
  • Co-op Program
  • Cornell Bowers CIS Undergraduate Research Experience (BURE)
  • Independent Research (CS 4999)
  • Student Groups
  • UGrad Events
  • Undergraduate Learning Center
  • UGrad Course Staff Info
  • The Review Process
  • Early M.Eng Credit Approval
  • Financial Aid
  • Prerequisites
  • The Application Process
  • The Project
  • Pre-approved Electives
  • Degree Requirements
  • The Course Enrollment Process
  • Advising Tips
  • Entrepreneurship
  • Cornell Tech Programs
  • Professional Development
  • Contact MEng Office
  • Career Success
  • Applicant FAQ
  • Computer Science Graduate Office Hours
  • Exam Scheduling Guidelines
  • Graduate TA Handbook
  • MS Degree Checklist
  • MS Student Financial Support
  • Special Committee Selection
  • Diversity and Inclusion
  • Contact MS Office
  • Ph.D. Applicant FAQ
  • Graduate Housing
  • Non-Degree Application Guidelines
  • Ph. D. Visit Day
  • Advising Guide for Research Students
  • Business Card Policy
  • Cornell Tech
  • Curricular Practical Training
  • A & B Exam Scheduling Guidelines
  • Fellowship Opportunities
  • Field of Computer Science Ph.D. Student Handbook
  • Field A Exam Summary Form
  • Graduate School Forms
  • Instructor / TA Application
  • Ph.D. Requirements
  • Ph.D. Student Financial Support
  • Travel Funding Opportunities
  • Travel Reimbursement Guide
  • The Outside Minor Requirement
  • CS Graduate Minor
  • Outreach Opportunities
  • Parental Accommodation Policy
  • Special Masters
  • Student Spotlights
  • Contact PhD Office

Search form

phd books for computer science

Computer Science Ph.D. Program

You are here.

The Cornell Ph.D. program in computer science is consistently ranked among the top six departments in the country, with world-class research covering all of computer science. Our computer science program is distinguished by the excellence of the faculty, by a long tradition of pioneering research, and by the breadth of its Ph.D. program. Faculty and Ph.D. students are located both in Ithaca and in New York City at the Cornell Tech campus . The Field of Computer Science also includes faculty members from other departments (Electrical Engineering, Information Science, Applied Math, Mathematics, Operations Research and Industrial Engineering, Mechanical and Aerospace Engineering, Computational Biology, and Architecture) who can supervise a student's Ph.D. thesis research in computer science.

Over the past years we've increased our strength in areas such as artificial intelligence, computer graphics, systems, security, machine learning, and digital libraries, while maintaining our depth in traditional areas such as theory, programming languages and scientific computing.  You can find out more about our research here . 

The department provides an exceptionally open and friendly atmosphere that encourages the sharing of ideas across all areas. 

Cornell is located in the heart of the Finger Lakes region. This beautiful area provides many opportunities for recreational activities such as sailing, windsurfing, canoeing, kayaking, both downhill and cross-country skiing, ice skating, rock climbing, hiking, camping, and brewery/cider/wine-tasting. In fact, Cornell offers courses in all of these activities.

The Cornell Tech campus in New York City is located on Roosevelt Island.  Cornell Tech  is a graduate school conceived and implemented expressly to integrate the study of technology with business, law, and design. There are now over a half-dozen masters programs on offer as well as doctoral studies.

FAQ with more information about the two campuses .

Ph.D. Program Structure

Each year, about 30-40 new Ph.D. students join the department. During the first two semesters, students become familiar with the faculty members and their areas of research by taking graduate courses, attending research seminars, and participating in research projects. By the end of the first year, each student selects a specific area and forms a committee based on the student's research interests. This “Special Committee” of three or more faculty members will guide the student through to a Ph.D. dissertation. Ph.D. students that decide to work with a faculty member based at Cornell Tech typically move to New York City after a year in Ithaca.

The Field believes that certain areas are so fundamental to Computer Science that all students should be competent in them. Ph.D. candidates are expected to demonstrate competency in four areas of computer science at the high undergraduate level: theory, programming languages, systems, and artificial intelligence.

Each student then focuses on a specific topic of research and begins a preliminary investigation of that topic. The initial results are presented during a comprehensive oral evaluation, which is administered by the members of the student's Special Committee. The objective of this examination, usually taken in the third year, is to evaluate a student's ability to undertake original research at the Ph.D. level.

The final oral examination, a public defense of the dissertation, is taken before the Special Committee.

To encourage students to explore areas other than Computer Science, the department requires that students complete an outside minor. Cornell offers almost 90 fields from which a minor can be chosen. Some students elect to minor in related fields such as Applied Mathematics, Information Science, Electrical Engineering, or Operations Research. Others use this opportunity to pursue interests as diverse as Music, Theater, Psychology, Women's Studies, Philosophy, and Finance.

The computer science Ph.D. program complies with the requirements of the Cornell Graduate School , which include requirements on residency, minimum grades, examinations, and dissertation.

The Department also administers a very small 2-year Master of Science program (with thesis). Students in this program serve as teaching assistants and receive full tuition plus a stipend for their services.

CS PhD Course Guidelines

The following program guidelines (a.k.a model pogram) serve as a starting point for a discussion with the faculty about areas of interest.   This description of the Computer Science PhD course guidelines augments the school-wide  PhD course requirements .   Students should make themselves familiar with both.

Course Guidelines for Ph.D. Students in Computer Science

We expect students to obtain broad knowledge of computer science by taking graduate level courses in a variety of sub-areas in computer science, such as systems, networking, databases, algorithms, complexity, hardware, human-computer interaction, graphics, or programming languages.

Within our school, CS courses are roughly organized according to sub-area by their middle digit, so we expect students to take courses in a minimum of three distinct sub-areas, one of which should be theory (denoted by the middle digit of 2, or CS 231). Theory is specifically required as we expect all students to obtain some background in the mathematical foundations that underlie computer science. The intention is not only to give breadth to students, but to ensure cross-fertilization across different sub-disciplines in Computer Science.

Just as we expect all students obtaining a Ph.D. to have experience with the theoretical foundations of computer science, we expect all students to have some knowledge of how to build large software or hardware systems , on the order of thousands of lines of code, or the equivalent complexity in hardware. That experience may be evidenced by coursework or by a project submitted to the CHD for examination. In almost all cases a course numbered CS 26x or CS 24x will satisfy the requirement (exceptions will be noted in the course description on my.harvard). Students may also petition to use CS 161 for this requirement.   For projects in other courses, research projects, or projects done in internships the student is expected to write a note explaining the project, include a link to any relevant artifacts or outcomes, describe the student's individual contribution, and where appropriate obtain a note from their advisor, their class instructor, or their supervisors confirming their contributions.  The project must include learning about systems concepts, and not just writing many lines of code.   Students hoping to invoke the non-CS24x/26x/161 option must consult with  Prof. Mickens ,  Prof, Kung,  or  Prof. Idreos  well in advance of submitting their Program Plan to the CHD.  

Computer science is an applied science, with connections to many fields. Learning about and connecting computer science to other fields is a key part of an advanced education in computer science. These connections may introduce relevant background, or they may provide an outlet for developing new applications.

For example, mathematics courses may be appropriate for someone working in theory, linguistics courses may be appropriate for someone working in computational linguistics, economics courses may be appropriate for those working in algorithmic economics, electrical engineering courses may be appropriate for those working in circuit design, and design courses may be appropriate for someone working in user interfaces.

Requirements

The Graduate School of Arts & Sciences (GSAS) requires all Ph.D. students to complete 16 half-courses (“courses”, i.e., for 4 units of credit) to complete their degree. Of those 16 courses, a Ph.D. in Computer Science requires 10 letter-graded courses. (The remaining 6 courses are often 300-level research courses or other undergraduate or graduate coursework beyond the 10 required courses.)

The requirements for the 10 letter-graded courses are as follows:

  • Of the 7 technical courses, at least 3 must be 200-level Computer Science courses, with 3 different middle digits (from the set 2,3,4,5,6,7,8), and with one of these three courses either having a middle digit of 2 or being CS 231 (i.e., a “theory” course).   Note that CS courses with a middle digit of 0 are valid technical courses, but do not contribute to the breadth requirement.
  • At least 5 of the 8 disciplinary courses must be SEAS or SEAS-equivalent 200-level courses. A “SEAS equivalent” course is a course taught by a SEAS faculty member in another FAS department. 
  • For any MIT course taken, the student must provide justification why the MIT course is necessary (i.e. SEAS does not offer the topic, the SEAS course has not been offered in recent years, etc.). MIT courses do not count as part of the 5 200-level SEAS/SEAS-equivalent courses. 
  • 2 of the 10 courses must constitute an external minor (referred to as "breadth" courses in the SEAS “ Policies of the Committee on Higher Degrees [CHD] ”) in an area outside of computer science. These courses should be clearly related; generally, this will mean the two courses are in the same discipline, although this is not mandatory. These courses must be distinct from the 8 disciplinary courses referenced above.
  • Students must demonstrate practical competence by building a large software or hardware system during the course of their graduate studies. This requirement will generally be met through a class project, but it can also be met through work done in the course of a summer internship, or in the course of research.
  • In particular, for Computer Science graduate degrees, Applied Computation courses may be counted as 100-level courses, not 200-level courses.
  • Up to 2 of the 10 courses can be 299r courses, but only 1 of the up to 2 allowed 299r courses can count toward the 8 disciplinary courses. 299r courses do not count toward the 5 200-level SEAS/SEAS-equivalent courses. If two 299r’s are taken, they can be with the same faculty but the topics must be sufficiently different.
  • A maximum of 3 graduate-level transfer classes are allowed to count towards the 10 course requirement.
  • All CS Ph.D. program plans must adhere to the SEAS-wide Ph.D. requirements, which are stated in the SEAS Policies of the Committee on Higher Degrees (CHD) . These SEAS-wide requirements are included in the items listed above, though students are encouraged to read the CHD document if there are questions, as the CHD document provides further explanation/detail on several of the items above.
  • All program plans must be approved by the CHD. Exceptions to any of these requirements require a detailed written explanation of the reasoning for the exception from the student and the student’s research advisor. Exceptions can only be approved by the CHD, and generally exceptions will only be given for unusual circumstances specific to the student’s research program.

Requirement Notes

  • Courses below the 100-level are not suitable for graduate credit.
  • For students who were required to take it, CS 2091/2092 (formerly CS 290a/b or 290hfa/hfb may be included as one of the 10 courses but it does not count toward the 200-level CS or SEAS/SEAS-equivalent course requirements nor toward the SM en route to the PhD.

Your program plan  must always comply  with both our school's General Requirements, in addition to complying with the specific requirements for Computer Science. All program plans must be approved by the Committee on Higher Degrees [CHD]. Exceptions to the requirements can only be approved by the CHD, and generally will only be given for unusual circumstances specific to the student’s research program

In Computer Science

  • First-Year Exploration
  • Concentration Information
  • Secondary Field
  • Senior Thesis
  • AB/SM Information
  • Student Organizations
  • How to Apply
  • PhD Timeline
  • PhD Course Requirements
  • Qualifying Exam
  • Committee Meetings (Review Days)
  • Committee on Higher Degrees
  • Research Interest Comparison
  • Collaborations
  • Cross-Harvard Engagement
  • Lecture Series
  • Clubs & Organizations
  • Centers & Initiatives
  • Alumni Stories

Computer engineering

Computer science.

  • MS Handbooks
  • MCS Handbooks
  • PhD Handbooks
  • CS Course Lists
  • Older Handbooks

Computer Science MS Handbook 2024-2025

Computer Science MS Handbook 2023-2024

Computer Science MS Handbook  2022-2023

Computer Science MCS Handbook 2024-2025

Computer Science MCS Handbook 2023-2024

Computer Science MCS Handbook 2022-2023

Computer Science PhD Handbook 2024-2025

Computer Science PhD Handbook 2023-2024

Computer Science PhD Handbook 2022-2023

CS Grad Approved Courses

Computer Science PhD Handbook  2022-2023 Computer Science PhD Handbook  2021-2022 Computer Science PhD Handbook  2020-2021 Computer Science PhD Addendum  2020-2021 Computer Science PhD Handbook  2019-2020 Computer Science PhD Handbook  2018-2019 Computer Science PhD Handbook  2017-2018

Computer Science MCS Handbook 2022-2023 Computer Science MCS Handbook 2021-2022 Computer Science MCS Handbook 2020-2021 Computer Science MCS Addendum 2020-2021 Computer Science MCS Handbook  2019-2020 Computer Science MCS Handbook 2018-2019 Computer Science MCS Handbook 2017-2018

Computer Science MS Handbook 2022-2023 Computer Science MS Handbook 2021-2022 Computer Science MS Handbook 2020-2021 Computer Science MS Addendum  2020-2021 Computer Science MS Handbook  2019-2020 Computer Science MS Handbook  2018-2019 Computer Science MS Handbook 2017-2018

Data science, analytics and engineering

  • DSAE Course Lists

Data Science Analytics and Engineering PhD Handbook 2024-2025

Data Science Analytics and Engineering MS Handbook  2023-2024

Data Science Analytics and Engineering PhD Handbook  2023-2024

Data Science Analytics and Engineering PhD Handbook 2022-2023

Data Science Analytics and Engineering PhD Handbook 2021-2022

Approved DSAE Elective Courses

Doctor of Engineering

  • DEng Course Lists & Check Sheet
  • DEng Faculty List

Doctor of Engineering DEng Handbook 2024-2025

Doctor of Engineering Course Lists and Degree Check Sheet

Approved DEng Faculty List

Industrial engineering

  • IE Course Lists

Industrial Engineering MS Handbook - 2024-2025

Industrial Engineering PhD Handbook - 2024-2025

Industrial Engineering MS Handbook 2023-2024 Addendum - Edited IE Area Course requirement

Industrial Engineering MS Handbook - 2023-2024

Industrial Engineering PhD Handbook - 2023-2024

Industrial Engineering MS Handbook 2022-2023

Industrial Engineering PhD Handbook 2022-2023

MS Handbook 2021-2022 PhD Handbook 2021-2022

MS Handbook 2020-2021 PhD Handbook 2020-2021

Concentration Areas of IE Graduate Courses

MS Handbook  2019-2020 Ph.D. Handbook  2019-2020

MS Handbook  2017-2018 PhD Handbook  2017-2018

MS Handbook  2016-2017 PhD Handbook  2016-2017

MS Handbook  2015-2016 PhD Handbook 2015-2016

MS Handbook   2014-2015 PhD Handbook   2014-2015 PhD Handbook  2014-2015 (revised January 2015)

Robotics and autonomous systems (artificial intelligence concentration)

Software engineering.

  • Course List

Software Engineering MS Handbook - 2024-2025

Software Engineering MS Handbook - 2023-2024

MS Handbook 2022-2023

MS Handbook 2021-2022

MS Handbook 2020-2021 MS Handbook 2020-2021 Addendum

400-Level Course List

500-Level Course List

MS Handbook  2019-2020

M.S. Handbook  2018-2019

M.S. Handbook  2017-2018

M.S. Handbook  2016-2017

M.S. Handbook  2015-2016

{{ firstlevel.title }}

{{ firstlevel.title firstlevel.title : vm.computedtitle(firstlevel.path) }}, {{ secondlevel.title }}, {{ thirdlevel.title }}.

  • Taylor'sphere
  • How to Apply
  • Careers at Taylor's
  • Open Day 2024

{{ secondlevel.description }}

{{ thirdLevel.description }}

KPT/JPS (R/481/8/0785) (MQA/PA9554) 11/29

Our Doctor of Philosophy (PhD) in Computer Science programme is designed to empower graduate students who are passionate about computer science to develop a deep understanding of the algorithmic foundations of computing and engage in rigorous scientific research.

This PhD programme provides a strong foundation in the fundamental principles of computer science. You will explore cutting-edge topics and acquire advanced knowledge in areas such as algorithms, data structures, artificial intelligence, machine learning, and more. This solid grounding will enable you to tackle complex challenges and drive innovation in the field.

As a PhD student, you will have the opportunity to conduct groundbreaking research and enhance your research skills in computer science or information technology (IT). 

School Computer Science

Intake Month

February, April, June, September & October

Study Options

Full time or part time

Study Programme

3 to 6-year (full time)

4 to 8-year (part time)

Research-focused

Normal and Prior Publication

Interested to know more? Start your journey with us now.

Come join us for Taylor’s Open Day 2024!

Happening on 10,11, 17, and 18 August (Saturdays and Sundays), turn your knowledge into purpose for real impact at Taylor’s. Explore our world-class learning environment and industry connections, propelling you to success at our elite institutions, ranked among Asia’s Top 50 and the World’s Top 1%.

Key Highlights of Doctor of Philosophy (PhD) in Computer Science

As a doctoral student in computer science, you will embark on a research journey that will deepen your understanding of the field and make significant contributions to knowledge. Our programme is designed to provide you with a supportive and intellectually stimulating environment, allowing you to thrive as a researcher and innovator.

3 – 6 years 

4 – 8 years

Note:  All information is subject to change. Readers are responsible for verifying information that pertains to them by contacting the university.

Key Research Areas

At Taylor's University, we believe research can help shape the future. Our postgraduate research programmes cover a broad range of topics with the aim to help shape the future in the aspects of society, technology, economy, and environment.

Find out more about our research areas .

Hiring Graduate Students

We offer two entry pathways for this PhD programme, which are normal mode and prior to publication mode. Our PhD by Prior Publication mode provides a unique pathway for you to achieve a Doctoral award based on your existing body of work. We recognise the value of your prior publications and include them as a significant part of your submission for the Doctoral award.

Normal Mode

Pre-requisites: .

  • A Master’s degree (Level 7, MQF) in the field of Computing or related fields as accepted by the HEP Senate; OR
  • A Master’s degree (Level 7, MQF) in non-Computing fields with a minimum of FIVE (5) years of working experience in the field of computing or related fields must undergo appropriate prerequisite courses as determined by the HEP; OR
  • A Master’s degree (Level 7, MQF) in non-Computing fields with less than FIVE (5) years of working experience in the field of computing or related fields must undergo appropriate prerequisite courses as determined by the HEP and subject to rigorous internal assessment; OR
  • Other qualifications equivalent to a Master’s degree in the field of Computing or related fields recognised by the Government of Malaysia must undergo appropriate prerequisite courses as determined by the HEP.

International Students

  • IELTS 6.0 / TOEFL 60 (Internet Based Test) (May join IEN preparatory course and achieve the IELTS score) The validity of the IELTS or equivalent is within 2 years from the date of the examination.

Note : All information is subject to change. Readers are responsible for verifying information that pertains to them by contacting the university.

Prior Publication Mode

You will need to fulfill one of the below.

  • Obtain a master's degree in the field or related fields accepted by the HEP Senate
  • Obtain other qualifications equivalent to a master's degree recognised by the Government of Malaysia

Candidates without a related qualification in the field/s or working experience in the relevant fields must undergo appropriate prerequisite courses determined by the HEP

In addition to the above criteria, those who want to join Doctoral Degree by Retrospective or Prior Publication mode must include the below to the formal application:

  • Minimum of 5 publications in alignment with the theme of the specialisation;
  • An executive summary of the above publications establishing
  • The theme that connects the published works to be submitted (up to 1,000 words);
  • Contribution to knowledge in the field of the proposed area of study (up to 1,000 words)
  • A list of scholarly published work;
  • Curriculum Vitae (CV)

For international candidates, evidence of English Language Proficiency as determined by the intake standards approved by the Senate

A Selection Committee must be established to review the formal application for PhD by Retrospective or Prior Publication and recommend to the Senate to obtain approval.

Criteria for published works

  • Published work must encompass high-quality journals, monographs, books, research-based chapters in books, electronic publications which have not been used to obtain other awards or deemed a part of those awards.
  • The publications must be published within a period not exceeding ten (10) years from the date of submission.
  • For the five (5) nominated publications, the candidate must be the principal author with the contributions of others clearly defined.

When you've successfully completed this Doctor of Philosophy in Computer Science programme, you could embark on any of these exciting careers, including:

  • Applications Developer
  • Database Designer
  • E-Business Consultant
  • Computer Communications Specialists
  • Games Developer
  • Games Graphic Designer
  • Analyst Programmer
  • Client / Server Specialist
  • Information Technology Officer

How long is the candidature?

The minimum duration of candidature is 6 months and must not exceed 2 years.

What are the criteria for the award of the degree?

The minimum requirement for the award of the degree is to:

  • Pass thesis examination and viva-voce/ oral examination.
  • Confirmation of meeting minimum candidature period (from the first day of intake commencement to confirmation of satisfactory amendment of thesis/dissertation by examiners).

How will progression tracking be done?

Progression tracking is done by monitoring of research progress periodically through:

  • Regular consultation with the supervisors (supervisor-supervisee log);
  • Progress report; and Seminars (research seminar, thesis completion seminar).

Doctor of Philosophy (PhD) in Computer Science

Approximate Total Fees (Normal Mode) Approximate Total Fees (Prior Publication Mode) Local Student International Student

We offer scholarships to help brightest minds

Reach their fullest potential..

Note:  Fees will be reviewed annually. For the avoidance of doubt, Taylor’s reserves the right to revise the fee payable for any given semester.

OTHER RECOMMENDED PROGRAMMES

  • Taylor's Education Group
  • Taylor's Alumni
  • Taylor's Library
  • Taylor's CSR
  • Taylor's Verify
  • Explore All Programmes
  • Scholarships and Financial Aids
  • Key Intakes
  • Campus Facilities

Campus Life

  • Journey with Taylor's University
  • Accommodation
  • Clubs and Societies
  • Sports and Recreation

About Taylor's

  • Taylor's Impact Labs
  • Sustainability
  • QS Rankings
  • Whistleblower

STAY INFORMED

Copyright © 2024 Taylor’s University Sdn. Bhd. 198601000495 (149634-D) DU023 (B). All rights reserved

Secondary Menu

Phd program, find your passion for research.

Duke Computer Science gives incoming students an opportunity to investigate a range of topics, research problems, and research groups before committing to an advisor in the first year. Funding from the department and Duke makes it possible to attend group meetings, seminars, classes and colloquia. Students may work on multiple problems simultaneously while finding the topic that will motivate them through their first project. Sharing this time of learning and investigation with others in the cohort helps create lasting collaborators and friends.

Write a research proposal the first year and finish the research the second under the supervision of the chosen advisor and committee; present the research results to the committee and peers. Many students turn their RIP work into a conference paper and travel to present it.

Course work requirements are written to support the department's research philosophy. Pass up to four of the required six courses in the first two years to give time and space for immersing oneself in the chosen area.

Years three through five continue as the students go deeper and deeper into a research area and their intellectual community broadens to include collaborators from around the world. Starting in year three, the advisor funds the student's work, usually through research grants. The Preliminary exam that year is the opportunity for the student to present their research to date, to share work done by others on the topic, and to get feedback and direction for the Ph.D. from the committee, other faculty, and peers.

Most Ph.D students defend in years five and six. While Duke and the department guarantee funding through the fifth year, advisors and the department work with students to continue support for work that takes longer.

Teaching is a vital part of the Ph.D. experience. Students are required to TA for two semesters, although faculty are ready to work with students who want more involvement. The Graduate School's Certificate in College Teaching offers coursework, peer review, and evaluation of a teaching portfolio for those who want to teach. In addition, the Department awards a Certificates of Distinction in Teaching for graduating PhD students who have demonstrated excellence in and commitment to teaching and mentoring.

  • CS 50th Anniversary
  • Computing Resources
  • Event Archive
  • Location & Directions
  • AI for Social Good
  • Computational Social Choice
  • Computer Vision
  • Machine Learning
  • Natural Language Processing (NLP)
  • Reinforcement Learning
  • Search and Optimization
  • Computational Biochemistry and Drug Design
  • Computational Genomics
  • Computational Imaging
  • DNA and Molecular Computing
  • Algorithmic Game Theory
  • Social Choice
  • Computational Journalism
  • Broadening Participation in Computing
  • CS1/CS2 Learning, Pedagogy, and Curricula
  • Education Technology
  • Practical and Ethical Approaches to Software and Computing
  • Interdisciplinary Research in Data Science
  • Security & Privacy
  • Architecture
  • Computer Networks
  • Distributed Systems
  • High Performance Computing
  • Operating Systems
  • Quantum Computing
  • Approximation and Online Algorithms
  • Coding and Information Theory
  • Computational Complexity
  • Geometric Computing
  • Graph Algorithms
  • Numerical Analysis
  • Programming Languages
  • Why Duke Computer Science?
  • BS Concentration in Software Systems
  • BS Concentration in Data Science
  • BS Concentration in AI and Machine Learning
  • BA Requirements
  • Minors in Computer Science
  • 4+1 Program for Duke Undergraduates
  • IDM in Math + CS on Data Science
  • IDM in Linguistics + CS
  • IDM in Statistics + CS on Data Science
  • IDM in Visual & Media Studies (VMS) + CS
  • Graduation with Distinction
  • Independent Study
  • Identity in Computing Research
  • CS+ Summer Program
  • CS Related Student Organizations
  • Undergraduate Teaching Assistant (UTA) Information
  • Your Background
  • Schedule a Visit
  • All Prospective CS Undergrads
  • Admitted or Declared 1st Majors
  • First Course in CS
  • Duties and Commitment
  • Compensation
  • Trinity Ambassadors
  • Mentoring for CS Graduate Students
  • MSEC Requirements
  • Master's Options
  • Financial Support
  • MS Requirements
  • Concurrent Master's for Non-CS PhDs
  • Admission & Enrollment Statistics
  • PhD Course Requirements
  • Conference Travel
  • Frequently Asked Questions
  • Additional Graduate Student Resources
  • Graduate Awards
  • Undergraduate Courses
  • Graduate Courses
  • Spring 2024 Classes
  • Fall 2023 Classes
  • Spring 2023 Classes
  • Course Substitutions for Majors & Minors
  • Course Bulletin
  • Course Registration Logistics
  • Assisting Duke Students
  • For Current Students
  • Alumni Lectures - Spring 2024
  • News - Alumni
  • Primary Faculty
  • Secondary Faculty
  • Adjunct and Visiting Faculty
  • Emeriti - In Memoriam
  • Postdoctoral Fellows
  • Ph.D. Program
  • Masters in Computer Science
  • Masters in Economics and Computation
  • Affiliated Graduate Students
  • Top Colleges
  • Top Courses
  • Entrance Exams
  • Admission 2024
  • Study Abroad
  • Study in Canada
  • Study in UK
  • Study in USA
  • Study in Australia
  • Study in Germany
  • IELTS Material
  • Scholarships
  • Sarkari Exam
  • Visual Stories
  • College Compare
  • Write a review
  • Login/ Register
  • Login / Register

Ph.D Computer Science Syllabus and Subjects

Roumik Roy

PhD in Computer Science duration is 3 to 5 years long doctorate course. PhD Computer Science syllabus is divided semester-wise with a yearly based exam. By the end of the PhD Computer Science doctorate program, students will be prepared for careers in banking, IT Companies, educational institutions, research and development, architecture, and many more. PThe syllabus of PhD Computer Science doctorate program offers both theoretical and practical knowledge through its core courses and electives. The PhD Computer Science syllabus covers topics such as computer architecture, data field and structures, complexity and advanced algorithms, statistical methods in AI, and programming language principles.

Semester Wise PhD Computer Science Syllabus

The PhD program in Computer Science has a duration of 3-5 years. The PhD Computer Science syllabus is divided into six to ten semesters with an annual exam. PhD Computer Science syllabus has been designed to prepare students to learn techniques and methods commonly used in the IT sector.

As part of the curriculum, students study a range of topics, including computer architecture, data field and structures, complexity and advanced algorithms, statistical methods in AI, programming language principles, design and analysis of algorithms, optimization methods, principles of information security, operating systems, and distributed systems.

In addition, students should enroll in courses related to computer science in addition to the standard curriculum. Students develop specialized expertise by taking elective courses in advanced computer science techniques. Students can earn PhD Computer Science degrees that meet both their professional and academic needs. The PhD Computer Science curriculum emphasizes the latest developments in research. The PhD Computer Science syllabus PDF can be downloaded online for free. The following is the PhD Computer Science syllabus semester-wise: 

PhD Computer Science First Year Syllabus

Semester I

Semester II

Computer Architecture

Design and Analysis of Algorithms

Data Files and Structures

Optimization Methods

Complexity and Advanced Algorithms

Principles of Information Security

Statistical Methods in AI

Operating Systems

Programming Language Principles

Distributed Systems

PhD Computer Science Second Year Syllabus

Semester III

Semester IV

Database Systems

Advanced Image processing

Computer Networks

Advanced Operating Systems

Compilers

Computer Vision

Advanced Algorithms for Graph and Combination Optimization Problems

Cryptology

Advanced Database Theory and Applications

Data Mining

PhD Computer Science Third Year Syllabus

Semester V

Semester VI

Database Management Systems

Pattern Recognition and Coding Theory

Computational Algebra

Machine Learning: Theory and Practice

Information and Coding Theory

Research Project

PhD Computer Science Course Subjects 

Doctoral Programs in Computer Science last for 3-5 years. The PhD Computer Science syllabus is divided into six to ten semesters with an annual exam. PhD Computer Science course subjects allow students to learn computer science techniques that can be applied to the workplace. PhD Computer Science subjects are highly regarded in the IT field. Students enrolled in PhD Computer Science courses gain a thorough understanding of computer scientists' skills and techniques.

The PhD Computer Science includes subjects such as computer security, database systems, compilers, software engineering, computational theory, along with the topics related to the Doctorate of Philosophy in Computer Science. In order for students to become familiar with PhD Computer Science and build their knowledge, the curriculum is semester-based. In addition to classroom lectures, students will take part in lab sessions to gain experience in advanced options. The three to five-year program offers more diverse electives and academic core subjects. The following are the PhD Computer Science subjects list: 

  • Database Systems
  • Computer Networks
  • Advanced Algorithms for Graph and Combinatorial Optimization Problems
  • Advanced Database Theory and Applications
  • Advanced Image Processing
  • Advanced Operating Systems
  • Computer Vision
  • Data Mining
  • Database Management Systems
  • Computational Algebra
  • Information and Coding Theory
  • Pattern Recognition and Image Processing
  • Machine Learning: Theory and Practice

PhD Computer Science Course Structure 

A PhD Computer Science takes three to five years to complete. During a PhD in Computer Science, the curriculum is divided by six to ten semesters and the exam is held annually. There are several elective and core courses offered in the PhD Computer Science program. The first year of PhD subject study focuses on introducing students to the fundamentals.

During the second year, students study a specific subject within a PhD Computer Science course related to their specialization. Additional laboratory sessions are available in the PhD Computer Science courses to enhance theoretical understanding.

Doctorate of Philosophy in Computer Science students study design and analysis of algorithms, optimization methods, principles of information security, operating systems, and distributed systems. Students will be prepared for greater responsibilities in their careers upon completion of the PhD Computer Science course. A research project must be completed by the end of the semester in order to gain practical and theoretical skills. As a general overview, we have the following structure: 

  • VI to X Semesters
  • Core Subjects
  • Elective Subjects
  • Practical Workshops
  • Research Project/Thesis Submission

PhD Computer Science Teaching Methodology and Techniques 

In the PhD Computer Science curriculum, new technologies are integrated into the teaching of computer science. As well as lectures and practicals, students have the opportunity to take electives from a wide range of specializations. Students are required to complete internships or training in their areas of study as part of their core curriculum. By teaching methodologies, skills for the workplace can be developed. Alternatives to traditional classroom instruction include using emerging technologies. Teaching methods include the following in general: 

  • Traditional Classroom Method
  • Class Projects
  • Problem Solving Approach
  • Computer Assisted Learning
  • Brainstorming
  • Audio Visuals
  • Virtual Lab Exercises
  • Discussion Method
  • Industrial Visit

PhD Computer Science Projects 

The PhD Computer Science curriculum includes research projects that help students gain experience managing projects in IT companies. PhD Computer Science projects will teach students about factors that influence the success of research projects and strategies for implementing them. PhD Computer Science students have the opportunity to gain valuable experience by networking with IT companies. To gain practical and theoretical skills, students must complete a research project by the end of the semester. These are some of the most popular PhD Computer Science project topics: 

  • Development of Graph- Embedding Techniques for Biomedical Knowledge Graphs.
  • Impact of Visual Images on Verbal Fluency in People Living with Dementia.
  • Causal Models for Mental Health Interventions that are Interactive.
  • The Learning of User Models in Human-in -the Loop Machine Learning.
  • Automated Experimental Design with Humans in the Loop.
  • Secure and Privacy-Preserving FAIR Data Vault Aggregation and Analysis.
  • Masters by Research Sponsored by Business with SDG Changemakers.
  • Studying Fall Risk in Parkinson’s Disease Patients in Real-Life Settings.
  • Robert Gordon University Presents Natural Language Generation for the ISee Explainable AI Platform.
  • The Foundational Theories of Effective Types.
  • The Development of an Intervention to Protect Older People from Cybercrime.

PhD Computer Science Course Reference Books 

Both online and offline book stores offer a variety of titles and publishers for PhD Computer Science books. All major topics are covered in PhD Computer Science course books, along with background information on various computer science fields. These reference books can be downloaded online for free in PDF format and are meant to clarify concepts. Students enrolled in a PhD Computer Science program may have different coursebooks depending on the edition. Purchasing reference books is a wise investment after thorough research. The following books would be helpful to students pursuing a PhD Computer Science course: 

PhD Computer Science Books

Name of the Books

Authors

Big Data and Social Science

Ian Foster, Rayid Ghani, Ron S. Jarmin, Frauke Kreuter

Visualization and Optimization

Christopher V. Jones

Biomedical Informatics

Edward H. Shortliffe, James J.Cimino, Michael F. Chiang

Computer Science Education Research

Sally Fincher

The Opex Analytics Weekly Puzzle, Volume II

Larry Snyder, Hansel Gonzalez

Handbook of Research on Integrating Computer Science and Computational Thinking in K-12 Education

Jared Keengwe, Patrick Wachira

Mathematical Optimization Theory and Operations Research

Yury Kochetov, Igor Bykadorov, Ttiana Gruzdeva

An Introduction to Computational Science

Allen Holder, Joseph Eichholz

The Opex Analytics Weekly Puzzle

Dr. Larry Snyder

Engineering and Management of Data Centers

Gomez

phd books for computer science

Get Free Scholarship worth 25000 INR

phd books for computer science

cd_logo

  • Study Abroad Get upto 50% discount on Visa Fees
  • Top Universities & Colleges
  • Abroad Exams
  • Top Courses
  • Read College Reviews
  • Admission Alerts 2024
  • Education Loan
  • Institute (Counselling, Coaching and More)
  • Ask a Question
  • College Predictor
  • Test Series
  • Practice Questions
  • Course Finder
  • Scholarship
  • All Courses
  • B.Sc (Nursing)

PhD Computer Science Syllabus, Subjects, Entrance Exam, Yearly, Semester, Projects, Books

phd books for computer science

Collegedunia Team

Content Curator

PhD in Computer Science and Engineering is a 3 to 5 years full-time research program in computer science that deals with the study of Machine learning, Rough Set theory, Research Methodology, Data Mining, etc.

The minimum eligibility criteria for PhD in Computer Science Admissions is M.Phil in computer science or equivalent degree with 55% marks in aggregate.

Candidates can get jobs like Software Engineer, Data Administrator, Application Developer, Authors, Application Analyst, and so on after completing the Ph.D. course. 

Table of Contents

  • Ph.D. Computer Science Course Details
  • PhD Computer Science Subjects
  • PhD Computer Science Syllabus
  • PhD Computer Science Books
  • PhD Computer Science Entrance Exam Syllabus

5.1 JNU Entrance Exam

IGNOU PhD Computer Science Syllabus

7.1 Teaching Methods

7.2 Projects

  • PhD Computer science Syllabus: FAQs

PhD in Computer Science Course Details

Course Level Postgraduate Level
Time Period 3 Years
Fee Details INR 10,000-2,75,000
Eligibility Criteria Minimum of 55% marks in Post Graduation
Starting Salary INR 2-5 LPA
Admission Process Entrance Exam and Merit-Based
Job Opportunities University professor, Industrial R&D Lab professionals, Start-Up mentors, Authors, Senior research scientist and others.

PhD in Computer Science Subjects 

  • Research Methodology - This includes choosing methods that are appropriate for research aims and objectives and understanding the limitations of particular research methods. Topics like Meaning and objective of Research Methodology, Motivation in research, types of research, different Research Approaches, the significance of the research, Research Methods versus Methodology.
  • Performance Analysis of Wireless Sensor Network - Students will get to know more about Localization, Fundamentals of Genetic Algorithms, Genetic Modelling etc 
  • Short Range Wireless Communication -Students will get to know about to know the calculation of different performance metrics corresponding different communication systems.
  • Methods of Advanced Wireless Communication Systems - This will guide students regarding Understanding various short-term and long-term communication systems. Topics like the Evolution of mobile radio communications, paging systems, Cordless telephone systems, and comparison of various wireless systems. 

Ph.D. in Computer Science Syllabus

A detailed description of the topics in Computer Science are listed in tabular form below:

Syllabus
Research Methodology
Data Mining
Machine Learning
Rough Set Theory
Fuzzy Logic
Simulation and modeling
Web engineering
Artificial intelligence
Software architecture and testing
Thesis report

PhD in Computer Science Books

Book Name Author
Research Methodology: Concepts and Cases Deepak Chawla , Neena Sondhi. (2016
Research Methodology – Methods and Techniques. 2 nd Edition C.R. Kothari. (2018)
Artificial Intelligence and Machine Learning. .Chandra .S.S.V. (2014).
Neural Networks and Fuzzy Logic. 1stEdition, Tata Mcgraw Hill, Delhi(2012). Dr.R.P.Das
The Internet of Things in the Cloud:A Middleware Perspective-– CRC Press . HonboZhou .
Cloud Security: A Comprehensive Guide to Secure Cloud Computing. New Delhi: Wiley –India Ronald, L. Krutz, Russell Dean Vines
The Book of JavaScript: A Practical Guide to Interactive WebPages. Thau. (2008)

Phd Entrance Exam Syllabus for Computer Science 

UNIT 1: Discrete Structure and Optimization
Mathematical Logic Graph Theory
Sets and Relations Boolean Algebra
Counting,Mathematical Induction and Discrete probability Optimization
Group Theory -
UNIT 2: Computer System Architecture
Digital Logic circuits and components Microprogrammed Control
Data Representation Central Processing Unit
Register Transfer and Microoperations Pipeline and Vector processing
Basic computer organization and design Input-Output organization
Programming the basic computer Memory Hierarchy
- Multiprocessors
UNIT 3: Programming Language and Computer Graphics
Language Design and Translation Issues Programming in C++
Elementary Data types Web programming
Programming in C Computer Graphics
Object oriented Programming 2-D Geometrical transforms and viewing

JNU Ph.D. Computer Science Entrance Exam Syllabus

JNUEE is conducted by National Testing Agency (NTA) to offer admissions to aspirants in undergraduate and postgraduate programs. The Syllabus of JNUEE varies according to the course. The detailed syllabus will be provided by the conducting authority on the date of notification. 

Technology Stream Life Science Stream
Basic Engineering & Technology Life Sciences (Biochemistry, Molecular Biology & Immunology)
Physics/Chemistry/Maths of undergraduate level Physics/Chemistry
Fundamental Life Sciences and Informatics Maths, Computer & Information Sciences
Mathematics General Aptitude
Real series analysis Current affairs
Differential equations General Science
Statistics and probability History of India
Modern Algebra and Matrix Theory -
Theory of Equation -
Numerical analysis -
Calculus and analytical geometry -
Trigonometry -
Computer Science
Representation of characters Binary and hexadecimal representations
Organization of a computer Floating point representation of numbers
Data structures Fundamentals of Computer
Integers and fractions Boolean algebra
Input/output devices Venn diagrams
Computer memory Computer Organisation
Central Processing Unit Binary arithmetic
C Language Truth tables

The Indira Gandhi National open university offers many courses for candidates who clear NTA IGNOU PhD . The Entrance exam holds for 70% weightage and 30% weightage for personnel interviews It is important that applicants must start preparing for the exam right after submitting their application to use their time effectively.

Type Of Questions Multiple Choice Questions
Total Questions 100 (50% on Research Methodology and 50% on Specific Subject)
Negative Marking No negative marking
Test Duration 3 Hours (180 minutes)
Total Marks 400 Marks

Ph.D. Computer Science Course Structure 

Ph.D. Computer Science course takes three to five years to complete. The curriculum is divided into six to ten semesters and the exam takes place annually. There are many cores and elective courses offered in the Ph.D. Computer Science program. This course teaches students about research terminology, ethical research principles, ethical challenges and approval processes. Students will be taught about quantitative, qualitative and mixed methods approaches to research.

Ph.D. in computer science includes a research project that must be completed by the end of the semester in order to gain practical and theoretical skills. The course structure of the computer science program is as follows:

  • Theoretical knowledge
  • VI to X Semesters
  • Core Subjects
  • Elective Subjects
  • Practical Workshops
  • Research Project/Thesis Submission
  • Pedagogical methods 
  • case discussion and assignment

Ph.D. Computer Science Teaching Methodology and Techniques

In this course, while teaching computer science new technologies are integrated that are beneficial for students. The skills of students are enhanced for the workplace by different teaching methods. The teaching methods that are used are listed below:

  • Traditional Classroom Method
  • Case discussion and assignment
  • Class Projects
  • Problem-Solving Approach
  • Industrial Visit
  • Computer Assisted Learning
  • Audio Visuals
  • Virtual Lab Exercises
  • Brainstorming
  • Discussion Method

Ph.D. Computer Science Projects 

Ph.D. in computer science projects is designed to help students to gain theoretical and practical skills. It will teach students about factors that influence the success of research projects and the strategies on how to implement them. The list of most popular Phd Computer Science project topics is stated below:

  • Causal Models for Mental Health Interventions that are Interactive.
  • Development of Graph- Embedding Techniques for Biomedical Knowledge Graphs.
  • Automated Experimental Design with Humans in the Loop.
  • Impact of Visual Images on Verbal Fluency in People Living with Dementia.
  • Performance evaluation of AI and IoT-enabled Smart Wheelchair
  • (MRD DTP) Understanding how psychedelic drugs affect the brain and behavior in rodents
  • The Learning of User Models in Human-in -the Loop Machine Learning.
  • Secure and Privacy-Preserving FAIR Data Vault Aggregation and Analysis.
  • Masters by Research Sponsored by Business with SDG Changemakers.
  • Studying Fall Risk in Parkinson’s Disease Patients in Real-Life Settings.
  • Robert Gordon University Presents Natural Language Generation for the ISee Explainable AI Platform.
  • The Development of an Intervention to Protect Older People from Cybercrime.

Phd in Computer Science Syllabus : FAQS

Ques. Should I do Phd computer science?

Ans. Candidates can pursue Ph.D. in computer science if they are interested in the computer science field or interested in high-level research in computer science with the potential for transformational research.

Ques. Is Ph.D. computer science a difficult course?

Ans . The course is easy to handle if you invest your time wisely in learning relevant disciplines

Ques. What is the duration of the Ph.D. Computer Science course?

Ans . The duration of the Ph.D. in a computer science course is a three to five-year-long program.

Ques. Which colleges offer Ph.D. Computer Science courses in India?

Ans. There are various colleges for Ph.D. in computer science courses which are listed below:

Name of the College/Institute Average Fees (INR)
13,870
74,850
45,000
2,22,000
20,500
19,670
16,000
41,000
72,000
1,19,000
73,200
93,200

Ph.D. (Chemistry)

Ph.d. (physics), ph.d. (mathematics), ph.d. (biotechnology), ph.d. (zoology), bachelor of arts [ba], ph.d. (business management), master of science [ms], master of science [m.sc] (nursing), certificate course in stock market, bachelor of science [b.sc] (nautical science), ph.d. (computer science), master of laws [l.l.m.], diploma in web designing, master of technology [m.tech] (data analytics), ph.d. (computer science) colleges in india.

Jamia Millia Islamia University-[JMI]

Jamia Millia Islamia University-[JMI]

Banaras Hindu University - [BHU]

Banaras Hindu University - [BHU]

Anna University - [AU]

Anna University - [AU]

Panjab University - [PU]

Panjab University - [PU]

Acharya Nagarjuna University - [ANU]

Acharya Nagarjuna University - [ANU]

Jawaharlal Nehru University - [JNU]

Jawaharlal Nehru University - [JNU]

Presidency College

Presidency College

Ramakrishna Mission Residential College - [RKMRC]

Ramakrishna Mission Residential College - [RKMRC]

Subscribe to our news letter.

downloadapp_banner image

Email forwarding for @cs.stanford.edu is changing. Updates and details here .

  • Emphasis Areas
  • Computer Science

Computer Science Ph.D.

Application Requirements for Computer Science Ph.D.

View Degree Plan

Download CS Course Checklist (Excel)

Degree Requirements

  • COMPUT 601 – Introduction to Graduate Studies (1 credit)

Required Core Courses (9 credits):

  • CS 521 – Design and Analysis of Algorithms (3 credits) OR CS 561- Theory of Computation (3 credits)
  • CS 552 – Operating Systems (3 credits)
  • CS 573 – Advanced Software Engineering (3 credits)

Elective Courses (19 credits):

  • Must be approved by the supervisory committee and Computing Program directors. Pre-approved electives and specific requirements are given in the  student handbook

Comprehensive Exam (1 credit):

  • COMPUT 691 Doctoral Comprehensive Examination (1 credit)

Dissertation (30 credits):

  • COMPUT 693 Dissertation (30 credits)

Total Credits: 60

Content on this page is provided as a quick reference for planning. All official degree requirements are published on the  Graduate Catalog site .

PhD in Computing

  • Follow us on X
  • Follow us on Youtube
  • Follow us on Linkedin

phd books for computer science

The Top 11 Computer Science Books for Self Study [2023]

By Natalie Schooner on August 24, 2022

Last updated on January 24, 2023

Curated backend podcasts, videos and articles. All free.

Want to improve your backend development skills? Subscribe to get a copy of The Boot.dev Beat in your inbox each month. It's a newsletter packed with the best content for new backend devs.

In today’s modern, fast-paced world, we look to StackOverflow, Reddit, and hands-on courses to learn about computer science and software engineering. But there are some real benefits to using books as an additional resource.

When studying computer science, books are:

  • Reputable. Anyone can publish a blog post; only experts who are carefully vetted can write a book through a publisher. If they didn’t go through a traditional publishing house, then reviews and word-of-mouth can let you know if it’s a good information source or not
  • Written for comprehension. A book is written to be read . A blog is written to rank in Google .
  • Easily selected. Online, you have to trust SEO to deliver the best results. Something titled ‘for beginners" might not actually be for beginners. Books, thanks to a more rigorous selection process, tend to be better marketed. The titles are also more descriptive and less clickbait.
  • Structured for completion. A blog will give you a solitary answer. A book will give you the answer in the context of all the other information you need to make sense of that answer.
  • Satisfying to hold. As a computer scientist, I’ve spent a lot of time staring at screens. Sometimes it’s nice to hold something physical for a change.

If you want to construct a comprehensive, learnable, achievable computer science curriculum for yourself, it’s wise to include books as a key starting point.

Persuaded? Good. Let’s talk about the best CS books out there.

Author’s note: you can find many of these computer science books in PDF format. I’m linking to places where you can buy them because I believe in supporting and respecting the authors if you have the funds to do so. But, if you don’t, then I also believe in learning without limits. If you download a PDF of one of these books and it helps you get a job later on, consider supporting that author financially as a thank-you. If you do find free resources, make sure they’re legal .

Top CS Books for Beginners 🔗

If you’re just starting out learning to code, these are the best textbooks. I’ve done my best to compile a list of books about CS that don’t require a lot of knowledge, are geared for beginners, and help you hit the ground running. That said, I highly recommend not starting with books as your primary medium for learning computer science in 2023. Interactive courses that force you to write real code and provide immediate feedback are a much better way to learn. Check out Boot.dev if that style of learning sounds interesting to you.

1. Everything You Need to Ace Computer Science and Coding in One Big Fat Notebook 🔗

This computer science book is aimed at middle-school kids, to be clear. But it’s a wonderful starting point to understand the fundamentals of computer science and get to grips with coding.

  • Computing systems
  • Binary code
  • Computational thinking
  • Loops, events, and procedures
  • Programming in Scratch and Python
  • Boolean Expressions
  • Web development
  • Cybersecurity

The teaching style is designed to make it absorbable. The authors use mnemonic devices to help you remember tricky concepts. The book is stuffed with diagrams, definitions, and everything else you need to get to grips with the concept.

The best part for me? It assumes absolutely no prior knowledge. It’s a great place to get started learning computer science.

Useful review:

“I’m an adult who always felt intimidated by coding. This was a nice way to introduce me to the world of coding basics. Elementary but just what I needed to start learning.” – Rebecca, and Amazon reviewer

2. Beginning Programming All-In-One for Dummies 🔗

It’s all in the name, isn’t it? Some of the best computer science books treat you like you’re five. It’s a complex subject, and there’s no shame in starting at a very basic level.

This book covers both the fundamentals of programming as well as some updated use cases that will be good for you to learn, although many reviewers mention it’s heavy on C as a language. Here’s the curriculum:

  • The basics of coding, including writing and compiling code, algorithms, and data structures
  • Syntax of several different programming languages
  • Interesting programming opportunities such as conducting biological experiments within a computer or programming a video game engine
  • Cross-platform applications for desktop and mobile devices
“A great book for the following: Beginners People who want a summarizing overview on programming and related fields People such as myself, confused and badly educated in programming and in need of a start over with simple words and answering the 5-whys questions.” – Ahmed Hatem , a Goodreads reviewer.

3. Practical Programming: An Introduction to Computer Science Using Python 3.6 🔗

You may pick up a theme here: this is a proper computer science textbook, created for computer science students.

I like this CS book for beginners because it shows you the fundamentals through Python, which I believe is one of the predominant CS languages out there. By grounding it all in Python, it can walk through the concepts and theories, then use real code to show exactly what it means.

The curriculum in the book description is short: “Learn about design, algorithms, testing, and debugging.”

“It is a great book for people who want to dive into world of programming. Python language is programming language is fast to learn and easy to use for many applications. The book covers a lot of subjects in a comprehencive [sic] manner.” – Erdem Yiğitolu , a Goodreads reviewer.

Top Computer Science Books to Get a Programming Job 🔗

The books above should help you get to grips with the concepts and theories that underpin computer science. However, as many self-taught computer scientists could tell you, there’s a lot you need to learn between understanding the theory of computer science and being ready to take on a computer science career.

1. The Self-Taught Programmer 🔗

The author, Cory Althoff, taught himself to code. Then he got a programming job. And then he learned everything he really needed to know about coding. That entire journey is in this CS book.

It’s fewer fundamentals, and more practicalities. It contains a ton of job-specific tips and tricks for learning to code. I loved his best coding practices section, which is an often overlooked but very important habit to your long-term computer science career.

Here are the five sections covered in this book:

  • Learn to program in Python 3 and build your first program.
  • Learn Object-oriented programming and create a powerful Python program to get you hooked.
  • Learn to use tools like Git, Bash, and regular expressions. Then use your new coding skills to build a web scraper.
  • Study Computer Science fundamentals like data structures and algorithms.
  • Finish with best coding practices, tips for working with a team, and advice on landing a programming job.

Helpful review:

“I am an HVAC designer by trade (no programming at all). After reading this book I feel equipped to change careers if I ever wanted to! This book lays things out very well and let’s you get straight to the coding! Don’t worry, theory is discussed too, but this book focuses on practicality…which is rarely used as a starting point in any engineering discipline. 10/10 would recommend.” – Brian , an Amazon reviewer.

2. Clean Code: A Handbook of Agile Software Craftsmanship 🔗

I love clean code so much that I included a whole book about the best coding practices.

To become a better (and more employable) programmer, it’s growing ever-more critical to learn how to code cleanly. This book involves a lot of reading code, so put on your glasses and get ready to learn by doing.

The curriculum is:

  • The principles, patterns, and practices of writing clean code.
  • Case studies of increasing complexity in cleaning up code from scruffy to efficient.
  • Heuristics and “smells” gathered while creating the case studies, so you can better detect and fix unclean code.

This CS book hopes to teach you how to make your own code clean, and how to help anyone else on that journey, too. It touches on naming conventions, error handling, and readability. Overall, if you think you might want to be a developer, software engineer, project manager, team lead, or systems analyst, this book will be helpful.

Note: It primarily trucks with Java and object-oriented languages, so if that’s not your bag, this book may not be a great fit, though the theories of clean code will still be useful to learn.

“I would consider this an essential read for software developers. This book conveys the fundamentals of writing clean code, whose importance cannot be overstated.” – Paul Sochiera , a Goodreads reviewer.

3. Code Complete 🔗

Code Complete is a CS book that helps developers write better (more efficient, faster, more useful) code for their employers. It’s won the popular vote – one StackOverflow question rated it the #1 programming book out there! It’s kind of like Clean Code, but from a career-oriented perspective. What I really love about it is how many real coding samples it uses to illustrate its points. It’s also better at being language-agnostic in its teachings.

Here’s the curriculum:

  • Design for minimum complexity and maximum creativity
  • Reap the benefits of collaborative development
  • Apply defensive programming techniques to reduce and flush out errors
  • Exploit opportunities to refactor–or evolve–code, and do it safely
  • Use construction practices that are right-weight for your project
  • Debug problems quickly and effectively
  • Resolve critical construction issues early and correctly
  • Build quality into the beginning, middle, and end of your project
“Every day I code, I apply a lesson I learnt from this book. It has helped a lot.” – Elijah Oyekunle , a Goodreads reviewer.

I also really liked Erika RS’s review of the book, which did a high-level summary of every section.

4. The Pragmatic Programmer 🔗

This is one of the old standbys of the genre. If you’re a programmer, you know and love PragProg. If you’re not yet, you will soon. It’s one of the rare computer science books that is fun, entertaining, and written to delight you as much as to entertain you. It makes for easy and enjoyable reading.

  • ​​Fight software rot
  • Avoid the trap of duplicating knowledge
  • Write flexible, dynamic, and adaptable code
  • Harness the power of basic tools
  • Avoid programming by coincidence
  • Solve the underlying problems of concurrent code
  • Guard against security vulnerabilities
  • Test ruthlessly and effectively, including property-based testing

The authors say their audience is for new coders all the way on up to software project managers. I did find I needed some knowledge to fully understand and appreciate this book. It’s written for people to improve themselves in their computer science career, not necessarily who want to start one with this book.

That said, it was a phenomenal read.

“The information contained in this book is essential for software developers who want to develop their skills and knowledge into a craft worthy of renown, to become masters of the field. It is essential for anyone working in a team or working solo.” – Tamara , a Goodreads reviewer.

Top Specific Subject Computer Science Books 🔗

Computer science is an impossibly large field. You can read every single one of the books listed above and still need more knowledge in certain areas. Plus, most jobs will ask that you know some more than just the basics in certain areas.

Here are some more specialist books that are worth reading.

1. Cryptography Made Simple 🔗

Anyone who claims to make learning cryptography simple must be looked at with a certain degree of skepticism. And yet, hats off to Nigel, he really did it. (Or as best as anyone can claim to make cryptography simple.)

This book is about the basics of infosec. If you want to read this, you should know basic discrete mathematics, probability, and elementary calculus before you dive in. It’s written as a textbook for college students, but it’s also recommended for professionals in infosec.

The curriculum is as follows:

  • Some mathematical background, including logarithms, elliptic curves, primality testing, and lattices
  • Historical ciphers, including the Enigma machine, Information Theoretic Security, and historical stream ciphers
  • Modern cryptography basics, such as modern stream ciphers, block ciphers, hash functions, and public key encryption
  • Advanced protocols, covering secret sharing schemes, zero-knowledge proofs, and secure multi-party computation
“It provides a good introduction to modern crypto as well as the maths behind it. It provides some great chapters about classical ciphers and why they are not sufficient. Proofs are often outlines or gloss over detail which makes the book a lot easier to read..” – review from an unnamed Amazon customer.

2. Introduction to Algorithms 🔗

This computer science tome (I hesitate to even call it a book) is considered the algorithm textbook. What I love most about it is that it uses pseudocode. We know languages come and go like the tides; keeping it language-agnostic makes it relevant in perpetuity. This latest edition does make some concessions towards modernity, including chapters on bipartite graphs, online algorithms, and machine learning.

Here’s what you can expect this book to cover:

  • Sorting and order statistics
  • Data structures
  • Advanced design and analysis techniques
  • Advanced data structures
  • Graph algorithms
“This book is a must-have on the shelf of any computer scientist, and any practical programmer who wants to write more efficient code. Pick it up!” – Alex’s Goodreads review.

3. Computer Systems: A Programmer’s Perspective 🔗

Hardware and architecture is a must-cover topic for any computer scientist. This book does a good job of addressing those knowledge gaps. You can expect to learn about hardware architecture, the operating system, and systems software.

It’s not geared for beginners: you’ll need access to a Linux system, and you should be familiar with C or C++.

  • Computer systems
  • Machine-level representation of programs
  • Processor architecture
  • Optimizing program performance
  • The memory hierarchy
  • Virtual memory
  • System-level I/O
  • Network programming
  • Concurrent programming
“This is an easy-to-follow book that covers how computers work from the level of processors up to web servers. It’s written for computer science students, and goes into a lot of detail about modern operating systems concepts such as virtual memory, processes, and signals. I had a lot of experience programming before reading this, but the book definitely clarified my thinking on many topics.” – Morgan, a Goodreads reviewer.

4. The Practical SQL Handbook 🔗

Databases aren’t just SQL nowadays, but SQL is still a great place to start with databases. This book is perfect to understand how to build tables, define the relationship between tables, load data into a database, query the database of information, and get a good foundation in the fundamentals of database design.

Curriculum notes:

  • Detailed coverage of SQL commands for creating databases, tables, and indexes, and for adding, changing, and deleting data
  • Using the SELECT command to retrieve specific data
  • Handling NULL values (missing information) in a relational database
  • Joining tables, including self joins and outer joins (ANSI and WHERE-clause syntax)
  • Working with nested queries (subqueries) to get data from multiple tables
  • Creating views (virtual tables) to provide customized access to data
  • Using SQL functions
“I finally learned the right way to build databases for use with SQL. In the last eight years, it has repeatedly come off the shelf to solve my problems.” – David , a Goodreads reviewer, reviewing an earlier edition.

Final thoughts on the best books for computer science 🔗

This is necessarily a subjective list - what worked for me might not be to your taste or needs. I recommend looking at Amazon reviews, Goodreads reviews (which are often less gamified and thus are more trustworthy), and the table of contents.

I also know a lot of these books are expensive. If you’re in a place where you can afford that, amazing - definitely support those authors. But if you can’t, don’t feel too guilty about looking for that PDF instead. Be careful, ensure you’re downloading legal material and that you don’t download any viruses by mistake. You should also check your local library – I’ve been surprised by how well-stocked mine is in computer science books.

Peruse this list and see which books look like they’ll solve your needs. The truly amazing thing about living in today’s world is you can teach yourself to become a computer scientist with just a little outside guidance. While blogs, videos, courses, and classes all have their place, it’s important to remember that books are a wonderful source of learning, too.

Find a problem with this article?

Related articles.

phd books for computer science

A Complete Overview of Computer Science for Beginners

Aug 21, 2022 by taryn brewer.

Learning how to get into computer science can be a daunting task. There are so many career paths down which a computer education can take you, so many programming languages to master, and so many skills to learn.

phd books for computer science

What is the Future of Computer Science?

Aug 16, 2022 by natalie schooner.

In a word, the future of computer science is promising. In a few more words, the future of computer science is promising, but with challenges to overcome.

phd books for computer science

What Are the Career Options in Computer Science?

Aug 01, 2022 by taryn wagner.

The future is bright for career options in computer science with remote work opening up doors that weren’t present before.

phd books for computer science

6 Undeniable Reasons to Learn Computer Science

May 10, 2022 by zulie rane.

Is it a bit dramatic, perhaps, to say that the fate of the world rests on computer science and that’s why you should learn computer science?

Computer Science Degree Hub Logo

Top 10 Must-Read Books for Computer Science Majors

computer science books

Every subject has its required reading, and Computer Science is no different. As with any area of study, Computer Science has a history, various processes, and enough differing opinions to fill a library.

For this list, we’ve found the Top 10 Must-Read Books for Computer Science Majors. The books on this list run the gamut, from biographies of industry legends, to book-length love letters to the earliest computers, to how-tos. While the books themselves vary dramatically, each book on this list is a classic, has remained a timeless addition to the constantly changing field of Computer Science, and reflect the love any successful Computer Science major should feel towards his chosen skill.

1. Algorithms to Live By: The Computer Science of Human Decisions

Brian christian and tom griffiths.

As every busy college student knows, our lives are constantly being constrained by limited time and space — what should be accomplish in a day? What is okay to leave undone in a lifetime? How much messiness and disorganization is an acceptable amount? In Algorithms to Live By, author Brian Christian and cognitive scientist Tom Griffiths describe how simple, yet precise, algorithms like those used by computers can also untangle important human questions. In fascinating chapter after fascinating chapter, the two explain everything from how to have better gut feelings, to knowing when to leave things to chance, to dealing with an overwhelming number of choices, to figuring out how to best communicate with others.

2. The Soul of a New Machine

Tracy kidder.

Tracy Kidder’s The Soul of a New Machine is one of the few must-read histories about the world of Computer Science. First published in 1981, Kidder’s classic remains one of the most highly regarded books about computers to ever hit the shelves. The Soul of a New Machine carefully recounts the drama, comedy, and excitement of the early years of computers, at the time when there was but one company making the effort to bring a new microcomputer to the mass market. Computer Science majors will also appreciate the go-for-broke approach to business that is only briefly referenced here, but has become an approach that so many high-tech companies still maintain.

3. Superintelligence: Paths, Dangers, Strategies

Nick bostrom.

As Hollywood has been asking for years, what happens when machines surpass humans in general intelligence? Will artificial agents save or destroy us? In Superintelligence, author Nick Bostrom attempts to answer that question and others by laying a foundation for understanding the future of humanity and intelligent life. He takes readers on a fascinating journey that begins with thoughts on the human condition and ends with the sometimes terrifying future of intelligent life. Bostrom’s important questions and themes that hinge on morality make Superintelligence a must-read for anyone aspiring to greatness in the world of computer science.

4. Hackers: Heroes of the Computer Revolution

Steven levy.

Still considered required reading by some, Steven Levy’s “Hackers” was written long before the idea of hacking took on such a negative connotation. The titular hackers include everyone from Steve Jobs to Bill Gates (before they were the icons we know now), and even the lesser known Slug Russell and Lee Felsenstein, both of whom played an important role in the development of the personal computer. While Hackers is mostly a look at industry history, Computer Science majors will love the charmingly optimistic Hacker Ethic, which includes such noble concepts as “Hackers should be judged by their hacking, not criteria such as degrees, age, race, sex, or position;” “Computers can change your life for the better;” “All information should be free;” and “You can create art and beauty on a computer.”

5.Code: The Hidden Language of Computer Hardware and Software

Charles petzold.

In Code, author Charles Petzold asks the question: What do flashlights, the British invasion, black cats, and seesaws have to do with computers? Petzold’s answer is a fascinating look at the way we manipulate language and invent new means of communicating with each other. Complete with clever illustrations and references to familiar objects and events, Code is a great way to further understand — and respect — today’s world of PCs, digital media, and the Internet.

6. The Chip: How Two Americans Invented the Microchip and Launched a Revolution

In The Chip, T.R. Reid goes back to the spark that ignited the electronics revolution: the invention of the microchip. While a race to create the first chip was well underway at the major tech companies, Fairchild Semiconductor employee Robert Noyce and Jack Kilby of Texas Instruments took it upon themselves to individually create their own versions of the chip. What ensued was a long legal battle about which one had come up with the microchip first. Reid describes the whole story in fascinating detail, though the book was published just as Noyce was gaining fame as the industry’s statesman, and fifteen years after Kilby received the Nobel Prize for Physics.

7. The Second Machine Age: Work, Progress, and Prosperity in a Time of Brilliant Technologies

Erik brynjolfsson and andrew mcafee.

Computer Science majors will surely have heard of Google’s autonomous cars and its thousands of logged hours, or IBM’s Watson, who handily beat the best human Jeopardy! players. In The Second Machine, MIT’s Erik Brynjolfsson and Andrew McAfee reveal the driving forces behind such digital technologies as the Google car, and the reinvention of our lives and economy that comes with it. While simultaneously imagining the dazzling personal technology and near-boundless access held by the future, The Second Machine Age paints a not-so-pretty picture detailing the ways in which industries and professions of all kind will need to adapt — or die.

8. The Innovators: How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution

Walter isaacson.

Following the massive success of his Steve Jobs biography, bestselling author Walter Isaacson wrote The Innovators. Isaacson’s carefully researched and detailed book describes a number of people throughout history who have contributed to the computer and the internet. It includes such notable figures as Ada Lovelace, Lord Byron’s daughter, who pioneered computer programming way back in the 1840s; Vannevar Bush; Alan Turing; John von Neumann; J.C.R. Licklider; Doug Engelbart; Robert Noyce; Bill Gates; Steve Wozniak; Steve Jobs; Tim Berners-Lee; and Larry Page. Through its fascinating profiles, The Innovators will go a long way in offering Computer Science majors both a dose of history and a bit of inspiration with which to follow in such innovative footsteps.

9. Thinking in Systems: A Primer

Donella h. meadows.

This tiny, but important, book by the late Donella H. Meadows has been called the “essential primer” for bringing systems thinking out of the realm of computers and equations and into the real world. Meadows compares some of the biggest problems facing the world — war, hunger, poverty, and environmental degradation — to system failures, and declares that like a system failure, they cannot be solved by fixing one piece in isolation from the others. Thinking in Systems offers Computer Science majors a fascinating look at the world in familiar language, and shows firsthand why and how their chosen major can be the first step toward finding proactive and effective solutions to the world’s biggest problems.

10. The Search: How Google and Its Rivals Rewrote the Rules of Business and Transformed Our Culture

John battelle.

When you search for something on the internet, chances are good that you use Google after immediately thinking, “I’ll Google it.” In The Search, John Battelle describes how Larry Page and Sergey Brin painstakingly battled other search engines, including Yahoo!, to make Google what it is today. Part of Battelle’s thesis is the idea that Google’s database of intentions — the repository and use of human curiosity, desires, and exploration — will prove to be the driving force behind the future of the tech world.

To read about more great computer books, head over to aboutgreatbooks.com for 50 All-Time Classic Books About Computers and Computing .

Related Resources:

  • 30 Best Data Science Books
  • How Much Do Computer Science Majors Make?

{{ activeMenu.name }}

  • Python Courses
  • JavaScript Courses
  • Artificial Intelligence Courses
  • Data Science Courses
  • React Courses
  • Ethical Hacking Courses
  • View All Courses

Fresh Articles

TripleTen Data Science Bootcamp: Insider Review

  • Python Projects
  • JavaScript Projects
  • Java Projects
  • HTML Projects
  • C++ Projects
  • PHP Projects
  • View All Projects

How to Build an Age Calculator in Python

  • Python Certifications
  • JavaScript Certifications
  • Linux Certifications
  • Data Science Certifications
  • Data Analytics Certifications
  • Cybersecurity Certifications
  • View All Certifications

DataCamp’s Certifications To Get You Job-Ready: Insider Review

  • IDEs & Editors
  • Web Development
  • Frameworks & Libraries
  • View All Programming
  • View All Development

The Best Computer for Android Development: Minimum and Recommended Specs

  • App Development
  • Game Development
  • Courses, Books, & Certifications
  • Data Science
  • Data Analytics
  • Artificial Intelligence (AI)
  • Machine Learning (ML)
  • View All Data, Analysis, & AI

Insider Review of DataCamp’s AI-Powered DataLab Tool

  • Networking & Security
  • Cloud, DevOps, & Systems
  • Recommendations
  • Crypto, Web3, & Blockchain
  • User-Submitted Tutorials
  • View All Blog Content

Last Mile Education Fund helps students cover costs while learning cybersecurity

  • Python Online Compiler
  • JavaScript Online Compiler
  • HTML & CSS Online Compiler
  • Certifications
  • Programming
  • Development
  • Data, Analysis, & AI
  • Online Python Compiler
  • Online JavaScript Compiler
  • Online HTML Compiler

Don't have an account? Sign up

Forgot your password?

Already have an account? Login

Have you read our submission guidelines?

Go back to Sign In

  • Courses, Books & Certifications

phd books for computer science

19 Best Computer Science Books for IT Students and Pros

Computer science is a broad and constantly evolving field — and that can make it feel overwhelming. 

Where do you start if you want to learn more? 

We’ve taken a look at some of the best computer science books and created a list for both beginners and IT professionals alike. These books serve as introductions, refreshers, and deeper explorations into the philosophies and real-world applications of computer science and programming .

  • Top Computer Science Books

You’re looking for the top computer science books. But first, you need to remember that computer science is a vast field. The top computer science books, including computer science audiobooks, will usually touch upon an array of skills, ranging from game development to systems administration.

Today, data analysis, cybersecurity, and programming are three of the fastest-growing disciplines within computer science. But computer science is much more than those three disciplines, as well. So, the best computer science books for beginners will usually be fairly broad in scope — from there, you can look for books in your areas of interest. 

  • The Best Books for Computer Science Majors

Computer science majors need to learn a little about everything. Perhaps you’re still getting your degree — or maybe you’re trying to decide whether you even want a computer science degree. These are the best books for computer science majors who are still exploring the basic principles of computer science, coding, and administration.

1. The Self-Taught Computer Scientist (Cory Althoff, 2021)

Image of Computer Scientist Book

Looking for the best books to learn computer science as someone with an intermediate background? An important beginner’s guide, The Self-Taught Computer Scientist is a great choice. It’s also a sequel to The Self-Taught Programmer. Both of these are excellent introductions to the discipline by an expert programmer and computer scientist. In this book, you’ll learn more about not only being a better programmer but also about how to ace programming job interviews. This book is perfect for those preparing to apply for jobs in the field, especially those who are moving from college to the workforce.

What You’ll Learn:

  • Data structures
  • Technical interviews and interview questions
  • Principles such as search trees and imported libraries

2. The Computer Science Book: A Complete Introduction (Thomas Johnson, 2024)

Image of Computer Science Introduction Book

You can find everything you need to know about computer science in a single book: this one! The Computer Science Book is a perfect review for those who have finished college, a great introduction for those who are just starting college, and a supplement for those beginning a computer science career. This lengthy book covers countless computer science topics, from databases to operating systems. 

  • The theory of computation
  • Concurrent programming
  • Programming languages
  • Distributed systems
  • Compilers and interpreters
  • Operating systems

Computer Science 101: Master the Theory Behind Programming

3. The Chip: How Two Americans Invented the Microchip and Launched a Revolution (T.R. Reid, 2001)

Image of the Chip Book

No discipline is complete without an overview of history. This book tells the story of Jack Kilby and Robert Noyce, and their discovery of the silicon microchip — the culmination of their pursuit to make computers smaller and faster. In The Chip , T.R. Reid walks us through the history of the microchip and its consequences. Readers will emerge with a deeper understanding of the computer revolution, the principles and philosophies behind it, and its economic drivers. 

  • The history of the Nobel Prize-winning microchip
  • How the information industry exploded 
  • How the numbers barrier was conquered

4. The Second Machine Age: Work, Progress, and Prosperity in a Time of Brilliant Technologies (Erik Brynjolfsson and Andrew McAfee, 2016)

The Second Machine Age Book

In this book, the two authors from MIT discuss the ramifications of new technologies and the impact they’ll have on the world. This book is an important overview of how computer science actually impacts the world, its importance to society at large, and the potential consequences of using technology unwisely. An optimistic, beautiful look at the true power behind computer science, this book is an inspiration for computer majors and those who are considering the industry.

  • How professions will change in the future.
  • How data sets can transform entire industries
  • How you can prepare for the “second machine age”

5. The Innovators: How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution (Walter Isaacson, 2014)

Image of the Innovators Book

In The Innovators , Walter Isaacson digs back into history to identify the driving forces behind the digital revolution. Walter discusses historical figures from Ada Lovelace to Larry Page, exploring how inventors and entrepreneurs shaped the field of computer science. Not only does this book showcase how the computer science industry has changed over time, but also how entrepreneurship, innovation, and teamwork have continued to shape the computer science industry in the modern era.

  • A history of computer science
  • How innovation and entrepreneurship fundamentally altered the landscape
  • What has separated inventors and entrepreneurs from the rest

6. Everything You Need to Know to Ace Computer Science and Coding (Workman Publishing, 2024)

Image of Ace Computer Science Book

From kids to teens, Everything You Need to Know to Ace Computer Science and Coding is the perfect book series for those who want to start learning early. This is a great gift book for someone who is heading into a computer science major, particularly those within the first two years of the discipline. This book is nearly 600 pages long, covering the intricacies of what computer science is , what a computer scientist can expect to do, and which specializations they might choose.

What You’ll Learn: 

  • The foundations of computing systems
  • Binary code and algorithms
  • Loops, events, and procedures
  • The basics of Python, HTML, and CSS
  • Web development
  • Cybersecurity
  • The Best Computer Science Books for Developers

When many people think of computer science, they think of programming and development — but other disciplines like cybersecurity and systems administration also exist. The best books for programmers and developers generally cover either overall programming theory or the basics of a specific language. 

7. A Programmer’s Guide to Computer Science (Dr. William Springer, 2019)

Image of Programmer's Guide to Computer Science Book

Ideal for bootcamp graduates, self-taught programmers, and college students, A Programmer’s Guide to Computer Science distills everything that a programmer or developer needs to understand about the field. This book covers the core fundamentals of computer science and speaks to what people need to know to decide whether this is the right path for them. This book is ideal for those who are still exploring the field or just getting started.

  • The basics of computer science for self-taught programmers
  • Algorithms, data structures, and data management
  • Problem-solving techniques and complexity theory

8. Code: The Hidden Language of Computer Hardware and Software (Charles Petzold, 2000)

Image of Code Book

Though an older book, Code is an excellent introduction to programming and development. Code digs deep into how programming works, covering its foundations and philosophies as well. This book is a must-read for those who are just digging deep into understanding how programming actually works, including real-world examples. Since it uses many illustrated examples, everyday objects, and real-world scenarios, it’s great for those struggling to bridge the gap between abstract coding and real problems.

  • The fundamental logic behind programming problems
  • How programming is used to affect our world
  • How computers interact with each other

9. C Programming Absolute Beginner’s Guide (Greg Perry, 2013)

Image of C Programming Book

Many programmers today began learning with either C or Java . Though C is a few decades old, it’s still an incredibly important language, as it’s considered foundational for many disciplines. Once you know C, it’s easy enough to learn about other programming languages. The C Programming Absolute Beginner’s Guide gives you everything you need to know about programming in C, even if you’ve never programmed before. 

  • The best free C programming tools
  • How C programs are written and designed
  • How to generate output and read input
  • Controlling programs through testing
  • Using loops and other techniques

10. Code Complete (Steve McConnell, 2004)

Image of Code Complete Computer Science Books

Code Complete can be seen as a technical manual for programming. Though it may be two decades old now, it digs more into the philosophy and architecture of programming rather than any specific language. This is a great book for both beginners and more advanced programmers who want to learn more about the discipline. Ultimately, most coding is just logic, and logical problems can be solved in logical ways — absent any programming syntax.

  • Complexity-based design
  • Collaborative development
  • Defensive programming techniques
  • Problem debugging

11. The Pragmatic Programmer (Andrew Hunt, 1999)

Image of the Pragmatic Programmer Book

Though it was written a while back, The Pragmatic Programmer is an important book about the basic analysis and structure of programming. This is a great starting point for those who need to know about programming but don’t want to have to dig into a specific language. The Pragmatic Programmer will tell you more about writing clean, elegant code. 

  • The core processes of software development
  • Writing flexible, dynamic, and adaptable code
  • Automating code with greater precision

12. Algorithms 4th Edition (Robert Sedgewick, 2011)

Image of Algorithms Computer Science Books

Using Java, this book presents basic algorithms that both analysts and programmers will need to know. Perhaps most importantly, Algorithms is a no-fuss manual that just covers algorithms. There is a companion website for the book hosted by Princeton that also includes code tests. This is the perfect manual for those who are digging into programming and those who are preparing for interview questions.

  • Java implementations
  • Test data, exercises, and answers
  • Dynamic visualizations
  • Programming assignments and checklists
  • The Best Computer Science Books for Data Scientists

Data science is one of the fastest-growing and developing fields of computer science. The best data science books look into the fundamentals of data science, its evolution, and its philosophies.

13. Algorithms to Live By: The Computer Science of Human Decisions (Brian Christian, 2017)

Image of Algorithms to Live By Book

How are algorithms able to help us understand people? In Algorithms to Live By , the author Brian Christian pairs with a cognitive scientist to better understand how technology is used to understand behaviors and decisions. Algorithms to Live By is perfect for those looking to go into data analytics, data science, or even marketing.

  • How data science is used to untangle human questions
  • Developing algorithms for real-time problems
  • When things cannot be effectively analyzed.

14. The Search: How Google and Its Rivals Rewrote the Rules of Business and Transformed Our Culture (John Battele, 2006)

Image of The Search Book

Really a history book, The Search talks about how Google was able to achieve supremacy within the search engine market. On a deeper level, The Search covers how search engines operate and how they impact business and decision-making processes. The search digs very deeply into the history of Google’s algorithm and how its analytics radically changed the playing field forever.

  • How the Google search engine was developed
  • The ramifications of search engines in decision-making
  • How search engine algorithms and analytics function

 15. Programming Collective Intelligence (Toby Segaran, 2007)

Image of Programming Collective Intelligence Book

In this book, Python is used to outline methods by which intelligence can be programmed. It includes filtering techniques, evolving intelligence, problem-solving, search engine algorithms, and much more. This is a book that is ideal for those who are trying to learn the fundamentals of machine learning — those who want to see actual examples of how this is used. 

  • How to design databases and web applications
  • How data sets can be mined and analyzed
  • How statistics can be analyzed and understood

16. Machine Learning for Hackers: Case Studies and Algorithms to Get You Started (Drew Conway and John Myles White, 2012) 

Image of Machine Learning for Hackers Book

In Machine Learning for Hackers , programmers interested in data management, analysis, and machine learning will find out more about how to implement these structures. This is designed for those who have relatively in-depth knowledge of programming already, and for those who are moving into programming from other backgrounds, such as business, government, or academic research.

  • How machine learning is used in the real world
  • How to predict things using machine learning
  • Optimization techniques and ciphers
  • Statistical analysis and recommendation systems
  • The Best Computer Science Books for Cybersecurity

Cybersecurity is another swiftly growing discipline in the tech world, in part because its challenges today are greater than ever. Cybersecurity is significantly different from programming, development, and data science, although it does have some crossover — which means those who are interested in cybersecurity or network administration will be reading different books.

17. Cybersecurity for Beginners (Raef Meeuwisse, 2017)

Image of Cyber Security for Beginners Computer Science Book

Cybersecurity for Beginners covers the essentials of cybersecurity for those who are just getting into the field or those who have a non-technical background. Today, cybersecurity is everyone’s responsibility and it intersects with everyone’s life, from securing your email passwords to your bank accounts. This presents cybersecurity in an easy to comprehend way, without a lot of jargon or difficult concepts.

  • The basic principles of cybersecurity
  • What makes cybersecurity so essential
  • Why cybersecurity is steadily becoming more of a challenge

18. Social Engineering: The Science of Human Hacking (Christopher Hadnagy, 2018)

Image of Social Engineering Book

A lot of cybersecurity isn’t about systems but rather about people. It’s people who represent the most significant vulnerabilities within systems. And it’s people who are hardest to defend against. Social engineering governs a type of cyberattack that uses people rather than machines; just convincing someone to give you their password can be much easier than trying to hack a system. This book covers the ins and outs of social engineering and what makes it so dangerous.

  • Common social engineering techniques
  • Defenses against social engineering
  • How social engineering is evolving

19. The Hacking Guide for Beginners: A Step by Step Guide (Ramon Nastase, 2018)

Image of the Hacking Guide Book

Who knows hacking better than hackers? In Introduction to Hacking , also referred to as The Hacking Guide for Beginners , Ramon Nastase goes through the most common methods of hacking from a hacker’s perspective. That includes the basics of Kali Linux (a security and hacker-based system), cybersecurity, Google hacking, and WordPress hacking. If you want to become a white hat hacker or just secure your own systems, this is a great book for you.

  • The basics of hacking
  • Kali Linux, WordPress security, and Google hacking
  • Cryptography, digital signatures, and hiding your tracks
  • Beyond the Top Computer Science Books

Above, we’ve covered some of the best books on computer science. But even with the best computer science books, you generally need some real-world experience. Quite a few programmers, developers, cybersecurity experts, and network administrators are self-taught individuals who either learned through practice or on the job.

While a book is a great introduction, it must be combined with work.  If you want to learn more about computer science, don’t stop with computer science books. Consider getting an online computer science degree , attending a computer science bootcamp , or just starting a few beginner’s lessons. Over time, you’ll get a feel for how you want your career to look.

11 Best Online Free Coding Bootcamps

phd books for computer science

Jenna Inouye currently works at Google and has been a full-stack developer for two decades, specializing in web application design and development. She is a tech expert with a B.S. in Information & Computer Science and MCITP certification. For the last eight years, she has worked as a news and feature writer focusing on technology and finance, with bylines in Udemy, SVG, The Gamer, Productivity Spot, and Spreadsheet Point.

Subscribe to our Newsletter for Articles, News, & Jobs.

Disclosure: Hackr.io is supported by its audience. When you purchase through links on our site, we may earn an affiliate commission.

In this article

  • 6 Book Recs from the Hacker Who Brought Down North Korea's Internet Ethical Hacking
  • 14 Best System Design Books in 2024 | Beginner to Advanced Books
  • 12 Best Blockchain Books to Read in 2024 Books Crypto Web 3.0 Blockchain

Please login to leave comments

Always be in the loop.

Get news once a week, and don't worry — no spam.

{{ errors }}

{{ message }}

  • Help center
  • We ❤️ Feedback
  • Advertise / Partner
  • Write for us
  • Privacy Policy
  • Cookie Policy
  • Change Privacy Settings
  • Disclosure Policy
  • Terms and Conditions
  • Refund Policy

Disclosure: This page may contain affliate links, meaning when you click the links and make a purchase, we receive a commission.

HELP MAUI • JOB OPENINGS

Information and Computer Sciences

Information and Computer Sciences

University of Hawai‘i at Mānoa

Ph.D. in Computer Science

The Ph.D. Program in Computer Science is designed for students who want to contribute to the study of the description and representation of information, and the theory, design, analysis, implementation, and application of algorithmic processes that transform information.

Students receive advanced training in the scientific principles and technology required to develop and evaluate new computer systems and applications. Our curriculum covers all major areas of computer science, with active research in algorithms, artificial intelligence, bioinformatics, data science, high-performance computing, human-computer interaction, software engineering, security science, machine learning, and computer systems.

More Information

  • Prospective Ph.D. Students
  • Current Ph.D. Students

Student Outcomes

  • Master core computer science theoretical concepts, practices and technologies.
  • Identify, formulate and solve problems employing knowledge within the discipline.
  • Contribute effectively to collaborative team oriented activities.
  • Communicate effectively about computer science topics using appropriate media.
  • Demonstrate advanced knowledge in an area of specialization within the discipline.
  • Engage in significant research in their area of specialization within the discipline and/or in projects that respond to community and industry needs.
  • Develop a research portfolio that demonstrates the capacity to carry out original research in the field.
  • Become an expert in the area of specialization including mastery of the relevant research skills and methods, develop a research vision, and formulate a research plan that will lead to novel scientific contributions.
  • Execute a research plan and demonstrate original contributions to the field, as shown through findings and/or publications, culminating in a Ph.D. dissertation and oral defense.

Admission Requirements

Computer Science, Ph.D.

How to Apply

Thank you for your interest in Computer Science, Ph.D. program. Review the information below to apply.

The general requirement for admission into this Ph.D. program is as follows:

  • For students with B.S., a minimum GPA of 3.2/4.0 from a regionally accredited university.
  • For students with M.S., a minimum GPA of 3.5/4.0 from a regionally accredited university.
  • A minimum GRE score of 300 is required.
  • For international students, New York Tech’s requirement on acceptable TOEFL IBT score is 79, or 6.5 on IELTS.

These requisites are for advisory purposes only. We will review the applications for a positive indication of potential success in the program.

Application Materials

  • Completed  Online Application .
  • $50 nonrefundable application fee.
  • A statement of purpose.
  • A resume or CV.
  • Copies of transcripts leading to the applicant’s previous degree(s).
  • Copy of college diploma or proof of degree. (If you have attended college overseas, you need to have your educational credentials evaluated by a  National Association of Credential Evaluation Services (NACES)  member organization.  List of New York Tech-recognized evaluation agencies .
  • Three recommendation letters (send to  [email protected] ).
  • Official GRE scores, if required (NYIT GRE Code: 2561)
  • Official TOEFL score for applicants whose native language is not English and who have been educated outside the U.S.

An abstract view of a computer screen in a computer lab.

Submit your application to the Computer Science, Ph.D. program. We look forward to learning more about you.

Popular Searches

  • Master’s of AI Engineering
  • Engineering Magazine
  • graduate programs
  • Manufacturing Futures Institute
  • student organizations
  • Rethink the Rink

Social Media

  • @CMUEngineering
  • CMUEngineering
  • College of Engineering
  • Graduate studies
  • Graduate programs

Electrical and Computer Engineering graduate programs

Carnegie Mellon’s Department of Electrical and Computer Engineering  (ECE) stands at the forefront of today’s rapidly evolving technology landscape. It equips students to emerge as leaders in the field by honing their engineering skills, fostering their creativity, and providing them with practical insights essential for innovating impactful solutions. The department actively contributes to advancing and sharing knowledge in diverse areas such as energy, healthcare, mobile systems, smart infrastructure, nanotechnology, storage systems, cyber-physical systems, data and network science, and more.

The ECE department offers a wide range of comprehensive graduate programs, including a doctor of philosophy and several master of science programs. The department’s reach spans well beyond Pittsburgh, with offerings in Africa , Portugal , Thailand , Silicon Valley , and Washington, D.C.

  • Admission requirements
  • Application deadlines

students work at CMU's Nanofab laboratory

Doctor of philosophy program

  • Doctor of Philosophy in Electrical and Computer Engineering  (Ph.D. in ECE) The Ph.D. in ECE program guides students through research-intensive study of electrical and computer engineering fundamentals. With the help of a faculty advisor, students define an education and research program consistent with their background and career goals. This program is offered at several locations, including Pittsburgh, Portugal, Thailand, and Washington, D.C.

student works on electrical and computer engineering project

Master’s programs

  • Master of Science in Electrical and Computer Engineering  (MS in ECE) The department’s MS in ECE program provides students with a thorough background in the fundamentals of ECE, as well as the opportunity for in-depth specialization in specific areas of the field. This program is offered at several locations, including Pittsburgh, Africa, Thailand, and Silicon Valley.
  • Master of Science in Artificial Intelligence Engineering - Electrical and Computer Engineering (MS in AIE - ECE) The MS in AIE - ECE is a three-semester program that gives students the opportunity to gain state-of-the-art knowledge of artificial intelligence from an engineering perspective. Today, AI is driving significant innovation across products, services, and systems in every industry, and tomorrow’s AI engineers will have the advantage.
  • Master of Science in Software Engineering The MS in Software Engineering is a unique program offered exclusively at CMU’s Silicon Valley campus. It emphasizes a rigorous foundation in the core disciplines of software engineering. The program provides students with fundamental knowledge, skills, and first-hand experience in software engineering by balancing theory and practice, engaging active learning, and encouraging collaboration on projects drawn from real-world contexts.
  • Dual Master of Science in Engineering and Technology Innovation Management  (MS in ETIM) The MS in ETIM program cultivates next-generation innovation leaders. Here, engineers and scientists develop the specialized business skills, frameworks, and technical acuity necessary to create and capture value from innovative technologies. Join an exceptional multi-disciplinary group of peers and professors who will help you shape the future.

Research areas

Healthcare and quality of life

Mobile systems

Smart infrastructure

Nanotechnology

Storage systems

Intelligent physical systems

Data and network science

Secure systems

Research facilities and engagements

students discuss research during poster session

Student experience

ECE graduate students join a global community of scholars and researchers, fostering diversity and collaboration at all levels. Students are encouraged to enhance their professional and technical skills through active participation in Carnegie Mellon’s student organizations .

  • ECE Graduate Organization
  • Carnegie Mellon Racing
  • CMU Robotics Club
  • Institute of Electrical and Electronics Engineers
  • W3VC - Radio Club
  • Society of Women Engineers
  • National Society of Black Engineers
  • Society of Hispanic Professional Engineers
  • Society of Asian Scientists and Engineers
  • Graduate Student Assembly

News & Events

Engineering students awarded Fulbright Scholarships

Six students and alumni from the College of Engineering will research and study abroad on Fulbright program scholarships.

Introduction to Amateur Radio course teaches history, culture, and science of radio technology.

Amateur radio for aspiring professionals

Undergraduates present research at Meeting of the Minds 2024

Engineering undergraduate students had a wonderful showing at Meeting of the Minds, displaying posters, giving presentations, and demonstrating projects they have worked on this past academic year.

CMU names University Professors

Three College of Engineering faculty members have been elevated to the rank of University Professor, the highest distinction a faculty member can receive at Carnegie Mellon.

Reeja Jayan named faculty director of the Center for Faculty Success

The relaunched Center for Faculty Success will provide professional development, training, and leadership opportunities that empower faculty to succeed throughout their academic careers.

Parry receives Goldwater Scholarship

Katherine Parry, a junior in electrical and computer engineering, has received the 2024 Barry Goldwater Scholarship to support her pursuit of a research career.

Honoring our educators

Six members from the College of Engineering were recognized at CMU’s annual Celebration of Education Awards.

Carnegie Mellon University has awarded professorships to five exceptional faculty members in the College of Engineering.

Engineering faculty awarded professorships

Grover inducted into AIMBE College of Fellows

The American Institute for Medical and Biological Engineering (AIMBE) has announced the induction of Pulkit Grover, professor of electrical and computer engineering, to its College of Fellows.

Health & Biomedicine

How does learning something new not overwrite what we know?

Researchers from Carnegie Mellon University and University of Pittsburgh examine what happens in the brain when it’s presented with learning a new task, but also asked to recall a familiar one.

  • Research paper

Energy & Environment

CMU partners to reimagine energy in the region

Faculty from Carnegie Mellon University will collaborate with West Virginia University and University of Pittsburgh on a National Science Foundation Regional Innovation Engines program.

2024 NSF CAREER Awards

The National Science Foundation (NSF) has awarded Giulia Fanti, Guannan Qu, and Akshitha Sriraman, all assistant professors of electrical and computer engineering, the NSF Faculty Early Career Development (CAREER) Award.

Xu Zhang received an NSF career grant for his work on device fabrication and system-level applications of atomically thin 2D materials.

Zhang receives NSF CAREER Award

Artificial Intelligence

PennDOT Secretary meets Carnegie Mellon transportation experts

PennDOT Secretary Michael Carroll visited CMU facilities at Mill 19 to meet transportation researchers and learn about collaboration opportunities.

New center to investigate quantum computing

A new National Science Foundation Industry-University Cooperative Research Center at CMU will create an ecosystem that advances quantum computing and information technologies.

Detecting brain tsunamis

Researchers from Carnegie Mellon University, the University of Pittsburgh, and the University of Cincinnati have combined their expertise in engineering and medicine to create a noninvasive method for detecting worsening brain injuries before they happen. This advancement could reshape neurocritical care.

Faculty and alumnus inducted into the National Academy of Engineering

College of Engineering dean, professor, and alumnus inducted in the National Academy of Engineering.

Relationships are key to the research and the researchers

Zeynep Ozkaya’s work in Jana Kainerstorfer’s biophotonicslab has helped her to better understand the signal processing principles she is learning in her electrical engineering courses.

Duke Electrical & Computer Engineering

Master’s Study Tracks

Customize your ms or meng degree to fit your career goals..

With your advisor, select technical elective courses from an array of in-demand fields and foundational research areas.

abstract image showing lines of software programming code

Software Engineering

Our highly dedicated and experienced computer engineering faculty includes leading researchers who literally  wrote the book on programming .

In the Software Engineering Track, students will take courses on Programming, Computer Architechture, Systems, Computing, and others from the graduate course catalog. We’ll make you a great programmer!

close-up of circuit board

Computer Hardware Engineering

Duke ECE master’s students learn in the classroom and the lab from faculty working on new, resilient hardware architectures for emerging platforms ranging from major datacenters to personal mobile devices.

Students in the Computer Hardware Engineering track will be instructed by experts in the field with industry and research experience alike. The coursework includes Computer Architecture, Applications of Hardware, Hardware/Software Interface, Digitial System Design, Programming and other courses from the graduate course catalog.

eye with AI textures

Machine Learning & Big Data

Our focus on data analysis and machine learning provides master’s students with the tools to manage, interpret and gain new insights from data.

Studying in the Machine Learning/Big Data track will help you gain a thorough grounding in the mathematical foundations of Big Data, training in practical programming, and instruction in machine learning, statistics and information theory.

As a student, you’ll join a vibrant community rich in cross-campus initiatives focused on data science and machine learning, such as the  Rhodes Information Initiative at Duke (iiD) .

neon cube in Kim lab

Quantum Software & Hardware

Students will learn from a software and hardware focus that prepares them to program and control quantum information devices and design, fabrication and testing of quantum devices.

Duke ECE is home to international leaders in information physics research, embodied in pathbreaking programs in metamaterials, quantum devices, and optical systems.

Master’s students will learn from a faculty team with deep interdisciplinary research strengths and a track record of entrepreneurship and innovation.

Silicon wafer for manufacturing semiconductor of integrated circuit.

Semiconductor Technology

Duke ECE’s master’s track in semiconductor technology is led by international leaders in the areas of nanoelectronics, optoelectronics, microfluidic systems, integrated optics, sensors, integrated multifunctional devices/systems, energy conversion devices, and quantum sensors.

Semiconductor technology research at Duke is highly interdisciplinary, and includes the fabrication of devices and circuits through the state-of-the-art  Shared Materials Instrumentation Facility (SMiF)  cleanroom and characterization lab.

This track is designed to prepare master’s students either to engage in PhD research or to obtain engineering jobs in the semiconductor industry.

Duke also offers an interdisciplinary Master of Engineering in Photonics and Optical Sciences featuring coursework in both ECE and the Duke Department of Biomedical Engineering.

Master’s Contacts

Kevyn Light Profile Photo

Kevyn Light

Senior Program Coordinator

Matt Novik Profile Photo

Graduate Program Coordinator

Miroslav Pajic Profile Photo

Miroslav Pajic

Director of Master’s Studies, Professor in the Department of ECE

Krista Turner Profile Photo

Krista Turner

Master’s Program Coordinator

Ready to Join Us?

We're sorry but you will need to enable Javascript to access all of the features of this site.

Stanford Online

Welcome, artificial intelligence.

  • AI Courses and Programs

AI for Engineers and Technical Professionals

  • AI for Business Professionals
  • AI for Professionals in Healthcare

Stanford Online Artificial Intelligence courses let you virtually step into the classrooms of Stanford professors who are leading the AI revolution. Learn from anywhere in the world, wherever you are in your life’s journey. Choose the learning path that's right for you.

Artificial Intelligence Professional Program

Artificial Intelligence professional certificate course

View the AI Professional Program

Artificial Intelligence Graduate Certificate

Artificial Intelligence Graduate Certificate image

View the AI Graduate Program

Technical AI Program FAQs

The future belongs to those who embrace AI and use it to their advantage. - Jensen Huang, founder, President & CEO, NVIDIA

Upcoming Event

AI Courses & Programs Info Session hero

AI Courses & Programs Info Session

Ai info session.

In this online information session, you will learn more about our AI programs and see which one will best fit your learning goals.

  • Engineering
  • Artificial Intelligence
  • Computer Science & Security
  • Business & Management
  • Energy & Sustainability
  • Data Science
  • Medicine & Health
  • Explore All
  • Technical Support
  • Master’s Application FAQs
  • Master’s Student FAQs
  • Master's Tuition & Fees
  • Grades & Policies
  • Graduate Application FAQs
  • Graduate Student FAQs
  • Graduate Tuition & Fees
  • Community Standards Review Process
  • Academic Calendar
  • Exams & Homework FAQs
  • HCP History
  • Enrollment FAQs
  • Tuition, Fees, & Payments
  • Custom & Executive Programs
  • Free Online Courses
  • Free Content Library
  • School of Engineering
  • Graduate School of Education
  • Stanford Doerr School of Sustainability
  • School of Humanities & Sciences
  • Stanford Human Centered Artificial Intelligence (HAI)
  • Graduate School of Business
  • Stanford Law School
  • School of Medicine
  • Learning Collaborations
  • Stanford Credentials
  • What is a digital credential?
  • Grades and Units Information
  • Our Community
  • Get Course Updates

Approved UMass Amherst Courses Outside of Computer Science

Pre-approved courses count toward the ms, ms/phd, and phd requirements, subject to any overall restrictions. .

The courses below have been pre-approved to count toward the  MS ,  MS/PhD , and  PhD  requirements, subject to any overall restrictions.

Note: Any course not on this pre-approved list not count towards the MS degree. Exceptions may be granted, provided they are requested well before the end of the add/drop period and explicitly approved by the MS program director. Exception requests are reviewed on a case-by-case basis and are not guaranteed to be approved. In order to request an exception, please do the following:

  • Send an email to the MS program director at  mpd [at] cs [dot] umass [dot] edu (mpd[at]cs[dot]umass[dot]edu)  and cc: Eileen Hamel, Graduate Program Manager ( hamel [at] umass [dot] edu (hamel[at]umass[dot]edu) ) 
  • The subject line of the email should read "Outside Course Approval for..."
  • The body of the email should include a detailed syllabus and weekly schedule of the course as well as a description of the number and nature (e.g., programming or otherwise) of assignments and projects.

BIOSTAT 690B: Intro to Causal Inference

BIOSTAT 690JQ: Biostatistics Methods 3: Modern Applied

BIOSTAT 690NR: Biostatistics Methods 2: Applied Linear

BIOSTAT 690T: Applied Statistical Genetics  

BIOSTAT 730: Applied Bayesian Statistical Modeling

BIOSTAT 740: Mixed Models and Analysis of Longitudinal Data   

BIOSTAT 748: Applied Survival Analysis  

BIOSTAT 749: Statistical Methods for Clinical Trials  

BIOSTAT 790A: Causal Inference: special topics

DACSS 601: Data Science Fundamentals

DACSS 602: Research Design

DACSS 603: Introduction to Quantitative Analysis

DACSS 695SL: Social Life of Algorithms

Courses  not  approved: DACSS 695C–Seminar Corporate Lobbying and the Global Economy

ECON 701: Microeconomic Theory

ECE 547: Security Engineering

ECE 556: Introduction to Cryptography

ECE 565: Digital Signal Processing

ECE 568: Computer Architecture

ECE 597: Math Tools for Data Science

ECE 597LS: Hardware Design for Machine Learning Systems

ECE 603: Probability and Random Processes

ECE 606: Electromagnetic Field Theory

ECE 608: Signal Theory

ECE 634: Optimal Control of Dynamic Systems

ECE 656: Introduction to Cryptography

ECE 671: Computer Networks

ECE 674: Green Computing

ECE 697A: Advanced Computer Networks and Wireless Systems

ECE 697CS: Introduction to Compressive Sensing

ECE 697LP: Design Principles for Low-Power Embedded Computer Systems

ECE 697LS: Hardware Design for Machine Learning

ECE 697SN: Online Social Networks

ECE 735: Stochastic Control Dynamic Systems

ECE 745: Advanced Communication Theory

ECE 746: Statistical Signal Processing

INFOSEC 690F: Fraud Detection

INFOSEC 690R: Information Risk Management 

INFOSEC 690S: System Defense and Test*

*This class is a computer science class as of Fall 2020; therefore, if the class was taken as CS 590A Systems Defense and Test, it is counted as a computer science class. 

LINGUIST 509: Introduction to Computational Linguistics

LINGUIST 510: Introduction to Semantics

LINGUIST 610: Semantics and Generative Grammar

LINGUIST 692C: Cognitive Modeling

MATH 513: Combinatorics*

MATH 532: Topics in Ordinary Differential Equations

MATH 535: Statistical Computing

MATH 545: Linear Algebra for Applied Mathematics

MATH 551: Scientific Computing

MATH 605: Probability Theory

MATH 611: Algebra I

MATH 612: Algebra II

MATH 623: Real Analysis I

MATH 624: Real Analysis II

MATH 651: Numerical Analysis I

MATH 652: Numerical Solution of PDEs

MATH 671: Topology

MATH 697PA: ST–Math Foundations/Probabilistic AI

MATH 697FA: ST–Math Foundations/Probabilistic AI 2

MATH 697U: Stochastic Processes and Applications

STAT 501: Methods of Applied Statistics

STAT 511: Multivariate Statistical Methods

STAT 525: Regression Analysis

STAT 535: Statistical Computing

STAT 526: Design of Experiments

STAT 597BD: Biomed and Health Data Analysis

STAT 607: Mathematical Statistics I

STAT 608: Mathematical Statistics II

STAT 610: Bayesian Statistics

STAT 625: Regression Modeling

STAT 697TS: Time Series Analysis and Applications

STAT 697ML: Statistical Machine Learning

STAT 708: Applied Stochastic Models and Methods

Courses  not  approved: STAT 506, 515, and 516

*Match 513 is cross-listed with COMPSCI 575

MIE 532: Network Optimization

MIE 620: Linear Programming

MIE 670: Technical Project Management

MIE 684: Stochastic Processes in Industrial Engineering I

MIE 697U: Strategy-Driven Engineering Innovation

MIE 724: Nonlinear and Dynamic Programming

Physics 564: Advanced Quantum Mechanics

SCH-MGMT 597: FA–Foundations of Accounting

SCH-MGMT 597: FF–Foundations of Finance

SCH-MGMT 602: Business Intelligence and Analytics

SCH-MGMT 644: Economic Analysis for Manager

SCH-MGMT 650: Statistics for Business

SCH-MGMT 660: Marketing Strategy

SCH-MGMT 680: Leadership and Organizational Behavior

SCH-MGMT 697CV: Facing Dilemmas: Case Studies in Corporate Values

SCH-MGMT 697DM: Web Analytics for Digital Marketing

SCH-MGMT 697RT: Artificial Intelligence for Business

SCH-MGMT 797 VL ST: Value Investing

Courses  not  approved: SCH-MGMT 609, 821, and 822

Global footer

  • ©2024 University of Massachusetts Amherst
  • Site policies
  • Non-discrimination notice
  • Accessibility
  • Terms of use

phd books for computer science

  • Computers & Technology
  • Certification

Sorry, there was a problem.

Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required .

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Image Unavailable

CGRC Study Guide 2024-2025: LATEST All in One CGRC Exam Prep for the Certified in Governance Risk and Compliance Certification. Includes CGRC Review Book and 712 CGRC Practice Test Questions isc2

  • To view this video download Flash Player

phd books for computer science

CGRC Study Guide 2024-2025: LATEST All in One CGRC Exam Prep for the Certified in Governance Risk and Compliance Certification. Includes CGRC Review Book and 712 CGRC Practice Test Questions isc2

This all in one CGRC exam study guide alligns with the real exam and gives you real study guide material plus real 712 practice test questions with explanations to get you ready for exam day.

  • ISBN-10 196407987X
  • ISBN-13 978-1964079875
  • Publication date August 7, 2024
  • Language English
  • Dimensions 8 x 0.9 x 10 inches
  • Print length 396 pages
  • See all details

Products related to this item

Certified Information Systems Auditor (CISA) Exam Practice Test - Core Focus: 1050+ Full-Scope Question, Answer and Explanation

Product details

  • Publisher ‏ : ‎ CGRC Exam Review (August 7, 2024)
  • Language ‏ : ‎ English
  • Paperback ‏ : ‎ 396 pages
  • ISBN-10 ‏ : ‎ 196407987X
  • ISBN-13 ‏ : ‎ 978-1964079875
  • Item Weight ‏ : ‎ 2.09 pounds
  • Dimensions ‏ : ‎ 8 x 0.9 x 10 inches
  • #23 in Computer Cryptography
  • #25 in Computer Networking (Books)
  • #25 in Web Encryption

Exam Practice Tests for CSSLP and CISSP ISSMP certification (ISC2) 2024 Edition:: Questions, Answers and Explanations (Free Version)

Customer reviews

  • 5 star 4 star 3 star 2 star 1 star 5 star 100% 0% 0% 0% 0% 100%
  • 5 star 4 star 3 star 2 star 1 star 4 star 100% 0% 0% 0% 0% 0%
  • 5 star 4 star 3 star 2 star 1 star 3 star 100% 0% 0% 0% 0% 0%
  • 5 star 4 star 3 star 2 star 1 star 2 star 100% 0% 0% 0% 0% 0%
  • 5 star 4 star 3 star 2 star 1 star 1 star 100% 0% 0% 0% 0% 0%

Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.

To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.

  • Sort reviews by Top reviews Most recent Top reviews

Top reviews from the United States

There was a problem filtering reviews right now. please try again later..

phd books for computer science

  • About Amazon
  • Investor Relations
  • Amazon Devices
  • Amazon Science
  • Sell products on Amazon
  • Sell on Amazon Business
  • Sell apps on Amazon
  • Become an Affiliate
  • Advertise Your Products
  • Self-Publish with Us
  • Host an Amazon Hub
  • › See More Make Money with Us
  • Amazon Business Card
  • Shop with Points
  • Reload Your Balance
  • Amazon Currency Converter
  • Amazon and COVID-19
  • Your Account
  • Your Orders
  • Shipping Rates & Policies
  • Returns & Replacements
  • Manage Your Content and Devices
 
 
 
   
  • Conditions of Use
  • Privacy Notice
  • Consumer Health Data Privacy Disclosure
  • Your Ads Privacy Choices

phd books for computer science

COMMENTS

  1. 25 Most Influential Books in Computer Science 2010-2020

    The Art of Computer Programming, Volumes 1-4A Boxed Set. By: Donald Knuth , 1962. Knuth (b. 1938) is Professor Emeritus of computer science at Stanford University in Stanford, California. Born in Milwaukee, Wisconsin, he obtained his PhD in mathematics in 1963 from the California Institute of Technology (CalTech).

  2. Computer Science Graduates: 15 Essential Reads

    Below we've listed 15 of the best books appropriate to students considering a master's degree in computer science. They're subdivided by category: Computer science books: algorithms. Computer science books: cloud computation. Computer science books: computer programming. Computer science books: computer security.

  3. Ph.D. in Computer Science: Programs: Department of Computer Science

    Advising. For guidance and assistance early in your studies, contact Yan Huang, the graduate program director, at [email protected] or the Luddy Graduate Studies Office at [email protected]. Later you can contact your faculty advisor or Advisory Committee. We also recommend regularly consulting the timeline in the Ph.D. student handbook.

  4. The best books on Computer Science and Programming

    by Ana Bell. Read. 1 Code: The Hidden Language of Computer Hardware and Software by Charles Petzold. 2 Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin. 3 Code Complete: A Practical Handbook of Software Construction by Steve McConnell. 4 Algorithms by Robert Sedgewick & Kevin Wayne.

  5. 10 Best Computer Science Books to Read in 2023

    2. "Structure and Interpretation of Computer Programs" by Harold Abelson and Gerald Jay Sussman "Programmes must be written for people to read, and only incidentally for machines to execute." This classic book, often referred to as SICP, explores the fundamental principles of programming and computer science.

  6. PDF 202305 Computer Science PhD Handbook

    As a research-oriented degree, the PhD in Computer Science prepares exceptional students for careers at the cutting edge of academia, industry, and government. Students are expected to demonstrate excellence in both defining and executing a substantial research project that forms a novel contribution to

  7. Computer Science Ph.D. Program

    The computer science Ph.D. program complies with the requirements of the Cornell Graduate School, which include requirements on residency, minimum grades, examinations, and dissertation. The Department also administers a very small 2-year Master of Science program (with thesis). Students in this program serve as teaching assistants and receive ...

  8. Ph.D. Programs in Computer Science

    Higher Salaries: Earning an advanced degree in computer science can help increase your earning potential. Payscale reports that workers with a computer science Ph.D. earn an average wage of $139,000 as of October 2023. By comparison, those with just a BS in computer science make $94,000 annually as of May 2024.

  9. The Art of Getting Computer Science PhD

    Bring your club to Amazon Book Clubs, start a new book club and invite your friends to join, or find a club that's right for you for free. Explore Amazon Book Clubs Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required .

  10. CS PhD Course Guidelines

    8 of the 10 courses must be disciplinary, and at least 7 of those must be technical courses drawn from the Harvard John A. Paulson School of Engineering and Applied Sciences, FAS or MIT. Of the 7 technical courses, at least 3 must be 200-level Computer Science courses, with 3 different middle digits (from the set 2,3,4,5,6,7,8), and with one of ...

  11. Professional PhD Degree Program in Computer Science

    The Professional PhD in Computer Science is a full-service, all-inclusive program. Professional PhD in Computer Science Program fees cover all program costs, including tuition, meals for on-campus Saturday classes, course materials and graduation activities. ... Books, course materials, supplies, and equipment (Indirect Cost) $1,256.00: Housing ...

  12. Handbooks

    Computer Science PhD Handbook 2024-2025. Computer Science PhD Handbook 2023-2024. Computer Science PhD Handbook 2022-2023. CS Grad Approved Courses. Computer Science PhD Handbook 2022-2023 Computer Science PhD Handbook 2021-2022 Computer Science PhD Handbook 2020-2021

  13. Doctor of Philosophy in Computer Science

    OVERVIEW. Our Doctor of Philosophy (PhD) in Computer Science programme is designed to empower graduate students who are passionate about computer science to develop a deep understanding of the algorithmic foundations of computing and engage in rigorous scientific research. This PhD programme provides a strong foundation in the fundamental ...

  14. PhD Program

    Find Your Passion for Research Duke Computer Science gives incoming students an opportunity to investigate a range of topics, research problems, and research groups before committing to an advisor in the first year. Funding from the department and Duke makes it possible to attend group meetings, seminars, classes and colloquia. Students may work on multiple problems simultaneously while ...

  15. Ph.D Computer Science Syllabus and Subjects 2024

    Both online and offline book stores offer a variety of titles and publishers for PhD Computer Science books. All major topics are covered in PhD Computer Science course books, along with background information on various computer science fields. These reference books can be downloaded online for free in PDF format and are meant to clarify concepts.

  16. PhD Computer Science Syllabus, Subjects, Entrance Exam, Yearly

    PhD Computer Science Syllabus, Subjects, Entrance Exam, Yearly, Semester, Projects, Books. PhD in Computer Science and Engineering is a 3 to 5 years full-time research program in computer science that deals with the study of Machine learning, Rough Set theory, Research Methodology, Data Mining, etc. The minimum eligibility criteria for PhD in ...

  17. Books

    Incoming CS PhD Students; Student Services Staff; Computer Forum | Career Readiness; Admissions. PhD Admissions. ... Books. The CS Intranet: Resources for Faculty, Staff, and Current Students. For Faculty & Staff. For Current CS Students. Intranet. Stanford. ENGINEERING. Web Login Address. Gates Computer Science Building 353 Jane Stanford Way ...

  18. Computer Science Ph.D.

    Total Credits: 60. Content on this page is provided as a quick reference for planning. All official degree requirements are published on the Graduate Catalog site. [email protected]. (208) 426-5767. Computing Computer Science Ph.D. Degree plan.

  19. PDF Computer Science PhD Graduate Program Handbook

    Computer Science PhD Program Handbook 4 Review will be dismissed from the program and will be given the opportunity to finish their Master's degree (if applicable). A student who in the CS Graduate Committee's opinion fails the Qualifying Review will be given the opportunity to request a reevaluation of his or her case by the committee.

  20. The Top 11 Computer Science Books for Self Study [2023]

    1. Everything You Need to Ace Computer Science and Coding in One Big Fat Notebook 🔗. This computer science book is aimed at middle-school kids, to be clear. But it's a wonderful starting point to understand the fundamentals of computer science and get to grips with coding. It covers: Computing systems.

  21. Top 10 Must-Read Books for Computer Science Majors

    Tracy Kidder's The Soul of a New Machine is one of the few must-read histories about the world of Computer Science. First published in 1981, Kidder's classic remains one of the most highly regarded books about computers to ever hit the shelves. The Soul of a New Machine carefully recounts the drama, comedy, and excitement of the early years ...

  22. 19 Best Computer Science Books for IT Students and Pros

    8. Code: The Hidden Language of Computer Hardware and Software (Charles Petzold, 2000) Though an older book, Code is an excellent introduction to programming and development. Code digs deep into how programming works, covering its foundations and philosophies as well.

  23. Ph.D. in Computer Science

    Our curriculum covers all major areas of computer science, with active research in algorithms, artificial intelligence, bioinformatics, data science, high-performance computing, human-computer interaction, software engineering, security science, machine learning, and computer systems. More Information. Prospective Ph.D. Students; Current Ph.D ...

  24. Admission Requirements : Computer Science, Ph.D.

    The general requirement for admission into this Ph.D. program is as follows: For students with B.S., a minimum GPA of 3.2/4.0 from a regionally accredited university.

  25. Electrical and Computer Engineering graduate programs

    Carnegie Mellon's Electrical and Computer Engineering Department offers a wide range of comprehensive graduate programs, including several master of science programs and a doctor of philosophy degree. The department's reach spans well beyond Pittsburgh, with offerings in Africa, Portugal, Thailand, Silicon Valley, and Washington, D.C.

  26. Master's Study Tracks

    Software Engineering. Our highly dedicated and experienced computer engineering faculty includes leading researchers who literally wrote the book on programming. In the Software Engineering Track, students will take courses on Programming, Computer Architechture, Systems, Computing, and others from the graduate course catalog.

  27. Artificial Intelligence Courses and Programs

    These courses are designed for medical professionals and those in computer or data science within healthcare. Familiarity with statistics and programming is helpful but not required. Interest or experience in healthcare is recommended. View Courses & Programs

  28. AI for Engineers and Technical Professionals

    Courses in the Artificial Intelligence Graduate Program provide the foundation and advanced skills in the principles and technologies that underlie AI including logic, knowledge representation, probabilistic models, and machine learning. Learn online, along with Stanford graduate students taking the courses on campus.

  29. Approved UMass Amherst Courses Outside of Computer Science

    The courses below have been pre-approved to count toward the MS, MS/PhD, and PhD requirements, subject to any overall restrictions.. Note: Any course not on this pre-approved list not count towards the MS degree. Exceptions may be granted, provided they are requested well before the end of the add/drop period and explicitly approved by the MS program director.

  30. CGRC Study Guide 2024-2025: LATEST All in One CGRC Exam Prep for the

    CGRC Study Guide 2024-2025: LATEST All in One CGRC Exam Prep for the Certified in Governance Risk and Compliance Certification. Includes CGRC Review Book and 712 CGRC Practice Test Questions isc2: 9781964079875: Computer Science Books @ Amazon.com