top | item 23321426

A complete 4-year course plan for an AI undergraduate degree

183 points| oumua_don17 | 5 years ago |mihaileric.com | reply

101 comments

order
[+] numbsafari|5 years ago|reply
No surprise that this doesn’t include any consideration for the profound moral, ethical, or social implications of AI and AI solutions.

Nothing about bias in models. Nothing about communication. Nothing about privacy. Nothing about security. Nothing about resiliency. Nothing about the responsibility of the individual practitioner. Nothing about the economic or ecological impact of the work.

Every undergraduate degree should include both general, and subject specific courses on ethics, morals, social, economic and ecological impacts.

[+] zerkten|5 years ago|reply
For comparison, another poster mentioned a real AI course over at https://news.ycombinator.com/item?id=23322449 which does include this.

There is a tendency for articles by extremely talented, highly educated, yet relatively immature people to completely over-optimize for technical depth. It's a failure with many articles that get posted here. I wonder how the author might change their article after 10 more years of experience.

[+] theferalrobot|5 years ago|reply
> No surprise that this doesn’t include any consideration for the profound moral, ethical, or social implications of AI and AI solutions.

Would you say the same thing for an undergrad in SE (actually asking)? I feel like the hype train for AI has moved it into a plane where it has to be some moral arbiter but it seems to me that the same demands could be placed on most fields of study including general software engineering.

> Nothing about bias in models. Nothing about communication. Nothing about privacy. Nothing about security. Nothing about resiliency. Nothing about the responsibility of the individual practitioner. Nothing about the economic or ecological impact of the work.

Maybe it is just my bubble but I feel like very few AI jobs actually deal with hot button ethics (facial recognition for dubious purposes etc). It is just that these fringes get all the attention as if they represent the broad community (they don’t). For instance I work in AI for satellite communications, most of the things you bring up don’t really apply (any more than they do to the software engineers I work with). My former work was in AI and computer vision in marine ecosystems. Again... your moral questions don’t really apply (privacy of coral reefs?). I agree it is important to be aware of these issues but most of the real jobs in AI I feel like are more scientific in nature.. not the privacy busting, bias inducing ones we hear about a lot. Again that could be my bubble to some degree I suppose though.

[+] downrightmike|5 years ago|reply
I've taken multiple ethics class as part of my degree, and to be honest, if you don't already understand morality, you need the course. But I don't believe that those courses really have the desired impact, cheaters will cheat. It is more like these courses are created to cover the institution against the risk of appearing to not be graduating ethical individuals, but they can't actually make moral people beyond catching people who break the honor code and expelling them.
[+] armatav|5 years ago|reply
A post that is of this level of quality shouldn’t be degraded because it left out a category that you find profoundly interesting.

This is a goldmine for people interested in the field of AI, what you do with your talents as an engineer is up to you - build weapons, build medical systems, build whatever you want.

Your moral compass isn’t going to be set by an extra class in your curriculum, it’s set by your life experience.

[+] dmarchand90|5 years ago|reply
I'm really skeptical as to the value of these courses. I agree absolutely that ethics/morals/ etc. are essential things to learn and develop. I don't agree they can really be learnt in the classroom. Many of these things (e.g. ethics) are emotional intelligence skills that don't really respond to standard study. In engineering school I did all these courses and didn't get any benefit from them, other than some academic knowledge of Kantian vs Utilitarian ethics.
[+] chartpath|5 years ago|reply
CS grads should be required to take a year of liberal arts at least.
[+] Chris2048|5 years ago|reply
wrt ethics/morals; Is any business gonna pay a SWE for that, or are they gonna pay a lawyer?
[+] idoby|5 years ago|reply
I love initiatives like this, but IMO if you're doing a self-study "degree" aimed at practical AI knowledge, I would:

* Drop the compilers and database courses.

* Add an intro to statistics course.

* Pick one domain, since you'll need deep, proven domain expertise in one area to get hired without a real degree. So doing both NLP and CV, for instance, is probably a bad choice if this is your endgame.

* If you choose CV, add a traditional image processing course. I don't recommend to rely on whatever happens to be included in the DL for CV course. You might also want to add a good general purpose DSP course.

* Substitute exams for projects. Exams are adversarial so they don't make sense to give to yourself. You'll learn more more doing a project than you would cramming for a fake exam.

* Try to finish the whole thing in 1.5 years, not 4. Spending 4 years on a practical curriculum that doesn't yield an actual degree is a huge waste of time. Try to get the theory out the way in a year and a half so you can jump into real life projects/research. With dedication and without a rigid university schedule that forces slow progress, this is completely doable.

[+] pradn|5 years ago|reply
Compilers may not be as relevant for AI-related work, but databases are, imho. So much of real world AI work is setting up data pipelines. Knowing how transactions, indexes, and joins work is very useful.
[+] btrettel|5 years ago|reply
This is missing a course on software testing, particularly one that has a focus on testing software-implemented models.

I'm almost done a PhD in mechanical engineering. Some CS folks have lamented gaps in my programming-related education, but I actually did take an elective course on the reliability of science which included a lot on scientific software testing. I think such a class should be required for anyone working in theory or simulations.

In engineering, concerns about the testing and accuracy of a model are typically called "verification and validation". There unfortunately doesn't seem to be a standard curriculum for the subject yet but Wikipedia can give you an idea of what this covers and how it's different from general software testing: https://en.wikipedia.org/wiki/Verification_and_validation_of...

AI/ML seems to have their own culture around this and I'm not sure its actually rigorous. Seems to me that they could have their own version of the reproducibility crisis.

This course should be taken after a statistics course. Parts of it rely fairly heavily on statistics.

[+] chriskanan|5 years ago|reply
AI is having some reproducibility issues, especially reinforcement learning:

https://www.wired.com/story/artificial-intelligence-confront...

In other areas of machine learning, things have gotten a lot better. A decade ago people rarely released their code or trained models. I did this for an early feature learning paper in 2010, which led to it getting a lot of citations.

What I'm more worried about is the lack of science in machine learning papers. The code reproduces the result, but the reasons for the efficacy given in the paper are spurious. I like this recent paper that pokes this issue in metric learning:

https://arxiv.org/abs/2003.08505

[+] NalNezumi|5 years ago|reply
Baking in a software testing in an already tight 4 year AI/ML focused undergrad seems misplaced. Maybe in a masters, but most masters have Scientific methodology baked in to them so I'd still say it is redundant. CS undergrad should definitely do some level of testing though.
[+] zozbot234|5 years ago|reply
I'm not seeing an actual statistics course in there. Also GOFAI techniques seem to be only briefly mentioned in an "Introduction to AI" course, which just doesn't cut it in my view - you'd need something like an Operations Research class to really explore that stuff in more detail. Some of the more focused CS content could be cut to make room for this; OS's and DB's has been mentioned already, but maybe one could also remove the Compilers course.
[+] disgruntledphd2|5 years ago|reply
Yeah, I'd probably remove compilers, and add classes on statistics, experimentation and actual data analysis.

I kinda find it hilarious that there is no mention of analysing data in this course, given that that is a core skill that all data professionals actually need. I mean, where do they think the models come from?

There's also little to nothing about ETL, which is pretty much all you do in most data sciencey jobs.

I actually think that this course is pretty revealing of the worldview of a lot of AI researchers, and may be why predictions of AI's imminent dominance across multiple fields appear to be not particularly accurate.

[+] jpz|5 years ago|reply
I think a lot more maths is needed. "CS109 Probability for Computer Scientists" does not look like a sufficiently deep study in statistics.

Spending time studying operating systems and compilers (both things I've studied) at the cost really submersing yourself in the maths of probability seems to me to be a misallocation of a scarce resource (time).

e.g. a course in Bayesian statistics, and also in traditional statistical inference would be useful (for instance, this gives a good foundation for understanding the EM algorithm.)

[+] NalNezumi|5 years ago|reply
I dont understand why

> Convolutional Neural Networks for Computer Vision

is taken without traditional CV before, while NLP it says "include traditional NLP". I'd say it is a big nono to jump in to CNN directly without some basic CV, even-though CNN is outperforming most algorithm you will miss big fundamentals.

Also most first/second year courses seems too CS focused, such as OS and Databases. I would remove those two things, add Differential Equation & Discrete mathematics (and numerical methods, maybe).

At best the over focus of general CS stuff seems to create "CS with some ML experience" rather than a solid foundation of the principles behind it.

This will give you a shoddy CS knowledge, and more fragile AI/ML understanding than someone with AI/ML background.

I would call this program "Data Science" but not AI.

Edit: removed "looks good" prefix after a second take at it.

[+] throwaway5548|5 years ago|reply
The lack of statistical content disqualifies it for "Data Science" as well
[+] bonoboTP|5 years ago|reply
This is a well written article and has really good courses and topics in it.

Cynically though, I wonder how many people of those who liked it and file it under "I should get to this at some point" actually use it at all. In AI it's been a cliche now how many introductory blog posts and into YouTube videos and "how do I start" Reddit and Quora questions there are. The resources and buzz is very high for the first steps. I guess it's similar to "how do I make a game" or "hó can I learn to hack" are popular.

As I said this one is very solid and has very actionable pointers to great courses. But I find that only a small minority of people are so obsessed that they can pull this huge project on their own. It's a multi-year undertaking and even though the resources are freely available, a normal homo sapiens just doesn't work like this. For all but the wild outliers (who would find the info anyway, with no Obstacle able to stop them), the context of a university program is really necessary. It gives you time, structure and social motivation, discussing with people in the same boat, helping them out, getting help from them, in person, being forced to chew through the boring bits, not getting satisfied with your own self assessment etc.

Otherwise I think this also just gets thrown onto the pile of bookmarks that we all build, to make ourselves feel good about a future day where we somehow magically motivated and sharp to tackle and learn all those things we bookmarked.

[+] autokad|5 years ago|reply
> "n AI it's been a cliche now how many introductory blog posts and into YouTube videos and "how do I start""

one of the frustrating things its really hard to find great advanced content, and when you reach out to HN readers, they are like 'read really advanced PHD papers'. thats not what I mean at all >.<

[+] omarhaneef|5 years ago|reply
More of a meta question: but why should all undergrad degrees be 4 years? Why should an undergrad in computer science and one in AI be the same length of time?

Was it created because a school wants to charge the same amount regardless of major? Or because 4 years is an acceptable proportion of a human life to spend studying to obtain a white collar job half a century ago? Or some other reason?

(Related, why do people want the 4 year degree as a pre-requisite for most jobs? Why do some jobs -- law and medicine -- require 3 and 4 year degrees on top of it? Why is the CFA happy with 3 years of tests on your own time?)

[+] 6gvONxR4sf7o|5 years ago|reply
It's probably a combination of all your questions. Simpler fee structure that takes a standardized part of young adulthood that provides a standardized amount of expertise, leading to "an undergraduate degree" denoting a certain amount of breadth and depth. It's about what a typical college student can learn in four years.

Some fields like law and medicine require more time to get practically useful, like 7ish years for law, which we can break down into units of 4 + 3, an undergraduate degree and a law doctorate (JD). Or medicine, which takes like 15 years, and is split into 4 + 4 + 3-5 + 1-4, an undergrad degree, a medical doctorate (MD), a residency, and a fellowship.

Maybe splitting it into these points helps standardize those and provide convenient points where paths split.

[+] joshvm|5 years ago|reply
Physicist's perspective. Logically an undergraduate degree is 3 years: the first year is catch up and baseline, everyone gets to the same standard. The second year is actually learning the bulk of the core material. The third year is specialisation and a dissertation project. This also allows for people to fail and resit years as major milestones.

Many technical courses overlap. Mathematicians in particular are generally allowed to do anything. I think in the US it's even greater with the minor/major system, so courses like calculus/linear algebra are enormous because everyone from engineering to chemistry might sit in.

The majority of undergraduate degrees in the UK are 3 years, 4 if you do a Masters on top. You could probably do the material faster; probably 2 years? But... Physics had one of the highest course loads of all the degrees, 25 hours a week in second year. That's just lecture time, you're expected to do that time again outside. We had almost no free time in the first year due to the amount of compulsory coursework (the crap stuff which requires an expensive 99th edition textbook with a code in it). In later years there was less compulsory homework so less pressure, but then you struggle if you skip it.

Exams.. well they had to schedule four years' worth of exams with fairly little overlap, plus time in the summer term for extra modules that wouldn't fit in the second semester. So that takes a couple of months. I guess if you had the capacity you could also optimise that into a big two week block for all students, but that would be challenging.

We had 10 week terms/semesters (Oxbridge have 8 officially, but really it's 10) and the rest is effectively vacation. In my day (hah), internships weren't really a big thing. I did a research placement at my university and a few people got industry jobs, but not many. Most of us just enjoyed a month of vacation over Christmas, we revised over Easter and we took the summer off. It wasn't like CS today when people try and get a different FAANG job every summer.

The dissertation was budgeted at I think 2 days a week for two semsesters (though you were expected to work more than that).

If you cut down holidays then, you could probably squeeze the program into 2 years. That would be an unpleasant experience.

I believe in some countries like Austria, you can get a degree by sitting the requisite courses on your own schedule.

[+] mettamage|5 years ago|reply
I think it shouldn't. It's simply used as a heuristic or a comparison against actual degrees.

If you know what you want to build and can optimize a curriculum towards it, then go for it. For people that just want "fundamental knowledge" in a field. Knowing that they spend about 5% of their life on it, is probably a way of feeling that they have spent enough time on it.

[+] unishark|5 years ago|reply
Mainly cultural reasons I'd say. In some countries you jump right into a professional program like medicine right after high school. But then it takes 6 years or something. The net long duration is still basically the same due to all the additional specialized knowledge needed for professional degrees.
[+] glup|5 years ago|reply
This seems optimized for AI in the hyped sense (as shorthand for applied machine learning and data science) rather than actually preparing a student to contribute to "real" AI (see work of Josh Tenenbaum or Brenden Lake). For an undergrad curriculum for the latter, I'd expect to see more on understanding intelligence in extant biological systems, eg courses in cognitive science, neuroscience, child cognitive development, and more background on animal cognition. I would also expect to see more robotics and at least some treatment of reinforcement learning.
[+] sevensor|5 years ago|reply
I would also move up the second year "intro to AI" course to the first year, with an emphasis on history. You shouldn't be hearing about AI Winter for the first time after already spending a year on the subject.
[+] SimonSword|5 years ago|reply
This is a course plan for computer science. I don't see why Artificial Intelligence should have its own "degree". However, there is a trend towards these niche degrees at universities too.
[+] h4l0|5 years ago|reply
We have never considered splitting medical school into subdomains at undergraduate level. Why are we trying to do this now for Computer Science?
[+] zeckalpha|5 years ago|reply
s/computer science/Mathematics/ s/Artificial Intelligence/Computer Science/

New fields start somewhere.

[+] adjkant|5 years ago|reply
There's a lot of weird choices here. The lack of math/stats is glaring, the inclusion of compilers seems to be at the cost of more relevant material for someone focusing on AI (speaking as someone who studied CS with a specific focus on PL/Compiler type things). You don't just throw project based in at the end (this should be through the entire degree), and there's two systems/OS courses included but no networking?

Generally I think having an AI degree is fine, but at the end of the day its a CS degree + a concentration no matter how you slice it. This isn't like CS splitting from math, etc.

[+] zerr|5 years ago|reply
I find it pity that while "Compilers" course is always about implementing compilers, "Databases" courses are 99% about using database systems.
[+] jjice|5 years ago|reply
I never really though of that, but that's pretty true. I guess that using a compiler is generally a lot simpler than using a database. When using a compiler, the majority of the time you're doing something really simple compilation, or you have a build system take care of the entire thing, where as the database requires design considerations. That would be my guess at least.

But I do agree that a database implementation course would be fantastic. It's one of the most important categories of software today for sure, up there with operating systems and compilers. My Uni was going to offer a course this Fall, but COVID has led to it being delayed. Here's to hoping it's offered in the Spring.

[+] bmikaili|5 years ago|reply
God the CS field is really getting muddied by AI hype. Please for the love of god start with the fundamentals.
[+] noelwelsh|5 years ago|reply
4 year degrees in AI already exist.

Here is Edinburgh: https://www.ed.ac.uk/studying/undergraduate/2020/degrees/ind...

Here is CMU: https://www.cs.cmu.edu/bs-in-artificial-intelligence

I think the above degrees are more balanced than OP's proposal. More emphasis on foundations, and courses on ethics. Operating systems and compilers are useful if you go into AI engineering but are a diversion from core AI topics.

[+] joshvm|5 years ago|reply
Edinburgh has always had a reputation for being a good HPC/computational institute, so no surprises there.

It's also nice to see that you are forced to take options from pretty much any other subject, which is quite rare in UK degrees. We had very tight restrictions over which external courses we were allowed to take, presumably due to tight scheduling and a huge number of compulsory courses.

[+] BossingAround|5 years ago|reply
But are they free? I think that's OP's point.
[+] mcv|5 years ago|reply
Yeah, that's not what my 4 year AI curriculum looked like. Mine focused more on Expert Systems. Also more logic, more software engineering, more psychology and philosophy. But much less algebra and calculus, less computer systems and parallel computing (though I took them as elective), no compilers (I don't really see the need either, though it's an interesting subject), and clearly not enough machine learning.

I also would have liked to see more robotics. Our neighbouring university had an AI curriculum that focused more on robotics.

If I could design a curriculum like this, I'd keep the focus on software engineering and logic that we had (maybe a bit less logic than we had; they were overdoing it), keep algorithms, keep some philosophy and psychology, but make them more focused on our field and include things about social impact and ethics. Definitely more linear algebra and calculus, some statistics, machine learning, and get some basics for vision processing. After the first two years, you'd get to choose between more focus on vision and robotics, or more focus on logic, statistics and expert systems. Machine learning should be included in both.

[+] chriskanan|5 years ago|reply
I actually was on a committee to do this for a university. Ultimately, some believed it would take resources away from computer science and compete with the program, so it was a year of work without anything to show for it.

I'm still a proponent of undergraduate AI degrees, but this proposal doesn't suffice. Deployment, testing, dataset collecting, statistics, more math, better organization of electives (computer vision, robotics, NLP as applied electives), bias mitigation, ethics, and more need a role. The state and university guidelines also provide a lot of constraints. I do think that a research or applied project is essential, which is captured in this proposal.

I'd definitely remove operating systems and compilers. I took both courses at the graduate level and have been working in basic and applied AI research for 15+ years, and those courses haven't helped me with that.

[+] 6gvONxR4sf7o|5 years ago|reply
An AI degree that doesn't teach anything about learning about the real world from data (the stats that scientists get) seems really weird, even if that does seem to be the state of things. AI is about learning and decisionmaking, and the learning side is currently pretty heavy on the pattern recognition side, but why bake that into the education? You can't teach someone to automate learning without teaching them to learn the old fashioned way. There's a reason basic statistical inference and experimental design is such a foundation for every scientific field, but it's always missing in these AI progressions. It's sure as hell present in the jobs people going through these degrees will probably end up in.
[+] caspper69|5 years ago|reply
So, people are just supposed to start their 4-year undergraduate degree in Linear Algebra? I know HNers are rare air, so to speak, but what about Calc 1-3 and Diff Eq?

This is like a 4 year plan once your first two years of university are under your belt.

So a combined CS / MS in AI?

[+] zozbot234|5 years ago|reply
Linear Algebra is quite self-contained. You'd need Calculus in there to really make sense of the probability and stats, though. Not sure about the vector calculus part and diffeq's, maybe that can be cut and the whole thing might fit in 4 years.
[+] cpp_frog|5 years ago|reply
Reading the comments in this thread, I am surprised to see that many think it lacks math. I am majoring in applied math (all my professors are french-school mathematicians, in a non american university) but I deem my courses excessively theoretical. It doesn't help that the degree is 6 years long.

In the meantime I've been solving coding problems but still feel like I lack something in order to make working AI programs. Maybe someone can tell me if the non-math courses listed there are more than enough for a person like me to get into AI.

If you're curious about my background, feel free to ask.