There is no doubt that the landscape of Artificial Intelligence (AI), and the computer science field more broadly, is changing rapidly, as new innovative applications to every industry, and walk of life, are being realized each day. In order to keep up with this demand, I predict that there will be a radical shift in the landscape of academic degree programs. To be a successful researcher and practitioner of AI requires a strong background in a wide variety of topics, some not typically taught within traditional computer science departments. This includes core topics such as search, logic, planning, and machine learning/data science, as well as related topics from optimization/operations research, probability and statistics, game theory and economics, algorithms and complexity theory, and natural language processing/linguistics.
When I did my PhD at Carnegie Mellon in computer science, we were required to take 8 classes. We had to take one class from each of 5 core areas, and were free to take 3 elective classes (some of which could potentially be approved classes from other departments). The core areas were AI, algorithms/complexity theory, programming languages, computer networking/operating systems, and computer architecture. Suffice it to say that the last two were a bit challenging for me, as my undergrad degree was in math and I had no background in computer systems. Furthermore, both classes had undergrad versions as prerequisites and were full of expert students many of whom were focusing their research in that subfield. Within AI there were several different options for the class requirement (machine learning, general AI, and planning), and I ended up taking both of the first two (so one of them counted as an elective). This meant that I only had room to take 2 other elective classes, which was unfortunate as there were tons of classes within different departments that looked interesting and were very relevant for my research that I would not be able to take. I ended up taking an additional half-semester class and auditing another one beyond those required, but was certainly not able to learn about all the topics I would have liked to, and felt sadly that there were major gaps in my knowledge of important topics. Some specific classes I would have liked to have fit in included several in optimization/OR such as integer programming/constraint satisfaction, several in statistics and advanced machine learning, and other random ones that looked interesting such as queueing theory and advanced courses in probability and math.
I think my research, and general knowledge base, would have greatly benefited from being able to replace the networks, architecture, and type systems classes with more relevant electives such as those I described above. I suppose a counterpoint would be that these core areas are fundamental to the field of computer science, and it is good to have some idea of them in case they are relevant for research or for future collaboration. I agree that all these areas are certainly important in some sense. But I don’t feel like computer science is such a coherent, unified field that it really matters if everyone is aware of advanced research in these areas. Some theoretical researchers are basically pure mathematicians and never even go near code, while many systems researchers are admittedly horrible at math. Rather than forcing students to take 5 full graduate-level classes in these areas, of which it is likely that only 1–2 are particularly relevant, I think the goals of the breadth requirement could be much more concisely accomplished in the form of something like a 2 week bootcamp at the start of the PhD. This would ensure that everyone is familiar with at least the basics of all the areas, but wouldn’t force them to spend entire semesters struggling through advanced topics.
CMU actually has a separate “machine learning” department, which is distinct from computer science and has its own PhD program. I believe this is the first such program, though it is possibly not the only one by now. In fact, many students who were accepted to the computer science department transferred to the machine learning department during/after the first year (I believe that all machine learning students in my starting year did this), as it became obvious to them that taking all classes related to ML was preferable to the significant “breadth” requirement in the CS department. This actually made it a bit strange for me, as an AI researcher but not a specialist specifically in machine learning (while ML relates to my research, my main focus has been on computational game theory). I believe there were only two AI professors whose major department was computer science (many of the AI professors came to have primary affiliations in either the machine learning or robotics department). In subsequent years a few more AI students joined the department, though most of them had primary advisors from other departments (ML or robotics in particular).
It seems a bit strange to single out machine learning as a separate department and leave the remainder of AI minus machine learning as “computer science.” I think a much more natural dichotomy would be to have a separate AI department, which would include machine learning but also other areas e.g., computational game theory, planning, search, etc. Many areas within AI are very intertwined (e.g., ML comes up all the time in my research, and many topics within ML are very closely related with optimization and planning).
A sample design of the course requirements for an AI department could include a general AI class, general machine learning class, a statistics class, and an optimization class. Perhaps there could be a 5th requirement in multiagent systems, planning, algorithms, or statistical machine learning, and then 3 additional elective classes as before (which of course could be a core CS class such as algorithms, networking, or architecture if it is relevant).
Apart from the specific class requirements, having a separate AI department/degree program would take on a separate personality of its own. Whichever university did this first could establish itself as a unique AI “powerhouse” and potentially attract many of the top students looking to pursue a graduate degree in AI. For example, Princeton’s CS department has for a long time been known as a “theory powerhouse,” and as a result continued to hire many professors and attract many of the top students to study theory. When I applied for faculty positions there only one or two universities that listed “AI” specifically as one of their main interest areas, and this is in large part not due to AI’s limited importance, but due to the fact that computer science is such a broad and disunified field, and AI has just been viewed as one relatively niche subarea within it. AI is also a much newer and less developed subfield than many of the others, and is just now starting to receive significant attention in the media, in large part due to the numerous important industrial applications. It is just a matter of time (I predict within 2 years) that at least one university will launch a break from the standard CS degree paradigm and create a separate program devoted to the area of AI that is revolutionizing the world.