25 Most Influential Books in Computer Science 2010–2020

computer science phd books

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.

MIT Press

On the site

Computer science textbooks, browse selected textbook titles in computer science, machine learning.

Foundations of Computer Vision

Foundations of Computer Vision

Antonio Torralba, Phillip Isola, William T. Freeman

April 16, 2024

Fairness and Machine Learning

Fairness and Machine Learning

Solon Barocas, Moritz Hardt, Arvind Narayanan

December 19, 2023

Understanding Deep Learning

Understanding Deep Learning

Simon J. D. Prince

December 5, 2023

Probabilistic Machine Learning

Probabilistic Machine Learning

Kevin P. Murphy

August 15, 2023

The Little Learner

The Little Learner

Daniel P. Friedman, Anurag Mendhekar, Guy L. Steele Jr., Peter Norvig

February 21, 2023

Introduction to Online Convex Optimization

Introduction to Online Convex Optimization

September 6, 2022

Machine Learning from Weak Supervision

Machine Learning from Weak Supervision

Masashi Sugiyama, Han Bao, Takashi Ishida, Nan Lu, Tomoya Sakai, Gang Niu

August 23, 2022

Probabilistic Machine Learning

March 1, 2022

Introduction to Machine Learning

Introduction to Machine Learning

Ethem Alpaydın

March 17, 2020

Deep Learning

Deep Learning

Ian Goodfellow, Yoshua Bengio, Aaron Courville

November 18, 2016

Programming

Essentials of Compilation

Essentials of Compilation

Jeremy G. Siek

August 1, 2023

Program Proofs

Program Proofs

K. Rustan M. Leino

March 7, 2023

Essentials of Compilation

Algorithms for Decision Making

Mykel J. Kochenderfer, Tim A. Wheeler, Kyle H. Wray

August 16, 2022

An Experiential Introduction to Principles of Programming Languages

An Experiential Introduction to Principles of Programming Languages

Hridesh Rajan

May 3, 2022

Structure and Interpretation of Computer Programs

Structure and Interpretation of Computer Programs

Harold Abelson, Gerald Jay Sussman, Martin Henz, Tobias Wrigstad, Julie Sussman

April 12, 2022

Software Design for Flexibility

Software Design for Flexibility

Chris Hanson, Gerald Jay Sussman

March 9, 2021

Introduction to Computation and Programming Using Python

Introduction to Computation and Programming Using Python

John V. Guttag

January 5, 2021

Biological Intelligence for Biomimetic Robots

Biological Intelligence for Biomimetic Robots

Joseph Ayers

June 13, 2023

The Developmental Organization of Robot Behavior

The Developmental Organization of Robot Behavior

Roderic A. Grupen

March 14, 2023

Introduction to Autonomous Robots

Introduction to Autonomous Robots

Nikolaus Correll, Bradley Hayes, Christoffer Heckman, Alessandro Roncone

December 20, 2022

Neurorobotics

Neurorobotics

Tiffany J. Hwu, Jeffrey L. Krichmar

November 29, 2022

Learning for Adaptive and Reactive Robot Control

Learning for Adaptive and Reactive Robot Control

Aude Billard, Sina Mirrazavi, Nadia Figueroa

February 1, 2022

AI and Humanity

AI and Humanity

Illah Reza Nourbakhsh, Jennifer Keating

March 10, 2020

Introduction to AI Robotics

Introduction to AI Robotics

Robin R. Murphy

October 1, 2019

Automata Theory

Automata Theory

Javier Esparza, Michael Blondin

October 17, 2023

Computability and Complexity

Computability and Complexity

August 29, 2023

Physically Based Rendering

Physically Based Rendering

Matt Pharr, Wenzel Jakob, Greg Humphreys

March 28, 2023

Computing and Technology Ethics

Computing and Technology Ethics

Emanuelle Burton, Judy Goldsmith, Nicholas Mattei, Cory Siler, Sara-Jo Swiatek

February 14, 2023

Introduction to Algorithms

Introduction to Algorithms

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

April 5, 2022

Information-Driven Planning and Control

Information-Driven Planning and Control

Silvia Ferrari, Thomas A. Wettergren

July 6, 2021

The Elements of Computing Systems

The Elements of Computing Systems

Noam Nisan, Shimon Schocken

June 15, 2021

Verifying Cyber-Physical Systems

Verifying Cyber-Physical Systems

Sayan Mitra

February 16, 2021

Fundamentals of Machine Learning for Predictive Data Analytics

Fundamentals of Machine Learning for Predictive Data Analytics

John D. Kelleher, Brian Mac Namee, Aoife D'Arcy

October 20, 2020

computer science phd books

21 Computer Science Books For Beginners

' src=

Laura Diaz de Arce

Raised in a suburb built over a swamp, Laura Diaz de Arce is a South Florida writer with a penchant for long-winded explanations and a nasty reading habit she can't seem to kick. Her other quirks include sudden exclamations in Spanish and talking to cats. Laura has a Master's in Literature, which is currently lost somewhere in her office closet. She is the author of "Monstrosity: Tales of Transformation" and "Mask of the Nobleman." You can find her poorly spelled tweets and blurry photos on Twitter and Instagram @QuetaAuthor.

View All posts by Laura Diaz de Arce

We aren’t quite at Matrix levels of AI yet (keyword: “yet”), but computer fluency and computer science are continuous growth industries. Computer science, in the most general terms, is the study of how computers function, including how it works on an engineering sense, but also how it works in a societal sense. It’s a wide-ranging and diverse field that includes the mechanics of computers (hardware, programming, etc.) to the ethics of it and our relationship to computers. There is hardly a field that does not use computer science. For a lot of people, pursuing computer science, either as a career or as a skill, can seem daunting. Not to fear, though! We’ve rounded up some must-read computer science books to help get you started!

This article is broken down into three sections for your convenience: Learning to Code, Reference and Theory, and a Bonus section. You also don’t have to take my word for this information; I consulted with Dr. David Dittman, who holds a PhD in computer science with a focus on data mining and bioinformatics [1].

As a quick note on diversity: this list is not as diverse as it should be. Many seminal texts from four decades ago on coding are still used industry-wise. Those were largely made by a small population. We want to assure you that computer science is a vibrant field with people of all ethnicities, genders, abilities, and orientations.

Books On Learning To Code

The first skill you will inevitably have to develop is the ability to code. We’ve broken this down by computer language to give you options on what you may want to pursue by your interest first. While you go through these, realize that coding is a skill that you have to learn by doing, not just by reading the book. You won’t learn how to hack in day . Make sure to do the exercises and practice, even if you mess up. As Dr. Dittman said “I’ve been coding for almost 15 years and I still make mistakes.”

C and C++ Difficulty: Medium to Difficult

If you were to major in Computer Science at a college, you would most likely have to take a class in C or C++. Both C and C++ have the greatest utility across the industry, and that’s why they are often the default first languages. While C++ is technically an extension of C, it is considered its own language and has its own syntax. C and C++ are in a lot of legacy systems [2].

Head First C by Dave Griffiths and Dawn Griffiths Computer Science Books

For a real, step-by-step concept computer science book, try Greg Perry’s and Dean Miller’s C Programming Absolute Beginner’s Guide (3rd Edition) . Plain language, plenty of additional tips, and annotated code make it a really good first computer science book.

While C++ is an extension of C, you can learn it on its own. For that we recommend C++ Primer (5th Edition) by Stanley B. Lippman, Josée Lajoie, and Barbara E. Moo. This is, admittedly, a little dry. But it’s a practical guide to learning the necessary functions in first time computer programming. It also has detailed explanations with practical applications.

Programming Principles and Practices Using C++ by Bjarne Stroustrup

Python Difficulty: Easy

This scripting language is not only fairly quick to learn, it has the added benefit of having established, robust online communities. That means that as you go, you’ll be able to look up quick fixes or advice in real time. Python can be used among a number of industries and is commonly used in text mining. It is very useful for rapid modification and execution. However, Python does gloss over a lot of necessary computer science concepts, so you will eventually have to learn another language in addition.

If you’re a learner that does best with practical applications from the get-go, have a try at Python Crash Course: A Hands-On, Project-Based Introduction to Programming by Eric Matthes. The book is broken down into targeted code styles and has in-depth, simple guides for every line of code.

Invent Your Own Computer Games With Python by Al Sweigart Computer Science Books

As you get more into programming, you may want a quick reference as problems arise and you need quick fixes. Consider getting a copy of Python Cookbook, Third Edition by David Beazley and Brian K. Jones as you get more experience. This really isn’t a text for first time Python programmers, but as you get more experience, keep this in mind.

JAVA Difficulty: Medium to Difficult

Along with C and C++, JAVA is one of the top languages employers look for. It’s often used in software development and software symptoms. You’ve probably seen JAVA in hits like “Please Update JAVA” on the bottom right hand of your computer screen every so often. It’s used in a lot of Android systems, so it can have a lot of quick, practical applications. Keep in mind it can still be difficult to learn, but hopefully that will be alleviated by computer science books.

Learn JAVA in One Day and Learn It Well by Jaimie Chan

Joshua Bloch’s Effective Java (3rd Edition) might not get you coding in a day, but it will give you a firm background in JAVA. It also has excellent, detailed explanations for different codes and their uses. This is definitely for the beginning programmer who is eager for more sophisticated programming instruction.

SQL Difficulty: Medium to Difficult

If you’re working with data, you’re going to be working with databases. If you’re working with databases, you’re going to need to know SQL. It’s a language that is meant to structure, organize, and access data. This can range from your local library’s catalog to the library of congress to massive genetic information. Most programmers will at least learn how to construct a SQL query to access needed data. So while you may not need to be an expert in SQL, you’re going to want at least some basic knowledge of SQL no matter what you get into.

While SQL may not need to be your first programming language, Head Head First SQL: Your Brain on SQL—A Learner’s Guide by Lynn Beighley makes it pretty easy to pick up. It’s a simple, and largely fun computer science book for beginners for the first time SQL user. Beighley makes programming accessible with easy language, diagrams, and plenty of examples.

SQL Inqueries For Mere Mortals by John Viescas and Michael Hernandez Computer Science Books

Computer Science Books On Reference And Theory

As you get further into programming, you’re going to want to have some books or places to reference as you get more ambitious or run into trouble. For that we have added a reference section with computer science books and webpages for you to use. We’ll also be including some information on theory as well, because computer science is a field that touches almost every other field. Whether you’re building webpages, designing AI’s, or reading the results of mass medication trials, you’re not just gonna want to know how to do something, but why it works the way it does.

The C Programming Language by Brian Kernighan and Dennis Ritchie

If you’re looking for a comprehensive JAVA reference, consider Modern Java in Action: Lambdas, Streams, Functional and Reactive Programming (2nd Edition)  by Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft. Fair warning, the book is dense, packed with all sorts of information on how JAVA functions in the greater programming scheme. That’s what gives this book an advantage, though, and if you’re a learner who needs to know why something works in order to understand the how, this may be good for you.

SQL Cookbook by Anthony Molinaro Computer Science Books

In the battle of Python versus Perl, Python has become the clear winner. However, while Python is more widely used, Perl is still used in some current systems and it’s easy to pick up. For that we recommend Perl by Example (5th Edition)  by Ellie Quigley. Dr. Dittman was adamant to add this because “it’s how I learned Perl, it’s quick and easy to get.”

Ethics in Computing A Concise Module by Joseph Migga Kizza

For something with a similar ethical bent but a little more accessible, consider Ethics and Data Science by Mike Loukides, Hilary Mason, and DJ Patil. Privacy, data collection, and digital rights are becoming more prevalent issues. If you go into computer science, it’s good to have a primer on how the work you may do could impact and be impacted by these concepts.

Bonus Computer Science Books

Here we’ve included some books that may not be necessary for your computer science aspirations, but might spark an interest in another portion of the field or give some guidance in other areas. Really, this was just an area to feature some of the lesser known, best computer science books.

Beginning Programming All-In-One Desk Reference For Dummies by Wallace Wang Computer Science Books For Beginners

If you want to learn some general programming skill work, we recommend Venkat Subramaniam and Andy Hunt’s Practices of an Agile Developer: Working in the Real World (Pragmatic Bookshelf) . This isn’t so much programming, but good practices for working programmers. It’s got general tips and tricks for working in the field as well as developing good programming habits. You may also want to check out Subramaniam’s books on JAVA Script, should you ever need that language as well.

For a beginner’s guide or for the young girl in your life, consider Girls Who Code: Learn to Code and Change the World by Reshma Saujani. We’ve covered this before, because it’s just that good . While it may not get you coding right away, it introduces a lot of essential programming principles as well as a pretty cool history of computer science.

Video Games Design And Code Your Own Adventure by Kathy Ceceri and Mike Crosier Computer Science Books For Beginners

Because it’s computer science, a lot of resources are online. Cplusplus.com is a good location for your C++ needs. Python Software Foundation ( pypi.org ) has downloadable software. JAVA Oracle ( docs.oracle.com ) has the answers to all your JAVA needs. Connect with other coders at StackOverflow ( stackoverflow.com )

Even if you don’t want to pursue it career-wise, it’s not a bad idea to pick up the skills. With all these computer science books, you might find you have a talent for computer languages. Coding is a useful skill to learn, since C, Python, and JAVA are used all around the world.

#include <stdio.h> int main() { printf(“Have Code, Will Travel!”); return 0; }

You Might Also Like

The Most Read Books on Goodreads This Week

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

computer science phd books

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.

computer science phd books

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.

computer science phd books

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.

computer science phd books

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.

computer science phd books

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 phd books

  • Biographies & Memoirs
  • Professionals & Academics

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

The Art of Getting Computer Science PhD

  • To view this video download Flash Player

The Art of Getting Computer Science PhD Paperback – February 6, 2013

  • Print length 120 pages
  • Language English
  • Publication date February 6, 2013
  • Dimensions 6 x 0.3 x 9 inches
  • ISBN-10 147978964X
  • ISBN-13 978-1479789641
  • See all details

Product details

  • Publisher ‏ : ‎ XLIBRIS (February 6, 2013)
  • Language ‏ : ‎ English
  • Paperback ‏ : ‎ 120 pages
  • ISBN-10 ‏ : ‎ 147978964X
  • ISBN-13 ‏ : ‎ 978-1479789641
  • Item Weight ‏ : ‎ 6.6 ounces
  • Dimensions ‏ : ‎ 6 x 0.3 x 9 inches

Customer reviews

5 star 0%
4 star 0%
3 star 0%
2 star 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.

No customer reviews

  • 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

computer science phd books

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

GDPR Notice

Privacy Policy

Terms and Conditions

tiktok

Sign up to our newsletter

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.

Get the Reddit app

The hot spot for CS on reddit.

Any essential comp sci books that you wish you read earlier?

I am a high school senior who has a lot of free time and loves studying comp sci. I have read an introductory Java book, SICP(chaps 1 and 2), and the C programming language or K&R. I am interested in continuing with chap 3 of SICP but I am also looking for another challenge: think comp sci essentials. All suggestions are appreciated.

{{ 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 Create A Professional Portfolio Page Using HTML

  • 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
  • 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

6 Book Recs from the Hacker Who Brought Down North Korea's Internet

  • JavaScript Online Compiler
  • HTML & CSS Online Compiler
  • Certifications
  • Programming
  • Development
  • Data, Analysis, & AI
  • 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

computer science phd books

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

computer science phd books

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.

Computer Science

Program finder image

Undergraduate

The concentration in Computer Science is designed to teach students skills and ideas they will use immediately and in the future. Because information technology affects every aspect of society, graduates with computer science degrees have open to them an enormous variety of careers—engineering, teaching, medicine, law, basic science, entertainment, management, and countless others. Students are also eligible to apply for an A.B./S.M. degree program.

The Bachelor of Liberal Arts degree is designed for industry professionals with years of work experience who wish to complete their degrees part time, both on campus and online, without disruption to their employment. Our typical student is over 30, has previously completed one or two years of college, and works full time.

A graduate degree in computer science equips you to stay ahead of the curve and meet the computing challenges of today and tomorrow. In our rigorous master’s degree program, you’ll focus on advanced computer science theories and applications. Learning from expert faculty from Harvard and industry, you’ll acquire the skills to design, develop, and maintain complex computer and software systems.

Harvard School of Engineering offers a Doctor of Philosophy (Ph.D) degree in Computer Science, conferred through the Graduate School of Arts and Sciences. In addition to the Ph.D. in Computer Science, the Harvard School of Engineering also offers master’s degrees in Computational Science and Engineering as well as in Data Science. Computer scientists at Harvard pursue work in a wide range of areas including theoretical computer science, artificial intelligence, economics and computer science, privacy and security, data-management systems, intelligent interfaces, operating systems, computer graphics, computational linguistics, robotics, networks, architectures, program languages, machine learning, and visualization.

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

ComputerCareers

10 Best Computer Science Books

Computer science is becoming increasingly popular and making great strides. Nowadays, most careers are related to computer science, and many people want to start working in this field.

If you are looking to learn more about this subject, you can also find more books.

The 10 books introduced in this article will provide helpful information about computer science. They are suitable for both novices and experienced professionals in information technology professions.

These books will introduce you to computer programming, information security and data analysis, and related skills. Each book on this list has outstanding features in form and content. Now let’s jump straight in!

1. The Self-Taught Computer Scientist

computer science phd books

Specification:

  • Language: English
  • Paperback: 224 pages
  • Item Weight: 13.6 ounces
  • Dimensions: 7.38 x 0.51 x 9.25 inches

Today’s Best Deals: View on Amazon

Reason To Buy

  • Provide useful additional tools
  • Introduction of different algorithms
  • Help increase confidence before the interview
  • Provide knowledge of data structures, arrays, binaries, and graphs

The first book that I want to recommend to you is a book for those who are new to programming.

The author of this book is Cory Althoff, a college graduate with a major in political science. He spent time researching and self-taught computer science and programming skills. His efforts got him a job as a software engineer at eBay.

His self-study and his experiences are included in this book. The author has explained all the concepts and algorithms as simply as possible.

I read it when I had no background in computer science, and this book equipped me with the basics. As I go through each page of the book, I feel a new world opening up before my eyes.

The issues the book deals with are all fundamental. Since these are the author’s self-study experiences, it benefits those seeking knowledge about the field.

Even candidates with experience in the information technology industry should take advantage of this publication. They can help you fill your knowledge gaps and gain more confidence to enter job interviews.

2. The Computer Science Book

computer science phd books

  • Publication date: October 10, 2020
  • File size: 16413 KB
  • Print length: 410 pages
  • Captivating voice
  • Contain factual information
  • 10 chapters with helpful content
  • Provide personal experiences and useful tips

The second book I want to mention on this list is a publication by Tom Johnson.

I have learned a lot from this book, from the background knowledge to understand the field to the experience to apply in real work.

Before that, I needed to understand the nature of writing codes. The book helped me know computer science’s fundamental principles and laws.

It is a problem that I have been lacking for a long time. Each chapter of the book discussed a separate topic, and I was very confident after grasping the critical points of the issue that the author was concerned about.

The author graduated from Oxford University with a degree in modern languages ​​before becoming a software developer. So, the way he presents his work is friendly and engaging.

I felt confident, and the author aroused my curiosity and interest in learning. It is an indispensable book when you want to learn about computer science.

3. The Art of Computer Programming

computer science phd books

  • Hardcover: 3168 pages
  • Item Weight: 12.82 ounces
  • Dimensions: 9 x 8.9 x 9 inches
  • Provide in-depth analysis
  • Impressive presentations
  • Interesting set of questions
  • Written by a famous author
  • Received good feedback from leading experts

The next book on my list is from Professor Donald E. Knuth. He is a well-known expert in computers and information technology. Therefore, the knowledge he gave was profound and highly accurate. With extensive computer science and art background, he turned his book into an exciting adventure.

I was very impressed with the way the in-depth author analysis of each algorithm, related them, and showed the correlation between problems.

Each volume focuses on clarifying specific areas of knowledge. It is a math-heavy series, which I found challenging to start with.

But when I understood what the author wanted to convey, it gave me the expertise to increase in programming and computer science-related jobs.

I greatly appreciate the sound the author arranges the information. Questions to solve are my favorite part of this series. These all contain rating information on different difficulty levels for readers to try.

It allows me to double-check my knowledge and provides an opportunity for logical thinking. The answers lie at the back of the book, taking the reader on an exciting intellectual journey.

4. AP Computer Science A

computer science phd books

  • Paperback: 496 pages
  • Item Weight: 1.72 ounces
  • Dimensions: 8.38 x 0.9 x 10.88 inches
  • Credentials
  • Constantly updating
  • Good study support
  • Sample questions closely follow the real exam

If you are looking for a resource to help you prepare and test your knowledge for exams and tests, then AP Computer Science A Premium, 2022-2023, is the book you need. I received this book from a teacher I admired before the exam. It became my savior to study and get an A on my AP Computer Science A exam.

This book is the work of Roselyn Teukolsky, an expert in computer science with 20 years of experience. She has received many impressive awards and has been featured in many prestigious articles. You can completely trust the information in her book.

Plus, this book is still regularly updated to help keep the information it offers up to date. The tests in the book are very close to the actual exam.

I have done many sample questions in the book, and this is a highly influential review for any student.

The questions asked will help you consolidate what you have learned, remember concepts longer, and learn how to complete exercises to apply skills.

5. The Art of Doing Science and Engineering

computer science phd books

  • Hardcover: 432 pages
  • Item Weight: 2.1 pounds
  • Dimensions: 6.25 x 1.25 x 9.25 inches
  • Highly artistic
  • Beautiful picture
  • Captivating storytelling
  • Extensive knowledge

You are too familiar with Hamming code when working and studying computer science. Amazingly, The Art of Doing Science and Engineering: Learning to Learn is an excellent work by Richard Hamming.

This book has helped me understand history in an engaging and artistic voice. Although the work was released in 1994, it still has a great value up to now.

The book includes the author’s thoughts on stories and fields related to computer science. It is as close to me as a professor’s lecture in a university hall. I like how the author explains and connects the issues, which evokes a lot of growth thinking.

The book will reach you in a very clean hardcover. You will feel more inspired to learn with this look of the work. The work’s charts have also been revised and redesigned to bring eye-catching images to readers.

6. Computer Science Distilled

computer science phd books

  • Paperback: 182 pages
  • Item Weight: 10.4 ounces
  • Dimensions: 5.5 x 0.49 x 8.5 inches
  • Basic knowledge
  • Attractive presentation
  • Attractive humorous voice
  • Simple and easy instructions

As a programmer who loves literature, Wladston Ferreira Filho has published 2 books related to computer science. And Computer Science Distilled: Learn the Art of Solving Computational Problems is one of his two works.

This book became famous because he presented the issues clearly and easy-to-understand manner. I was able to understand the items he proposed in a short time.

This book only goes into a bit of detail about the in-depth knowledge but mainly deals with the basic math and programming aspects. I was fascinated by the cute images and funny voices of the author.

It helps the dry knowledge no longer become boring. The concepts are all elementary to understand, and I had no trouble reading this book.

7. Computer Science Principles

computer science phd books

  • Paperback: 258 pages
  • Dimensions: 6 x 0.65 x 9 inches
  • Good inspiration
  • Conveying knowledge easily
  • Provides helpful guidances

The basic knowledge that author Kevin Hare presents in Computer Science Principles will be helpful guidelines for you in the AP Computer Science exam.

The issues presented in this book are apparent and easy to understand. Any student reading will understand what the author wants to convey.

The book had the latest update in 2020, with fresh and up-to-date content. Bright and clear images are reasonable means of conveying information, helping readers grasp knowledge more quickly.

Also, this book allows me to imagine and associate and elicits very interesting open-mindedness. It has inspired me in the learning process, and learning computer science is no longer boring after owning this work.

8. A Programmer’s Guide to Computer Science

computer science phd books

  • Paperback: 188 pages
  • Item Weight: 9.3 ounces
  • Dimensions: 6 x 0.43 x 9 inches
  • Exciting and easy to read
  • Provides practical problem-solving skills
  • Teach basic programming knowledge
  • Bringing the whole scene in computer technology

Textbooks always make me feel bored and make it challenging to study.

Looking for a document that would make it easier for me to understand the textbook problems, I found A Programmer’s Guide to Computer Science. It was my savior in college.

The volume covers issues frequently present in professional discussions. It helped me grasp the knowledge quickly and without difficulty.

William Springer is a veteran of the computer technology industry. He has a Ph.D. in computer science, working at a large software company. So he can bring knowledge most practically and understandably for students like me.

After reading this book, I solved programming basics and understood common concepts in the field. It also provided me with real-world problem-solving skills.

I could fill in the gaps in my knowledge thanks to this book. If you are self-taught in programming, choose to buy publications to make the job easier.

9. Help Your Kids with Computer Science

computer science phd books

  • Paperback: 256 pages
  • Item Weight: 1.7 pounds
  • Dimensions: 7.75 x 0.72 x 9.19 inches
  • Vivid illustrations
  • Get inspired to learn
  • Knowledge is concise

Help Your Kids with Computer Science is an excellent book for young people learning about computer science.

I was highly impressed with the clear and colorful illustrations of the product. They acquire knowledge that is no longer dry and rigid. I am very excited about the new lessons; this book has given me limitless inspiration.

Each chapter of the book deals with different problems in the field of computer science. Each section focuses on explaining concepts in a concise and easy-to-understand manner. It is a must-have book for children and adults to learn about the profession.

computer science phd books

  • Paperback: 480 pages
  • Item Weight: 1.46 pounds
  • Dimensions: 6 x 0.97 x 9.05 inches
  • Easy knowledge to understand

Help Your Kids with Computer Science is an excellent book for young people learning about computer science. I was impressed with the clear and colorful illustrations of the product. They acquire knowledge that is no longer dry.

I am very excited about the new lessons; this book has given me limitless inspiration. Each chapter of the book deals with different problems in the field of computer science.

Each section focuses on explaining concepts in a concise manner. It is a must-have book for children and adults to learn about the profession.

Buying Guide

Many factors determine which book you should buy when learning about computer science. Everyone will have their selection criteria. Here are a few things I suggest you should consider.

First, you need to identify the author you want to read. Each author will have a different voice, experience, and field knowledge. If you want to learn aspects of the subject in depth, look for books by famous professors.

Look to young authors if you want to read popular scientific publications. Senior authors will help you gain work experience and solve real-world problems.

The book’s content may focus on one or several problems in computer science.

It will help if you read these publications for a deeper understanding of the details. In-depth works will be extremely useful for students and professionals who need a deep understanding.

But if you are just a beginner or want to learn the basics, you should choose works that cover the basics. These publications will explain concepts and describe issues easily.

Finally, you should pay attention to the cost of the product. Usually, the books can come in hardcover or paperback. Hardcovers will cost more, but in return, they are much more beautiful and durable than paperbacks.

Many titles are available in PDF versions at a much lower price than the hard copy. You can find these soft files on the website that provides genuine books.

Here I will solve some of the problems many people often ask when buying computer science books. I hope these answers are helpful to you.

What is the hottest field in computer science?

In computer science, there are many popular majors that many people are interested in. These majors are applicable, creating good job opportunities. These can be Database Administration, Programming, or Information Security.

What is the future of computer science?

According to researchers, in the future, computer science will become more and more popular and applied in all areas of social life.

They provide employment and development opportunities to tens of thousands of people in all fields around the world.

Which field is best for the future?

According to experts, cyber security will be the hottest field in computer science in the coming years.

Which computer degree is best for the future?

The most basic and essential degree you should have is a bachelor’s degree in a computer science-related field.

These majors could be Cybersecurity, Systems & Network Administration, Computer Engineering, or Information Technology and Information Systems.

Which IT field is the best?

Information Security is currently an issue that many units and businesses are interested in. Fighting viruses and hackers is the top security factor to avoid draining resources on digital platforms.

Final Thoughts

Computer science is a field that is experiencing tremendous growth in recent times. It is a promising industry group with high job opportunities in the future.

Books on computer science will provide helpful support for you when learning about this field. The AP Computer Science A Premium and Art of Computer Programming is an informative book you will enjoy.

My detailed reviews of the best CS books have helped you choose the best publication. I wish you good learning!

  • 10 Best Deep Learning Books
  • 10 Best Information Technology Books
  • 10 Best Data Structures and Algorithms Books
  • 10 Best Computer Science Courses
  • Computer Science Teacher Career Overview & Outlook
  • 10 Best Computer Science Schools in the U.S.
  • 10 Best Laptops for Computer Science Students
  • Computer Science vs. Data Science: Which Is For You?
  • Computer Science vs. Software Engineering
  • Is Computer Science Boring? Facts You Should Know!

jamiefosterscience logo

The 10 Best Computer Science Books For Beginners

Developing a strong computer science foundation requires quality educational resources. For programming novices and those new to CS, the right books can kickstart the learning process through clear explanations, practical examples, and hands-on projects.

If you’re short on time, here’s a quick answer: Some of the best intro computer science books for beginners include Automate the Boring Stuff with Python, Cracking the Coding Interview, Introduction to Algorithms, The Pragmatic Programmer, and Head First Java .

This article will provide a detailed overview of the top 10 computer science books for beginners to help you learn skills like programming, algorithms and data structures, CS theory, and more. We’ll summarize key topics covered, pros and cons, and suitable reader levels for each book.

Automate the Boring Stuff with Python

One of the best computer science books for beginners is “Automate the Boring Stuff with Python” by Al Sweigart. This book provides a hands-on approach to learning programming through the use of Python.

It is specifically designed for individuals who want to automate repetitive tasks and make their lives easier. Whether you are a complete beginner or have some programming experience, this book is a great resource to start learning Python.

Why Python?

Python is a popular programming language known for its simplicity and readability. It is widely used in various fields, including web development, data analysis, artificial intelligence, and automation. Learning Python can open up many opportunities for beginners in the field of computer science.

What Does the Book Cover?

“Automate the Boring Stuff with Python” covers a wide range of topics, including:

  • Basic Python syntax and concepts
  • Working with files and directories
  • Web scraping
  • Automating tasks with Excel spreadsheets
  • Working with PDFs and Word documents
  • Automating email and text messages
  • Creating GUI programs

By the end of the book, readers will have a solid foundation in Python programming and will be able to automate repetitive tasks using the skills they have learned.

What Makes This Book Stand Out?

“Automate the Boring Stuff with Python” stands out from other computer science books due to its practical approach. The author, Al Sweigart, provides real-world examples and projects that readers can relate to. This makes the learning process more engaging and enjoyable.

In addition, the book comes with a companion website that provides additional resources and practice projects. This allows readers to further enhance their programming skills and apply what they have learned in a practical manner.

Cracking the Coding Interview

If you are a beginner in computer science and aspiring to land a job as a software engineer or developer, then “Cracking the Coding Interview” is a must-have book in your collection. Authored by Gayle Laakmann McDowell, a former software engineer at Google, this book is considered the bible for coding interview preparation.

Why is it so highly regarded?

Well, the book not only covers the technical aspects of coding interviews but also provides valuable insights into the entire interview process. It offers tips and strategies for tackling coding problems, advice for behavioral and technical interviews, and guidance on how to effectively communicate your thought process.

What can you expect from this book?

1. Comprehensive Coverage of Data Structures and Algorithms

The book delves deep into the fundamental concepts of data structures and algorithms, providing clear explanations and examples. It covers topics such as arrays, linked lists, stacks, queues, trees, graphs, sorting, searching, and dynamic programming.

2. Cracking the Coding Interview Questions

The book presents a wide range of coding interview questions, including both traditional and behavioral questions. It breaks down the problem-solving process, offers multiple solutions, and provides detailed explanations to help you understand the underlying concepts.

3. Interview Preparation Strategies

Preparing for coding interviews can be overwhelming, but this book offers valuable guidance on how to approach the preparation process. It includes tips for resume writing, behavioral interview strategies, and guidance on how to effectively communicate your solutions during the interview.

4. Interviewer’s Perspective

One of the unique aspects of this book is that it provides an insider’s perspective on the interview process. It offers insights into what interviewers are looking for, common mistakes to avoid, and how to stand out from other candidates.

Where can you find it?

“Cracking the Coding Interview” is available in both print and digital formats. You can find it on popular online platforms such as Amazon and Barnes & Noble. Additionally, you might be able to find it in your local bookstore or library.

Remember, mastering coding interviews is not just about memorizing solutions but understanding the underlying concepts and problem-solving techniques. “Cracking the Coding Interview” serves as an excellent resource to help you achieve that.

So, grab a copy, start practicing, and ace your coding interviews!

Introduction to Algorithms

When it comes to computer science, algorithms are at the heart of it all. They are the set of instructions that tell a computer how to solve a problem or perform a task. Understanding algorithms is crucial for anyone looking to delve into the world of computer science.

One of the best books to start with is “Introduction to Algorithms” by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.

This book provides a comprehensive introduction to algorithms and covers a wide range of topics, including sorting and searching algorithms, graph algorithms, and dynamic programming. It not only explains the concepts but also provides detailed explanations of the implementation and analysis of algorithms.

Why “Introduction to Algorithms” is a must-read:

  • Clear explanations: The book breaks down complex algorithms into simple, easy-to-understand steps. It uses pseudocode and figures to illustrate the concepts, making it accessible for beginners.
  • Comprehensive coverage: “Introduction to Algorithms” covers a wide range of algorithms, ensuring that readers get a solid foundation in the subject. Whether you’re interested in sorting algorithms or network flow algorithms, this book has got you covered.
  • Real-world examples: The book provides real-world examples and case studies to demonstrate how algorithms are used in practice. This helps readers understand the relevance and applicability of the concepts.
  • Algorithm analysis: Understanding the efficiency and performance of algorithms is crucial. This book provides a detailed analysis of algorithms, including their time and space complexity. It helps readers understand the trade-offs and make informed decisions when choosing algorithms for different scenarios.

It’s worth noting that “Introduction to Algorithms” is a comprehensive and in-depth book, so it may be more suitable for readers who already have some programming experience or a strong mathematical background.

However, even beginners can benefit from the clear explanations and real-world examples provided in the book.

For those who want to further enhance their understanding of algorithms, there are additional online resources available. Websites like GeeksforGeeks and Topcoder offer a wealth of information and practice problems to sharpen your algorithmic skills.

The Pragmatic Programmer

The Pragmatic Programmer is a highly acclaimed book by Andrew Hunt and David Thomas that is considered a must-read for anyone starting their journey in computer science. This book offers practical advice and guidance on how to become a better programmer and improve your coding skills.

It covers a wide range of topics, including code organization, debugging, testing, and automation.

One of the key strengths of The Pragmatic Programmer is its ability to provide actionable advice that can be immediately implemented in real-world scenarios. The authors draw from their extensive experience in the field to offer insightful tips and techniques that can greatly enhance your programming abilities.

Whether you are a beginner or an experienced developer, this book can help you level up your skills and become a more efficient and effective programmer.

The Pragmatic Programmer also emphasizes the importance of continuous learning and professional growth. The authors encourage readers to adopt a pragmatic mindset and embrace new technologies and tools to stay ahead in the rapidly evolving field of computer science.

By following the principles outlined in this book, you can learn to write clean and maintainable code, collaborate effectively with team members, and deliver high-quality software solutions.

For more information about The Pragmatic Programmer, you can visit the official website here .

Head First Java

Head First Java is considered one of the best computer science books for beginners who want to learn the Java programming language. This book takes a unique approach to teaching programming concepts by using a visually-rich format and incorporating interactive exercises and puzzles.

It is designed to engage the reader and make learning Java fun and interactive.

With Head First Java, readers will learn the fundamentals of Java programming, including object-oriented programming, data types, control structures, and more. The book covers topics such as inheritance, polymorphism, and interfaces, which are essential concepts in Java programming.

It also provides hands-on examples and real-world scenarios to help readers apply what they have learned.

Why Head First Java is recommended for beginners?

One of the reasons why Head First Java is highly recommended for beginners is its unique teaching style. The book uses visual aids, diagrams, and illustrations to explain complex concepts in a simple and easy-to-understand manner.

This approach helps beginners grasp the fundamental concepts of Java programming without feeling overwhelmed or confused.

Another reason why Head First Java is popular among beginners is its interactive nature. The book includes interactive exercises, puzzles, and quizzes that allow readers to test their understanding of the material and reinforce what they have learned.

This hands-on approach helps beginners build confidence in their programming skills.

Additionally, Head First Java covers a wide range of topics essential for beginners, including object-oriented programming, which is a fundamental concept in Java. The book explains these concepts in a step-by-step manner, making it easy for beginners to follow along and understand the material.

Moreover, Head First Java is written by Kathy Sierra and Bert Bates, who are experienced Java programmers and educators. Their expertise and knowledge in the field make this book a reliable and authoritative resource for beginners.

If you are a beginner looking to learn Java programming, Head First Java is a great choice. It provides a solid foundation in Java programming concepts and offers an engaging and interactive learning experience.

For more information about Head First Java, you can visit the official website: https://www.headfirstlabs.com/books/hfjava/

When it comes to writing high-quality software, one of the most important factors is clean code. Clean code refers to code that is easy to read, understand, and maintain. It follows best practices and is free from unnecessary complexity or confusion.

One of the best books on this topic is “Clean Code: A Handbook of Agile Software Craftsmanship” by Robert C. Martin. This book provides practical advice and real-world examples to help developers write clean code that is easy to modify and extend.

The book covers a wide range of topics, including naming conventions, functions and classes, error handling, and code formatting. It also discusses the importance of writing tests and refactoring code to improve its quality.

Why is clean code important?

Clean code is important for several reasons. First and foremost, clean code is easier to understand. When code is clean, other developers can quickly grasp its purpose and functionality, making collaboration and troubleshooting much smoother.

Clean code also reduces the chances of introducing bugs or errors. When code is messy or convoluted, it becomes harder to spot and fix issues. On the other hand, clean code is easier to debug and maintain, saving time and effort in the long run.

Furthermore, clean code promotes good coding practices and improves overall software quality. It makes the codebase more resilient to changes and allows for easier updates or enhancements.

How to achieve clean code?

To achieve clean code, developers should follow best practices and adhere to established coding standards. This includes using meaningful and descriptive names for variables, functions, and classes, as well as organizing code into logical and modular components.

Additionally, developers should write concise and focused functions, avoiding long and convoluted code blocks. They should also remove duplicate code and strive for simplicity and clarity in their implementation.

Writing clean code also involves writing tests to validate the functionality of the code and ensure that it meets the desired requirements. Testing helps catch bugs early on and provides confidence in the code’s correctness.

Ultimately, writing clean code is a continuous process that requires practice and discipline. By investing time and effort in creating clean code, developers can greatly improve the quality and maintainability of their software.

For more information on clean code and best practices, you can visit the Clean Coders website, where you’ll find a wealth of resources and tutorials to help you become a better software developer.

Code: The Hidden Language of Computer Hardware and Software

Code: The Hidden Language of Computer Hardware and Software is an excellent book for beginners who want to understand the fundamentals of coding. Written by Charles Petzold, this book takes readers on a journey to explore the inner workings of computers and demystify the complex world of programming.

Throughout the book, Petzold explains how computers work at a basic level, from the binary representation of data to the execution of instructions. He uses simple, everyday objects like light switches and telegraph systems to illustrate these concepts, making them accessible even to those without a background in computer science.

One of the great things about this book is that it doesn’t assume any prior knowledge. Petzold starts from scratch and gradually builds up the reader’s understanding of coding principles. Whether you’re a complete beginner or someone who wants to refresh their knowledge, this book is a fantastic resource.

Why is this book recommended?

Code: The Hidden Language of Computer Hardware and Software is highly recommended for beginners due to its clear and engaging writing style. Petzold’s explanations are easy to follow, and he breaks down complex concepts into digestible chunks.

Additionally, the book is filled with fascinating historical anecdotes and real-world examples that help readers connect the dots between theory and practice.

Furthermore, Code has received rave reviews from both experts and beginners in the field. It has been praised for its ability to make complex concepts accessible and its comprehensive coverage of computer science fundamentals.

The book has become a staple in many computer science curricula and is widely regarded as one of the best introductory books in the field.

Other Recommended Books

If you’re interested in further expanding your knowledge of computer science, here are some other highly recommended books for beginners:

  • Introduction to the Theory of Computation by Michael Sipser
  • Algorithms, Part I by Robert Sedgewick and Kevin Wayne
  • Python Crash Course by Eric Matthes
  • Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
  • The Pragmatic Programmer: Your Journey to Mastery by Andrew Hunt and David Thomas

These books cover a wide range of topics, from theoretical computer science to practical programming skills. They are highly recommended for anyone looking to deepen their understanding of computer science and become a proficient programmer.

For more information on computer science books for beginners, you can visit computerscience.org . They have a comprehensive list of recommended books that can help you on your journey to becoming a computer science expert.

Structure and Interpretation of Computer Programs

“Structure and Interpretation of Computer Programs” is a highly recommended book for beginners in the field of computer science. Written by Harold Abelson and Gerald Jay Sussman, this book provides a comprehensive introduction to the fundamental concepts of programming and computer science.

It is often used as a textbook in introductory computer science courses at universities around the world.

Overview of the Book

The book focuses on the principles of programming and how to think like a computer scientist. It covers a wide range of topics, including data abstraction, recursion, higher-order procedures, and object-oriented programming.

The authors use the programming language Scheme to illustrate these concepts, but the ideas presented in the book are applicable to any programming language.

One of the key strengths of “Structure and Interpretation of Computer Programs” is its emphasis on problem-solving and the importance of understanding the underlying principles of programming. It encourages readers to think critically and analytically, teaching them how to approach complex problems and develop elegant solutions.

Why is it a Great Book for Beginners?

This book is highly regarded for its ability to explain complex concepts in a clear and concise manner. It provides a solid foundation for beginners in computer science, helping them develop a strong understanding of programming principles.

The book is filled with examples and exercises that allow readers to practice and reinforce their knowledge.

Furthermore, “Structure and Interpretation of Computer Programs” goes beyond teaching programming syntax. It teaches readers how to think like a computer scientist, emphasizing the importance of abstraction and modularity in problem-solving.

This holistic approach to learning programming makes it an invaluable resource for beginners.

Additional Resources

If you’re interested in diving deeper into computer science, there are several online resources that complement the concepts covered in “Structure and Interpretation of Computer Programs.” Some of these resources include:

  • MIT OpenCourseWare : Offers a free online course based on the book, complete with lecture notes, assignments, and video lectures.
  • Online HTML version of the book : Provides the complete text of “Structure and Interpretation of Computer Programs” for free.
  • SICP Video Lectures : A series of video lectures by the authors themselves, covering the material in the book.

By utilizing these additional resources alongside the book, beginners can further enhance their understanding of computer science concepts and solidify their programming skills.

Python Crash Course

If you are a beginner in computer science or programming, one of the best books to start with is “Python Crash Course.” This book is specifically designed to introduce you to the Python programming language and help you gain a solid foundation in computer programming.

Why Choose “Python Crash Course”?

There are several reasons why “Python Crash Course” is highly recommended for beginners:

  • Easy to Understand: The book is written in a clear and concise manner, making it easy for beginners to grasp the concepts of programming. It uses simple language and provides step-by-step instructions, allowing you to learn at your own pace.
  • Hands-on Approach: “Python Crash Course” follows a hands-on approach, providing you with practical examples and exercises to reinforce your learning. This interactive style helps you apply what you’ve learned and build your programming skills.
  • Comprehensive Content: The book covers a wide range of topics, starting from the basics of Python and gradually progressing to more advanced concepts. It covers topics such as variables, data types, control flow, functions, file input/output, and object-oriented programming.
  • Real-world Projects: One of the highlights of “Python Crash Course” is the inclusion of real-world projects. These projects give you the opportunity to apply your knowledge and build practical applications, such as a data visualization tool or a web application.
  • Online Resources: The book also provides access to online resources, including code examples, additional exercises, and a supportive community. These resources enhance your learning experience and provide additional guidance and support.

What Others Are Saying

“Python Crash Course” has received rave reviews from both beginners and experienced programmers. Many readers appreciate the book’s approachable style and hands-on exercises. It has been praised for its ability to make complex programming concepts easy to understand.

According to Goodreads , the book has an average rating of 4.4 out of 5 stars, based on thousands of reviews. Readers describe it as a “great resource for beginners” and a “must-have for anyone learning Python.”

Think Python

The best computer science books for beginners encompass a variety of topics from intro programming and algorithms to theory and hardware. Working through books like Automate the Boring Stuff with Python, Cracking the Coding Interview, Introduction to Algorithms, and others provides fundamental CS knowledge and skills for novices.

Find books aligned with your interests and learning goals, and let quality CS books launch you on your programming and computer science journey.

Similar Posts

Which Science Fiction Premise Is The Best Example Of Irony?

Which Science Fiction Premise Is The Best Example Of Irony?

Science fiction allows creators to make poignant social commentary by constructing fictional worlds that serve as ironic contrasts to our own society. Determining which sci-fi premise best embodies irony involves analyzing how the fictional scenario inverts real-world assumptions and expectations. If you’re short on time, here’s a quick answer to your question: The premise of…

The Systematic Study Of The World: An In-Depth Look At The Scientific Process

The Systematic Study Of The World: An In-Depth Look At The Scientific Process

Science plays an integral role in our modern lives, from the technology we use daily to our understanding of the universe. But what exactly makes science distinct as a mode of inquiry? At its core, science can be defined as the systematic study of the natural and physical world through observable evidence. If you’re short…

What Grade Is Environmental Science Taught?

What Grade Is Environmental Science Taught?

Environmental science is an increasingly popular subject in schools as we become more aware of the importance of protecting our planet. But what grade do students typically start learning about environmental science? In this comprehensive guide, we’ll look at the typical grade levels environmental science is introduced and the key concepts covered at each stage….

Careers That Don’T Require Math Or Science

Careers That Don’T Require Math Or Science

If complex math and science equations make your head spin, you’re not alone. Fortunately, there are plenty of great careers out there that allow you to play to your strengths while avoiding advanced technical coursework. If you’re short on time, here’s a quick answer to your question: Many careers in business, communications, the arts and…

Top Careers In Environmental Science

Top Careers In Environmental Science

Environmental science is a rapidly growing field with careers that allow you to apply science to protect the natural world. But with so many options, how do you choose the right role? In this guide, we’ll explore three top careers in environmental science and the day-to-day responsibilities of each. If you’re short on time, here’s…

An Overview Of The Core Concepts And Skills Learned In A Computer Science Education

An Overview Of The Core Concepts And Skills Learned In A Computer Science Education

Computer science encompasses a broad range of subjects and disciplines focused on computing technologies and their applications. If you’re short on time, here’s a quick answer to your question: In a computer science education, students learn programming, algorithms, data structures, computer architecture, systems design, cybersecurity, artificial intelligence, and more while building critical thinking and problem-solving…

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

computer science phd books

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

  • Menu  Close 
  • Search 

PhD Program Admissions

Chien-Ming Huang and a student work in a robotics lab.

Applying to our PhD Program

We’re thrilled that you are interested in our PhD program in computer science! This page provides an overview of the application process, some guidelines, and answers to specific questions. Please check our FAQ before emailing [email protected] with any questions not answered here.

Our program accepts a large number of applicants each year from a diverse range of backgrounds. Our applicants come directly from undergraduate or master’s programs, as well as industry positions, and from within United States and numerous countries around the world.

Visit the interactive PhD program statistics page   to view historical program data pertaining to admissions, enrollment, retention/attrition/completion, and time to degree conferral. (Select “ Computer Science” from the “Choose Program” drop-down menu.)

Ready to start your PhD application?

We’re ready for you. Click on the link below to start your application to become a PhD student at Johns Hopkins University

The Application: General Advice

The most important question we ask when reviewing applications is "Will this individual excel at research?" Every part of your application is helpful insofar as it answers this question. The three major components of an application are the statement, letters of recommendation, and grades.

This is one of the most important parts of your application; it lets us get to know you and creates a narrative of your academic career and future plans. Before you write your statement, start by thinking about what you want us to learn about you. Make a list of important achievements, perspectives, and goals. Build your statement around this list. We are looking for students who have made the most of the opportunities they have been presented with and who are smart, creative, and motivated. Keep in mind that we also have your CV and letters of recommendation, so we don’t necessarily need a list of all your accomplishments. However, your statement can fill in the narrative around what you did and, more specifically, why you did it. What motivates you? What are your research interests and why? These details aren’t found elsewhere in your application, so focus on them in your statement.

There are a few things we suggest not including in your statement. While it’s tempting to give a rationale for why you are applying to our program, don’t include it if it’s uninformed. Consider: “I want to apply to Johns Hopkins because it’s one of the premiere academic programs.” We know that already! If you do have specific reasons to be interested in our program (e.g. location, a specific project, a faculty member, etc.), be sure to mention them.

In terms of your motivation, be specific! Don’t write: “I’ve wanted to do a PhD in CS since I was six years old.” We don’t trust that six-year-olds make good career decisions. If you write “I have always found AREA X fascinating,” explain why.

Letters of Recommendation

The two most important factors of a recommendation letter are: 1) select someone who knows you well, and 2) select someone who knows how to write a letter.

First, it’s tempting to ask Professor X. to write a letter for you because they are a well-known person in the field. While we can better contextualize letters from people we know, it’s only helpful if the letter contains meaningful information. If Professor X. writes, “I’ve met the applicant a few times and they seem sharp,” that’s not useful information. It’s more important to select someone who knows you well and can discuss your achievements in detail.

Second, your letter writer should know how to write a letter. Academic research programs look for different things than a company. We often read letters from work supervisors that say nice things, but don’t speak to the qualities we find most important.

Of course, it’s a balance. You want someone who knows you well, but they still need to know how to write a good letter of recommendation.

We understand that three letters are a lot, especially for an undergraduate applying directly to a PhD program. We don’t expect each candidate to have three amazing letters. Your choices should be about balance: you want people who know you well, can write good academic letters, and know the research field. Use your choice of your three letter-writers to create this balance.

There isn’t much you can do about your grades—you have the grades you have. However, we do not use any grade cutoffs or thresholds in admissions. We want to see that you did well and excelled in whatever program you were in. Did you push yourself to take upper-level classes? Did you do well in the classes most directly related to your research area? If you have special circumstances that explain some of your grades, please include a description of them in your statement.

The Whiting School of Engineering does not require GRE General Test scores for applications to our PhD programs.

TOEFL or IELTS

Non-native English speakers must take the TOEFL or IELTS exams. Details on accepted exams, scores, and exceptions to this requirement can be found here .

Application Tips

There are many helpful guides for PhD applications. Here are a few we recommend:

  • How to be a Successful PhD Student (co-authored by our own Mark Dredze )
  • What Readers Look for in a Statement of Purpose
  • Student Perspectives on Applying to NLP PhD Programs
  • A Survival Guide to a PhD

Application Deadlines

Application Deadline:

The deadline for fall is December 15th. (No recruiting for spring admissions.)

The application will be available for submission on or around August 15.

A painting of Vivien Thomas.

Vivien Thomas Scholars

The Vivien Thomas Scholars Initiative (VTSI) is an endowed fellowship program at Johns Hopkins for PhD students in STEM fields. It provides full tuition, stipend, and benefits while also providing targeted mentoring, networking, community, and professional development opportunities. Students who have attended a historically black college and university or other minority serving institution for undergraduate study are eligible to apply. To be considered for the VTSI, all application and supplementary materials must be received by December 1, 2021.

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?

Computer engineering

Computer science.

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

Computer Science MS Handbook 2023-2024 addendum – Edited deficiency deadline information

Computer Science MS Handbook 2023-2024

Computer Science MS Handbook 2022-2023

Computer Science MCS Handbook 2023-2024 addendum - transfer between programs clarified

Computer Science MCS Handbook 2023-2024

Computer Science MCS Handbook 2022-2023

Computer Science PhD Handbook 2023-2024

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 Graduate Course Lists

Computer Science PhD Handbook  2016-2017 Computer Science PhD Handbook  2015-2016

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 MCS Handbook  2016-2017 Computer Science MCS Handbook 2015-2016

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

Computer Science MS Handbook  2016-2017 Computer Science MS Handbook 2015-2016

Data science, analytics and engineering

  • DSAE Course Lists

Data Science Analytics and Engineering MS Handbook 2023-2024

Data Science Analytics and Engineering PhD Handbook 2023-2024

MS Handbook 2022-2023 PhD Handbook 2022-2023

PhD Handbook 2021-2022

PhD Handbook 2020-2021

Approved DSAE Elective Courses (SCAI only)

Industrial engineering

  • IE Course Lists

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)

RAS Course Elective List

Software engineering

  • Course List

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

ASU Graduate College Policies and Procedures – All graduate students are responsible for following the policies.


    University of Houston
   
  Jun 30, 2024  
2024-2025 Graduate Catalog (Catalog goes into effect at the start of the Fall 2024 semester)    

2024-2025 Graduate Catalog (Catalog goes into effect at the start of the Fall 2024 semester)
|

College of Natural Sciences and Mathematics    > Department of Computer Science    > Computer Science, PhD

Our program places a strong emphasis on research and on graduates making novel contributions to Computer Science in the form of a dissertation and scholarly publications. Students pursuing the PhD degree are trained to become teachers, researchers, and technical leaders in industry, academia, or research labs.

Students will be prepared to be technical problem solvers, competent in the state of the art, and will master a particular aspect of Computer Science. They will be trained to identify and clearly formulate problems, to develop and analyze algorithmic solutions, and to direct research.

For more information, please visit the Computer Science, PhD program page.

Admission Requirements

In addition to the University    and the College of Natural Sciences and Mathematics    admissions requirements, applicants are evaluated on their previous academic record, GPA, quality of schools from which degrees were obtained, statement of purpose, resume, and three letters of recommendation. GRE scores are optional. An applicant is expected to have a Bachelor’s degree in Computer Science or a related field. If submitted, verbal, quantitative and analytical writing scores from the GRE are examined separately and are evaluated as one source of information in the total graduate application.

TOEFL or IELTS scores must be provided by applicants who did not earn a prior degree from a US institution or a country where English is the medium of instruction (see list  here   ). Visit International Students to learn more.

Admission to our graduate program is based on a competitive selection process. Meeting the minimum requirements published does not guarantee admission to our programs. Applicants will not be granted conditional admission.

Applicants can apply directly to the PhD program with a bachelor’s degree. Current UH Computer Science MS students who intend to pursue a UH Computer Science PhD are advised to submit the PhD application early and inform the Graduate Advisor of their intent.

Prerequisites and Deficiencies

Students admitted to the graduate program of the Computer Science department must have taken Calculus I, Calculus II and Linear Algebra before being admitted to the program. In addition, they are required to demonstrate an appropriate level of proficiency in computer science. Level of proficiency is defined to mean either (a) having successfully passed an equivalent course, as determined by the Director of Graduate Studies, for each subject listed below, (b) complete the corresponding course with a grade of “B-” or better at the University of Houston, or (c) successfully pass a department placement exam in each of the required subjects.

  • Equivalent Coursework - evaluation of equivalent coursework for each subject listed below will be determined by the Director of Graduate Studies at the time of initial advising.
  • Completion After Admission - upon entering the graduate program, students may remedy deficiencies by taking courses from the list below and securing at least a B- grade. Any course in which a grade of “B-” or better is not made must be repeated the following term. Each course can be taken a maximum of two times to obtain the required grade of “B-” or better.
  • Department Placement Exam - A student must submit to the Director of Graduate Studies a request to take department placement exams(s) least one month prior to the start of the first term. If approved by the Director of Graduate Studies, the exam(s) may be administered within the two weeks prior to the start of the term. The result of the department placement exam(s) will be reported by the first day of the term and included in the student’s academic file.

Courses taken to remedy deficiencies will not be counted in the total number of credit hours required for the graduate degree.

Remediation of deficiencies must be completed (a) within the first two long terms and (b) before a student will be allowed to enroll in the courses which are counted towards their degree. The only exception is the term in which the student will complete the deficiencies. In this situation, a student can enroll in courses required to remedy deficiencies concurrent with enrollment in graduate courses that will be applied towards the degree.

Courses that may be taken to remedy deficiencies in Computer Science:

  • COSC 6305 - Introduction to Computer Science II    
  • COSC 6306 - Data Structures    
  • COSC 6308 - Computer Architecture    
  • COSC 6309 - Introduction to Automata and Computability    
  • COSC 6310 - Fundamentals of Operating Systems    

Degree Requirements

Minimum credit hours required for this degree: 66.0

A student must complete a minimum of 66 credit hours subject to the following restrictions:

  • Can include 1 hour of COSC 6110
  • Can include up to 3 hours of COSC 6398 Special Problems if taken within the first four long terms of the program*
  • Can include up to 6 hours of non-COSC graduate courses*
  • Can include up to 9 hours of transfer graduate coursework following university Transfer Credit policy   *

*Requires prior approval from the director of graduate studies via a Graduate & Professional Student Petition

  • At least 24 credit hours of Doctoral Research (COSC 8x98).
  • At least 3, but not more than 12 letter-graded credit hours of dissertation (COSC 8x99), to be taken in the term of anticipated graduation.

In addition, students must fulfill the following requirements:

  • Declare a research advisor (also known as dissertation committee chair)
  • Satisfactory completion of COSC 6110 or COSC 6321
  • Satisfactory completion of the Research Competency Evaluation (RCE) Exam.
  • Satisfactory completion of the Breadth Requirement.
  • Declare a dissertation committee
  • Proposal Defense (preliminary examination): written proposal and satisfactory defense thereof.
  • Dissertation Defense: written dissertation and satisfactory defense thereof.
  • Satisfactory performance on Annual Reviews
  • Publication of doctoral research. It is recommended to work towards one or more publications before the proposal defense and additional publications or submissions before the dissertation defense.
  • Attend at least 5 department seminars per term
  • Maintain satisfactory progress. Failure to meet degree, department, college, and university requirements and policies may be dismissed from the PhD program
Requirement Time Restrictions
Research Advisor By end of first  long term
COSC 6110 or COSC 6321 By end of second long term
RCE Exam By end of third long term
Breadth Requirement By end of second long term after passing the RCE Exam
Dissertation Committee By end fourth long term
Annual Review Each year starting in the third year
Proposal Defense By end of third long term after passing the Breadth requirement
Dissertation Defense May not be in the same term as the Proposal Defense

Time Limitations

Students who enroll as doctoral candidates must complete their degree requirements within 10 years of the date of first enrollment with a doctoral degree objective.  All courses used towards the degree, including transferred and substituted courses, must not be older than 10 years at the time of graduation. Failure to comply will result in the candidate being ineligible for a doctoral degree.

Doctoral students who fail to complete their dissertation within five years after completion of the comprehensive examination must retake the examination.

Refer to the Time Limitations of Completion of Degree Requirements    section of the Graduate Catalog.

an the end of the Spring or Fall semester.

1. Research Advisor

Students are urged to find a research advisor as early as possible. Full-time and part-time students must declare a research advisor by the end of the first long term by completing the required form. Student may enroll in doctoral research hours once they have declared a research advisor.

2. Graduate Colloquium/Research Methods

All PhD students are required to pass COSC 6110 - Graduate Colloquium or COSC 6321 - Research Methods in Computer Science by the end of the second long term in the program.

3. Research Competency Evaluation (RCE) Exam

PhD students are expected to spend a substantial amount of time on research starting in the first semester. The RCE requires students to learn and demonstrate specific skills necessary to doing research early in their career. These include the ability to perform a literature review, understand and synthesize research topics, conduct independent and collaborative research to the standards of the chosen discipline, and communicate the findings in a scholarly fashion.

For the RCE exam, the student (in consultation with their research advisor) selects and conducts research on a topic, writes an ACM/IEEE style paper, and presents a talk, to be approved by the student’s RCE committee. A student may submit and present their own submitted or published research for RCE requirements. The RCE committee will evaluate the student with respect to two questions:

  • Has the student demonstrated scholarship and potential to conduct original research?
  • Has the student demonstrated the ability to communicate technical content effectively to a general computer science audience?

The RCE exam must be completed by the end of the third long term of the PhD program. It is not necessary to complete all coursework before attempting the RCE exam.

The student will either pass or fail the RCE exam, and this decision, based on a majority vote of the committee, will be communicated to the student immediately after the conclusion of the exam. Once the student passes, they may proceed with the preparation of the dissertation proposal. If failed, the student may request a second attempt. For a second attempt, the RCE committee will assign additional work, which should be completed and presented at the end of the next long term. Students who fail the second attempt will be discontinued from the PhD program.

The student’s RCE committee should comprise of at least 3 Computer Science faculty members (not including the research advisor) and approved by the Director of Graduate Studies. At least one committee member should be from outside the student’s research area. The research project topic for the RCE will be selected in consultation with the student’s research advisor. Once the evaluation has taken place, the Chair of the RCE committee will inform the student and the Director of Graduate Studies about the outcome of the exam. Should a student

switch their research advisor after completing the RCE requirement, the student is not required to retake the RCE exam.

Additional details of the RCE exam can be found on the Computer Science website

4. Breadth Requirements

A student satisfies the core requirement by taking a set of three or more courses from the lists below. At least one course must be from the Theory list and one from the Systems list. The remaining course may be from either list. In exceptional cases, the Director of Graduate Studies may transfer or substitute at most two of the three courses based on equivalent courses taken at another university following transfer or course substitution policies. Similarly, any breadth course taken as a MS Computer Science student at UH may count towards the breadth requirement following transfer and course substitution policies. Time limitations apply to transferred and substituted courses.

  • COSC 6320 - Data Structures & Algorithms Credit Hours: 3.0
  • COSC 6342 - Machine Learning Credit Hours: 3.0
  • COSC 6364 - Adv Numerical Analysis Credit Hours: 3.0
  • COSC 6369 - Theory of Computation Credit Hours: 3.0
  • COSC 6340 - Database Systems Credit Hours: 3.0
  • COSC 6360 - Operating Systems Credit Hours: 3.0
  • COSC 6377 - Computer Networks Credit Hours: 3.0
  • COSC 6385 - Computer Architecture Credit Hours: 3.0

Breadth Requirement Completion Period

The “breadth requirement completion period” begins as soon as the student has successfully passed the RCE Exam. The breadth requirement completion period applies to PhD students as well as MS students who later pursue the PhD program.

Full-time students must complete the breadth requirements in at most two consecutive long terms after passing the RCE Exam. Part-time students (6 hours or less every term) must complete the breadth requirement in at most four  consecutive long terms after  passing the RCE Exam. Failure to complete this requirement within the specified timeframe normally results in an MS student not being allowed to continue into the PhD program and a PhD student being dismissed from the PhD program.

5. Dissertation Committee

The dissertation committee must be comprised of a minimum of four members to include three internal members (inclusive of the research advisor who serves as the dissertation committee chair or co-chair) who have their primary faculty appointment within the major department and one approved external member from outside the major department at UH, industry or other academic institution who is acceptable to the department and approved by the college. A faculty member with a joint appointment in the major department is considered as an external member unless he/she chairs the committee. In this case, an additional external member outside the major department is required. After these minimum requirements for committee members are satisfied, additional committee members may be approved, but at least 50% of the committee must be tenured/tenure-track faculty at the University of Houston. Research faculty, instructional faculty and emeritus faculty may serve on dissertation committees, but not chair the committees. However, a research professor may serve as a co-advisor with a tenured/tenure-track faculty. For the purpose of the committee composition, an emeritus faculty is considered as internal non-tenure-track faculty member.

6. Proposal Defense

A student must pass a proposal defense (also referred as the preliminary examination) administered by the student’s dissertation committee. The purpose of the proposal defense is to evaluate and give feedback on the proposed dissertation research of the student.

The student must prepare the dissertation proposal document using the NSM PhD dissertation template and present the proposal to the dissertation committee. The proposal document should include an overview of the proposed work, relevant related work, completed work, and a plan for the work to be completed in the dissertation. The presentation should cover the same topics in the proposal document, and include a listing of coursework completed, publications, and a proposed timeline for key activities to complete in the dissertation. The proposal document should be submitted to the dissertation committee at least two weeks before the proposal defense.

The proposal defense is open to the public and should be announced two weeks in advance. All may ask the student questions related to the proposal or the student’s preparation for doctoral-level research. The committee may have a closed session with the student at the end of the proposal defense. The committee will submit a written report to the Director of Graduate Studies concerning the student’s performance on the proposal defense and assign an overall evaluation of satisfactory (pass) or unsatisfactory (fail). A student will be informed of the outcome and upon receiving a satisfactory evaluation, the student becomes a PhD candidate.

Details on how to announce the defense can be found on the Computer Science website .

Full-time and part-time students must attempt the proposal defense no later than the end of the third long term after completing the breadth requirement. The proposal defense cannot be held before fulfilling the breadth requirement. The proposal defense must be completed at least one term before the dissertation defense.

Ideal candidates should have one or more publications before the proposal defense and additional publications or submissions before the dissertation defense.

7. Dissertation Defense

A PhD candidate will be required to present their dissertation in a public defense. The dissertation defense and the proposal defense may not be scheduled in the

same term. The dissertation committee decides the acceptability of the dissertation. Candidates are expected to publish results of their dissertation research prior to the dissertation defense. Ideal candidates should have one or more publications before the proposal defense and additional publications or submissions before the dissertation defense.

The dissertation defense is open to the University community and the student must inform the department at least two weeks in advance so that it can be publicized. Details on how to announce the defense can be found on the Computer Science website  .

8. Annual Review

Every PhD student must complete the formation of a dissertation committee no later than the end of the 2nd year in the program. Each student will be reviewed annually by the dissertation committee during a review meeting; the review is mandatory starting on the 3rd year. The review meeting should be integrated to the proposal defense in the year in which the proposal defense takes place, and it is not necessary in the year of the dissertation defense.

After meeting with the student, the dissertation committee will submit a “PhD Annual Review - Committee Evaluation Form” to the Director of Graduate Studies. The evaluation can be satisfactory “S”, unsatisfactory “U”, or needs improvement “NI”. If the student receives a “U” or “NI” grade, the student must be provided with a clear plan to return to a satisfactory status and reviewed again in the next long term. A subsequent evaluation of “NI” or “U” can result in removal of the program.

The PhD Annual Review - Self-Evaluation Form must be submitted by the student before the following deadlines: October 31 (during fall) or May 31 (during spring)

The PhD Annual Review - Committee Evaluation Form must be submitted by the dissertation committee no later than the end of the Spring or Fall semester.

Academic Policies

  • University of Houston Academic Policies    
  • Academic Policies: College of Natural Sciences and Mathematics    
-->

Oakland University is accredited by the Higher Learning Commission, a regional accreditation agency recognized by the U.S. Department of Education

    Oakland University
   
  Jun 30, 2024  
2024-2025 Graduate Catalog    
2024-2025 Graduate Catalog

301 Engineering Center • (248) 370-2217 • Fax (248) 370-4261  (map) www.secs.oakland.edu

Dean: Louay M. Chamra Associate dean: Qian Zou

Director of Research: Daniel N. Aloi Business manager: Keith Harvey Department chairs: Shailesh Lal, Bioengineering Hua Ming, Computer Science and Engineering Vijitashwa Pandey, Industrial and Systems Engineering Osamah Rawashdeh, Electrical and Computer Engineering Xia Wang, Mechanical Engineering


David Boddy, Ph.D., Purdue University
Bhushan L. Bhatt, Ph.D., Oakland University
Robert H. Edgerton, Ph.D., Cornell University
Richard E. Haskell, Ph.D., Rensselaer Polytechnic
    Institute
Michael Y. Y. Hung, Ph.D., University of Illinois
Glenn A. Jackson, Ph.D., University of Michigan
Janusz W. Laski, Ph.D., Technical University of Gdansk
Michael P. Polis, Ph.D., Purdue University
Sarma R. Vishnubhotla, Sc.D., Washington University in St. Louis
Gilbert L. Wedekind, Ph.D., University of Illinois


Hoda S. Abdel-Aty-Zohdy, Ph.D., University of Waterloo
    (Canada)
Daniel N. Aloi, Ph.D., Ohio University
Gary C. Barber, Ph.D., University of Michigan
Louay M. Chamra, Ph.D., Pennsylvania State University
Ka Chai Cheok, Ph.D., Oakland University
Manohar Das, Ph.D., Colorado State University
Huirong Fu, Ph.D., Nanyang Technological University (Singapore)
Subramaniam Ganesan, Ph.D., Indian Institute of Science
    (Bangalore)
Sergey Golovashchenko,Ph.D., Bauman Moscow State Technical University
Edward Y. L. Gu, Ph.D., Purdue University
Randy Gu, Ph.D., State University of New York, Buffalo
Laila Guessous, Ph.D., University of Michigan-Ann Arbor
Darrin M. Hanna, Ph.D., Oakland University
Dae-Kyoo Kim, Ph.D., Colorado State University
Shailesh Lal, Ph.D., University of Nebraska-Lincoln
Jia Li, Ph.D., University of Michigan
Lunjin Lu, Ph.D., University of Birmingham (England)
Gerard Madlambayan, Ph.D., University of Toronto (Canada)
Zissimos P. Mourelatos, Ph.D., University of Michigan
Sayed A. Nassar, Ph.D., University of Cincinnati
Barbara Oakley, Ph.D., Oakland University
Richard Olawoyin, Ph.D., Pennsylvania State University
Vijitashwa Pandey, Ph.D., University of Illinois, 
Urbana-Champaign
Guangzhi Qu, Ph.D., University of Arizona
Hongwei Qu, Ph.D., University of Florida
Osamah Rawashdeh, Ph.D., University of Kentucky
Sankar Sengupta, Ph.D., Clemson University
Ishwar Sethi, Ph.D., Indian Institute of Technology
    (Kharagpur)
Gautam B. Singh, Ph.D., Wayne State University
Xia Wang, Ph.D., Rensselaer Polytechnic Institute
Lianxiang Yang, Ph.D., University of Kassel (Germany)
Mohamed A. Zohdy, Ph.D., University of Waterloo
    (Canada)
Qian Zou, Ph.D., Tsinghua University (China)



Shadi G. Alawneh, Ph.D., Memorial University (Canada)
Mehdi Bagherzadhi, Ph.D., Iowa State University
Yin-Ping Chang, Ph.D., Pennsylvania State University
Christopher Cooley, Ph.D., the Ohio State University
Brian Dean, Ph.D., University of Wyoming
Debatosh Debnath, Ph.D., Kyushu Institute of Technology
    (Japan)
Dan DelVescovo: Ph.D., University of Wisconsin-Madison
Krzystof Kobus, Ph.D., Oakland University
Michael A. Latcha, Ph.D., Wayne State University
Anyi Liu, Ph.D., George Mason University
Daniel Llamocca, Ph.D., University of New Mexico
Wing-Yue Louie, Ph.D., University of Toronto (Canada)
Jonathan Maisonneuve, Ph.D., Concordia University
Hua Ming, Ph.D., Iowa State University
Richard Olawoyin, Ph.D., Pennsylvania State University
Vijitashwa Pandey, Ph.D., University of Illinois, Urbana-Champaign
Julian Rrushi, Ph.D., University of Milan (Italy)
Mohammad-Reza Siadat, Ph.D., Wayne State University

 


Sarah Beetham, Ph.D., University of Michigan-Ann Arbor
Jingshu Chen, Ph.D., Michigan State University
Jun Chen, Ph.D., Iowa State University
Marco Gerini-Romagnoli, Ph.D., Oakland University
Amanpreet Kaur, Ph.D., Michigan State University
Tianle Ma, Ph.D., State University of New York at Buffalo
Ali Ahmad Malik, Ph.D., University of Southern Denmark (Denmark)
Ryan Monroe, Ph.D., Michigan State University
Nasim Nezamoddin, Ph.D., State University of New York - Binghamton
Sunny Raj, Ph.D., University of Central Florida
Amartya Sen, Ph.D., Missouri University of Science & Technology
Mohammad Wardat, Ph.D., Iowa State University
Alycen Wiacek, Ph.D., Johns Hopkins University
Steve Wilson, Ph.D., University of Michigan-Ann Arbor
Lanyu Xu, Ph.D., Wayne State University
Ankun Yang, Ph.D., Northwestern University
Yongsoon Yoon, Ph.D., University of Minnesota


Stephen Bazinski, Ph.D., Oakland University
Katherine Bowers, Ph.D., Oakland University
Angel Bravo, Ph.D., University of North Texas
William Edwards, Ph.D., Oakland University
Hadeel M. Jawad, Ph.D., Eastern Michigan University 
Steven Louis, Ph.D., Oakland University
Khalid Mirza, Ph.D., The Ohio State University
Zhijun Wu, Ph.D., Oakland University



Solmaz Salehian, Visiting Assistant Professor, Oakland University
Makram Soui, Visiting Assistant Professor, University Lille (France)



Alex Alkidas, Ph.D., Georgia Institute of Technology
Robert F. Bordley, Ph.D., University of California, Berkeley
Dennis A. Corrigan, Ph.D., University of Wisconsin-Madison
Edward Groff, Ph.D., Pennsylvania State University
Jerry Ku, Ph.D., State University of New York at Buffalo
Yung-Li Lee, Ph.D., University of Wisconsin-Madison
Abbas Nazri, Ph.D., Case Western Reserve University
Patrick Phlips, Ph.D., Oxford University
Mutasim Salman, Ph.D., University of Illinois, Champaign
Kwo Young, Ph.D., Princeton University


Preston L. Brooks, M.S.E.E., Stanford University, M.B.A.,
     University of San Diego
Bruce K. Geist, Ph.D., Rensselaer Polytechnic Institute
Shuxin Gu, Ph.D., University of Michigan-Ann Arbor
Gerard R. Jozwiak, Ph.D., Wayne State University
Anson Lee, Ph.D., Oakland University
Mark Lefsrud, Ph.D., University of Tennesee, Knoxville
Simon Chin-Yu Tung, Ph.D., Rensselaer Polytechnic Institute



Patrick Hillberg, Ph.D., Oakland University

General information

The heart of the School of Engineering and Computer Science is the Engineering Center, which houses most of the undergraduate laboratories and faculty offices.  Additionally, the new SECS Research and Innovation Center, Dodge Hall, and the Math and Science Center house the extensive laboratories for research. Laboratories cover automotive mechatronic systems, robotics, machine vision, experimental stress analysis, heat transfer, fluid mechanics, system simulation, circuits, and communications, controls, mechanical and electrical properties of materials, tribology, solid-state devices and microelectronics, microprocessors, computer-integrated manufacturing, computer graphics and computer-aided design, internal combustion engines, lean, product lifecycle management(PLM), ergonomics and human factors, artificial intelligence, cybersecurity, and Hardware-in-the-Loop (HIL). Students have access to the various computing facilities of the school and the university’s computer services. Fully equipped and staffed electronics, computers, and machine shops complement these facilities. Listed below are the SECS programs of study.

Ph.D Programs:

  • Doctor of Philosophy in Computer Science and Informatics    
  • Doctor of Philosophy in Electrical and Computer Engineering    
  • Doctor of Philosophy in Mechanical Engineering       
  • Doctor of Philosophy in Systems Engineering    (School-wide program)

M.S. Programs:

  • Master of Science in Artificial Intelligence      
  • Master of Science in Computer Science       
  • Master of Science in Cyber Security    
  • Master of Science in Software Engineering and Information Technology    
  • Master of Science in Electrical and Computer Engineering       
  • Master of Science in Embedded Systems      
  • Master of Science in Mechatronics and Robotics Engineering      
  • Master of Science in Industrial and Systems Engineering          
  • Master of Science in Engineering Management         in cooperation with the School of Business Administration
  • Master of Science in Systems Engineering     
  • Master of Science in Mechanical Engineering      

  Combined B.S./M.S. Programs:  

  • Computer Science, B.S./Cybersecurity, M.S., Combined B.S./M.S .​
  • Computer Science, Combined B.S./M.S.
  • Computer Science, B.S./Software Engineering and Information Technology, M.S., Combined B.S./M.S.
  • Information Technology, B.S./Computer Science, M.S., Combined B.S./M.S.
  • Information Technology, B.S./Cybersecurity, M.S., Combined B.S./M.S.
  • ​ Information Technology, B.S./Software Engineering and Information Technology, M.S., Combined B.S./M.S.
  • Mechanical Engineering, B.S./M.S.

Graduate Certificates:

  • Stackable Graduate Certificate in Foundations of Computer Science    
  • Stackable Graduate Certificate in Edge AI and IoT    
  • Stackable Graduate Certificate in AI for Cyber Security and Trustworthy AI      
  • Stackable Graduate Certificate in Augmented and Virtual Reality    
  • Stackable Graduate Certificate in Artificial Intelligence for IT Operations (AIOps)    
  • Stackable Graduate Certificate in Embedded AI    
  • Stackable Graduate Certificate in Ethics of AI    
  • Stackable Graduate Certificate in Machine Learning    
  • Stackable Graduate Certificate in Smart Manufacturing and Industry 4.0    
  • Stackable Graduate Certificate in Machine Vision and Robotics    
  • Graduate Certificate in Mechatronics and Robotics Fundamentals    (stackable towards an MS in Mechatronics and Robotics Engineering)
  • Graduate Certificate in Automotive Electrification    (stackable towards an MS in Mechatronics and Robotics Engineering)
  • Graduate Certificate in Automotive Mechatronics    (stackable towards an MS in Mechatronics and Robotics Engineering)
  • Graduate Certificate in Autonomous Vehicle Systems    (stackable towards an MS in Mechatronics and Robotics Engineering)
  • Graduate Certificate in Human-Robot Interactions    (stackable towards an MS in Mechatronics and Robotics Engineering)
  • Graduate Certificate in Robotic Systems    (stackable towards an MS in Mechatronics and Robotics Engineering)
  • Graduate Certificate in System Dynamics    (stackable towards an MS in Mechatronics and Robotics Engineering)
  • Graduate Certificate in Systems and Controls     (stackable towards an MS in Mechatronics and Robotics Engineering)
  • Graduate Certificate in Productivity Improvement     

Advisory Board

The Advisory Board for the School of Engineering and Computer Science (SECS) is composed of leaders in industry. They assist the school in developing educational and research programs to meet the rapidly expanding requirements in the technical world. The board is available as a body or individually for consultation on such matters as curriculum, research, facilities, equipment requirements, special subjects and long-range planning.

Click here for a complete list of SECS Advisory Board members   .

Centers and Institutes

The School of Engineering and Computer Science (SECS) has centers for product development and manufacturing and laboratories for systems design, real time computer systems, robotics, controls research, artificial intelligence, tribology, fluid mechanics, and thermodynamics.

Click here for a complete list of SECS centers and Institutes   .   

Graduate assistantships and fellowships

A number of graduate assistantships and a limited number of fellowships are awarded each year on a competitive basis. They carry both stipend and tuition remuneration. Graduate assistants render 20 hours per week of teaching and/or research service to the university. No such service is required of graduate fellows. Graduate assistants or fellows at the master’s level who plan to enter either the area of research and development in industry or a doctoral program are strongly encouraged to include a master’s project or thesis as part of their program.

HELP MAUI • JOB OPENINGS

Information and Computer Sciences

Information and Computer Sciences

University of Hawai‘i at Mānoa

Master of Science in Computer Science

The M.S. in Computer Science degree program provides advanced education in all areas of computer science. It is useful for those wishing to go into leadership roles in high tech organizations. This degree can also provide the foundation for application to Ph.D. programs. Our objective is to help students achieve a high level of professional competence and lifelong learning. M.S. students may choose either an applied emphasis by pursuing the software development project pathway (Plan B) or a research emphasis by pursuing the thesis pathway (Plan A).

More Information

  • Prospective M.S. Students
  • Current M.S. 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.

Contact : ICS Graduate Chair

Machine Learning & Data Science Foundations

Online Graduate Certificate

Apply to Expand Your Future

As the value of data continues to skyrocket, companies are in need of people who can transform large data sets into rich analytical insights. Now, you can learn these techniques in Carnegie Mellon’s cutting-edge online program. Apply today to expand your future in machine learning and data science.  

Are we the right fit?  

Let’s face it, pursuing any kind of advanced training is an investment of your time, energy and resources. Before you consider our program, make sure your background aligns with our program expectations.  

Successful applicants will have:

  • A bachelor’s degree in STEM or related field  Successful applicants will hold a degree in a science, technology, engineering or math-related field. Other degrees will be considered if the applicant can show the necessary proficiency in math and programming.  
  • Proficiency in advanced math  Students should provide evidence of successful completion of advanced math coursework such as calculus, linear algebra and statistics.  
  • Proficiency in programming  Students should be proficient in Python, R, or an analogous programming language, with experience writing at least 1000 lines of code.  
  • Relevant work experience   Ideally, applicants will have some relevant work experience in either computer programming or a related field. Internships or other related work are acceptable.  
  • A disciplined and motivated mindset  Harder to measure, but equally important, successful applicants will have a resilient spirit, a hunger to learn, and a knack for solving problems through technical innovation. With courses taught by CMU faculty from the #4 computer science school in the country, a consistent and conscious effort will be required to master each topic.

If you have questions about the program or how it aligns with your background, please call 412-501-2686 or send an email to  [email protected]  with your inquiries .

Application Requirements

Ready to apply? Here’s what you’ll need to complete the admissions process: 

✔ Complete the online application Submit your application in the application portal.

✔ Submit your resume/CV We’d like to learn more about your employment history, academic background, technical skills, and professional achievements. Submit a 1 to 2 page resume or CV showcasing your experience. 

✔ Submit your transcripts Submit an unofficial copy of your transcript for each school you attended. Transcripts must include your name, the name of the college or university, the degree awarded (along with the conferral date), as well as the grade earned for each course. Email your transcripts directly to [email protected] .  

✔  Upload a statement of purpose Tell us your professional story. Where have you been, and where do you hope to go? In 500 words or less, please share how our program would advance your capabilities in your current role or prepare you for a new role in the industry. 

✔ Submit your TOEFL, IELTS, or DuoLingo test scores An official TOEFL, IELTS, or DuoLingo test is required for non-native English speakers. This requirement will be waived, however, for applicants who either completed an in-residence bachelor’s, master’s, or doctoral degree program in the United Kingdom, United States, or Canada (excluding Quebec) or have at least three years of professional work experience using English as their primary language. If you fall into one of these categories, please include this information on your resume.  

Tuition: Invest in Your Future

By enrolling in our graduate-level program, you'll be investing in your professional growth to expand your skillset or advance your career. We know this is a significant investment. Not just for you, but for your family as well.

Scholarships To help offset the cost of tuition, and to make our program as accessible as possible, we offer a limited number of partial, merit-based scholarships. All applications will be evaluated for these awards automatically; there is no need to submit additional materials. If you are awarded a scholarship, you will be notified in your decision letter.  All applicants who submit by the priority deadline will receive a partial scholarship award.

In addition, Carnegie Mellon alumni are eligible for a scholarship to the Graduate Certificate in Machine Learning & Data Science Foundations worth up to 20% of tuition. Indicate your alumni status within the application to be eligible.

So, what is the investment per course? Below is a breakdown of our tuition for the 2024/2025 academic year:

Course Units Investment

Mathematical Foundations of Machine Learning

6 units $4,242

Computational Foundations for Machine Learning

6 units $4,242

Python for Data Science (Part 1)

6 units $4,242

Python for Data Science (Part 2)

6 units $4,242
Foundations of Computational Data Science (Part 1) 6 units $4,242
Foundations of Computational Data Science (Part 2) 6 units $4,242

Total Investment

  • An additional technology fee of approximately $230 will be assessed each semester.
  • The rates above are for the 2024/2025 academic year only. If the program is not completed within that time frame, tuition may increase slightly for the following academic year.

Financing Your CMU Graduate Certificate

Monthly payment plan.

CMU provides a monthly payment option , managed by Nelnet Campus Commerce, designed to help students spread out tuition payments into manageable monthly installments. This plan also offers the ease of online enrollment. Should you be admitted and choose to join us, we recommend registering for this plan early to fully benefit from the range of payment options available.

Financial Aid & Private Loans

Students pursuing a graduate certificate are not eligible to receive federal financial aid. However, private loans are a viable alternative to consider with competitive interest rates and borrower benefits. See FastChoice , a free loan comparison service to easily research options.

Employer Tuition Reimbursement

Many companies offer tuition reimbursement programs to foster professional development among their employees. We encourage you to contact your HR department to find out if similar opportunities exist at your workplace. 

When you speak to your employer, you can share that our program: 

  • Consists of transcripted, credit-bearing courses (not just continuing education units). You will earn 36 Carnegie Mellon graduate-level credits when you complete the full program.  
  • Equips you with foundational skills in AI, machine learning, and computational data science, which means you’ll be ready to extract meaningful insights from large, complex data sets right from the get-go. With the #1 program in Artificial Intelligence and the #1 Programming Languages school in the country, CMU is the ideal place to learn these skills and techniques.
  • Features coursework taught by CMU faculty experts who are spearheading research in language technologies, computer science, machine learning, and human-computer interaction. 
  • Is delivered completely online , which means you can take classes on your own time while maintaining your normal work schedule.

Not sure how to approach your employer? Need specific documents to proceed with enrollment?  Call 412-501-2686 or send an email to  [email protected]  with your inquiries .  We’re here to help you take the next step in your professional  journey. 

CMU EMPLOYEE TUITION REIMBURSEMENT

The Graduate Certificate in Machine Learning & Data Science Foundations is eligible for CMU tuition remission. Review the   CMU tuition remission policy   to check your eligibility.

A Note for International Applicants

As part of a global university with locations and students from around the world, the School of Computer Science welcomes the diverse perspectives that international students bring to our programs.

The Graduate Certificate in Machine Learning & Data Science Foundations provides a unique opportunity for individuals nearly everywhere to earn a certificate at the intersection of AI, machine learning, and computational data science from one of the top ranked computer science schools in the country. 

To help ensure you are fully prepared for the admissions process and, if admitted, for success as a student, this section provides detailed information about requirements for international applicants.

We look forward to reviewing your application.

The Graduate Certificate in Machine Learning & Data Science Foundations considers for admission international applicants who reside within, or outside of, the domestic United States. International applicants who reside within or outside of the domestic United States are advised of the following information and additional requirements for international applicants to the program.

Student Visas

Since this program is fully online, enrollment in this program will not qualify students for any type of visa to enter or remain in the United States for any purpose. 

Time and Attendance Requirement  

Classes for the program will be taught on the U.S. Eastern Time zone schedule, and students must be available to attend all live classes, regardless of location.

U.S. Sanctions; U.S. Sanctioned Countries

Individuals who are the target of U.S. sanctions or who are ordinarily resident in a U.S. sanctioned country or who live or expect to live in a U.S. sanctioned country while participating in the program are not eligible for admission to this program due to legal restrictions/prohibitions and should not apply. U.S sanctioned countries are currently Belarus, Cuba, Iran, North Korea, Russia, Syria and the following regions of Ukraine: Crimea, Donetsk and Luhansk. In addition, all or a portion of this program may not be available to individuals who are ordinarily resident of certain countries due to legal restrictions.  

Applications received from these individuals will not be accepted. As well, if an individual is admitted to the program and subsequently the individual becomes the target of U.S. sanctions, ordinarily resident of a U.S. sanctioned country or lives in a U.S. sanctioned country while participating in the program (or otherwise becomes ordinarily resident of country in which the program is not available due to legal restrictions), the individual’s continued enrollment in the program may be terminated and/or restricted (due to U.S. legal restrictions/prohibitions) and the individual may not be able to complete the program.  

Licensure in Various Jurisdictions

From time to time Carnegie Mellon reviews the licensing requirements of various jurisdictions in order to assess whether Carnegie Mellon may be precluded from making the program available to applicants that are residents of one or more of these jurisdictions prior to Carnegie Mellon obtaining the relevant license(s). Affected applicants from these jurisdictions, if any, will be notified prior to enrollment if Carnegie Mellon determines that it is unable to make the program available to them for this reason.

Value Added Tax (VAT) and Other Taxes

The tuition, required fees and other amounts quoted for this program do not include charges for applicable Taxes (hereinafter defined). The student is responsible for payment of all applicable Taxes (if any) relating to the tuition, required fees and other amounts required to be paid to Carnegie Mellon for the program, including any Taxes payable as a result of the student’s payment of such Taxes. 

Further, the student must timely make all payments due to Carnegie Mellon without deduction for Taxes, unless the deduction is required by law. If the student is required under applicable law to withhold Taxes from any payment due to Carnegie Mellon, the student is responsible for timely (i) paying to Carnegie Mellon such additional amounts as are necessary so that Carnegie Mellon receives the full amount that it would have received absent such withholding, and (ii) providing to Carnegie Mellon all documentation, if any, necessary to permit the student and/or Carnegie Mellon to claim the application of available tax treaty benefits (for Carnegie Mellon review and completion, if warranted and acceptable). 

Taxes mean any taxes, governmental charges, duties, or similar additions or deductions of any kind, including all use, income, goods and services, value added, excise and withholding taxes assessed by or payable in the student’s country of residence and/or country of payment (but does not include any U.S. federal, state or local taxes).

  • What kind of academic background do I need? Successful applicants will have a bachelor’s degree in a STEM-related field. Other degrees will be considered if the applicant can show the necessary proficiency in math and programming. Applicants should also have proficiency in programming languages like Python or R, with experience writing up to 1000 lines of code. 
  • Do I need work experience? Applicants will ideally have some relevant work experience in either computer programming or a related field. Internships or other related work are also acceptable.
  • What materials do I need to submit when I apply to this program? Besides the online application, applicants must submit a current resume, transcripts, and a personal statement to be considered for enrollment.
  • Is there an application fee? No, this program does not require an application fee.
  • When is the application deadline?  All applicants who submit by the priority deadline of July 9, 2024 will receive a partial scholarship award. The final deadline to apply is July 30, 2024.
  • How do I check the status of my application? You can view the status of your application at any time in the application portal. A decision letter from Carnegie Mellon will be sent through the application portal within a few weeks of submitting your online application.
  • After I submit my application, when will I hear back? You’ll receive a decision letter within a few weeks of submitting your application.
  • Is a deposit required to secure my spot? No, a deposit is not required to secure your spot in the program.
  • If I choose to complete the entire certificate, what is my total investment? The total investment for the Machine Learning & Data Science Foundations certificate during the 2024/2025 academic year is $25,452. A breakdown of the tuition and fees can be found above. Partial scholarships are available. All applicants who submit by the priority deadline of July 9, 2024 will receive a partial scholarship award. Carnegie Mellon alumni are eligible for a scholarship to the Graduate Certificate in Machine Learning & Data Science Foundations worth up to 20% of tuition.
  • Is this program eligible for CMU tuition remision? Yes, the Graduate Certificate in Machine Learning & Data Science Foundations is eligible for CMU tuition remission. Review the   CMU tuition remission policy   to check your eligibility.

Application Deadlines

Priority*: July 9, 2024 Final: July 30, 2024

*All applicants who submit by the priority deadline will receive a partial scholarship award.

Request Info

Questions? There are two ways to contact us. Call 412-501-2686 or send an email to  [email protected] with your inquiries.

Fast Admission Decisions

Applications are evaluated on a bi-weekly basis, which means you’ll receive a decision letter fast,  within a few weeks  of submitting your application .  

At CMU, we recognize the value of time well spent. Quick decisions mean less time wasted and more time preparing for your future.

Due to the individual nature of the coursework, space is limited for our program - applications will be accepted until the class is full.

IMAGES

  1. Saraswati House e-books

    computer science phd books

  2. Hand Book of Computer Science 5 Edition: Buy Hand Book of Computer

    computer science phd books

  3. Journal of Computer Science and Technology (JCST)

    computer science phd books

  4. Computer Science

    computer science phd books

  5. The Computer Science Book

    computer science phd books

  6. The Computer Science Activity Book

    computer science phd books

VIDEO

  1. Fully Funded PhD Scholarship at the Institute of Science and Technology Austria (ISTA)

  2. Churchill College Annual Computer Science Lecture

  3. Latest Phd Research Topics in Computer Science

  4. Learning AI: AI data from 2010-2021 (Industry vs. Academia)

  5. Best Ways To Be Accountable for Your Research Trajector

  6. PhD Viva Presentation Examination Dr VS Rathore(1)

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. Textbooks, Computer Science

    The MIT Press has been a leader in open access book publishing for over two decades, beginning in 1995 with the publication of William Mitchell's City of Bits, which appeared simultaneously in print and in a dynamic, open web edition. ... Browse selected textbook titles in Computer Science. Machine Learning. Foundations of Computer Vision ...

  4. Writing for Computer Science by Justin Zobel

    Indispensable. As a Computer Science PhD candidate, I was absolutely shocked to see a book like this even exists - it seems so specific, but writing in the Computer Science field is often terrible, and Justin Zobel's book painlessly dissects what makes CS papers so bad, and how to avoid those problems.

  5. 21 Computer Science Books For Beginners

    For that we recommend C++ Primer (5th Edition) by Stanley B. Lippman, Josée Lajoie, and Barbara E. Moo. This is, admittedly, a little dry. But it's a practical guide to learning the necessary functions in first time computer programming. It also has detailed explanations with practical applications.

  6. 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.

  7. 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.

  8. 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 .

  9. PDF 202305 Computer Science PhD Handbook

    The coursework for the CS PhD consists of the following, per the current 2023-24 GT Catalog year: CS 7001- Intro to Grad Studies, 5 hours. Breadth Requirement, 12 hours. The Breadth component of the program is intended to give students a view into a variety of areas within computing.

  10. 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.

  11. Computer Science books, ebooks, and academic reference books

    This series offers books on theoretical computer science, that part of computer science concerned with fundamental mathematical questions about computers,… Studies in Natural Language Processing Volumes in the Studies in Natural Language Processing series provide comprehensive surveys of current research topics and applications in the field of…

  12. Any essential comp sci books that you wish you read earlier?

    Computer science books would be things like any 1 of several algorithms & data structures books The Art of Computer Programming Types and Programming Languages ... This was used as the text for a graph algorithm class I took in graduate school I think it feels like a really intuitive and interesting way to describe the subject. Personally, I ...

  13. 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.

  14. PDF Computer Science, PhD

    The Department of Computer Science classifies its courses into five core distribution areas: Applications, Reasoning, Software, Systems and Theory. Ph.D. candidates must complete eight courses total (3 class hours/credits each), and at least five of those eight courses must be taught in the Department of Computer Science.

  15. Computer Science

    The concentration in Computer Science is designed to teach students skills and ideas they will use immediately and in the future. Because information technology affects every aspect of society, graduates with computer science degrees have open to them an enormous variety of careers—engineering, teaching, medicine, law, basic science, entertainment, management, and countless others.

  16. Books

    Incoming CS PhD Students; Computer Forum | Career Readiness; Admissions. PhD Admissions. Frequently Asked Questions ... 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 ...

  17. 10 Best Computer Science Books in 2024

    Best for Data Structures & Algorithms: The Self-Taught Computer Scientist. 2. Best for Computer Science Foundations: The Computer Science Book. 3. Best for Easy to Read: The Art of Computer Programming. 4. Best for Practice Tests: AP Computer Science A. 5. Best for Inspiration: The Art of Doing Science and Engineering.

  18. The 10 Best Computer Science Books For Beginners

    Python Crash Course by Eric Matthes. Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin. The Pragmatic Programmer: Your Journey to Mastery by Andrew Hunt and David Thomas. These books cover a wide range of topics, from theoretical computer science to practical programming skills.

  19. 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 ...

  20. PDF THE COMPUTER SCIENCE PhD PROGRAM AT CARNEGIE MELLON UNIVERSITY

    Carnegie Mellon's Computer Science PhD program aims to produce well-educated researchers, teachers, and future leaders in Computer Science. The PhD degree ... The library licenses and purchases books, journals, media and other needed materials in various formats. Library liaisons, consultants and information specialists provide in-depth ...

  21. PhD Program Admissions

    We're thrilled that you are interested in our PhD program in computer science! This page provides an overview of the application process, some guidelines, and answers to specific questions. Please check our FAQ before emailing [email protected] with any questions not answered here. Our program accepts a large number of applicants each ...

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

    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 ...

  23. Handbooks

    2022-2023. 2021-2022. 2020-2021. Course List. Older Handbooks. Software Engineering MS Handbook - 2023-2024. - All graduate students are responsible for following the policies. A list of student handbooks for each degree path within the School of Computing and Augmented Intelligence.

  24. PDF Computer Science PhD Graduate Program Handbook

    working and diligent, and is a full-time graduate student, he or she should be able to complete the PhD program within 4-5 years (or typically 2 to 3 years beyond the MS). A summary follows. Please visit . PhD in Computer Science. for a more detailed description. A current list of CS course can be found at Graduate CS Courses .

  25. Program: Computer Science, PhD

    The PhD degree program in Computer Science provides for a rigorous foundation in theoretical and applied computer science. Students obtain in-depth knowledge by satisfying a breadth course requirement intended to ensure broad knowledge of computer sciences as well as satisfy a depth requirement in the ability to conduct research to advance knowledge and application of Computer Sciences to ...

  26. CMU's Cutting-Edge Curriculum

    Course Numbers: 11-604 & 11-605 Units: 6 units each Master the concepts, techniques, skills, and tools needed for developing programs in Python. You will study topics like types, variables, functions, iteration, conditionals, data structures, classes, objects, modules, and I/O operations while also receiving hands-on experience with development environments like Jupyter Notebook and software ...

  27. School of Engineering and Computer Science

    The heart of the School of Engineering and Computer Science is the Engineering Center, which houses most of the undergraduate laboratories and faculty offices. Additionally, the new SECS Research and Innovation Center, Dodge Hall, and the Math and Science Center house the extensive laboratories for research.

  28. Master of Science in Computer Science

    The M.S. in Computer Science degree program provides advanced education in all areas of computer science. It is useful for those wishing to go into leadership roles in high tech organizations. This degree can also provide the foundation for application to Ph.D. programs.

  29. Apply to CMU's Online Graduate Certificate in Machine Learning and Data

    The Graduate Certificate in Machine Learning & Data Science Foundations provides a unique opportunity for individuals nearly everywhere to earn a certificate at the intersection of AI, machine learning, and computational data science from one of the top ranked computer science schools in the country.

  30. U.S. News ranks Nebraska computing graduate programs among top in

    Two of the University of Nebraska-Lincoln's computing graduate programs have earned a place on U.S. News & World Report's 2024 Best Graduate Schools rankings list. The School of Computing's computer science and computer engineering graduate programs placed at No. 86 and No. 71 respectively on the list. The University of Nebraska ...