Carnegie Mellon Launches Undergraduate Degree In AI (cmu.edu)
Earlier this week, Carnegie Mellon University announced plans to offer an undergrad degree in artificial intelligence. The news may be especially attractive for students given how much tech giants have been ramping up their AI efforts in the recent years, and how U.S. News & World Report ranked Carnegie Mellon University as the No. 1 graduate school for AI. An anonymous reader shares the announcement with us: Carnegie Mellon University's School of Computer Science will offer a new undergraduate degree in artificial intelligence beginning this fall, providing students with in-depth knowledge of how to transform large amounts of data into actionable decisions. SCS has created the new AI degree, the first offered by a U.S. university, in response to extraordinary technical breakthroughs in AI and the growing demand by students and employers for training that prepares people for careers in AI.
The bachelor's degree program in computer science teaches students to think broadly about methods that can accomplish a wide variety of tasks across many disciplines, said Reid Simmons, research professor of robotics and computer science and director of the new AI degree program. The bachelor's degree in AI will focus more on how complex inputs -- such as vision, language and huge databases -- are used to make decisions or enhance human capabilities, he added. AI majors will receive the same solid grounding in computer science and math courses as other computer science students. In addition, they will have additional course work in AI-related subjects such as statistics and probability, computational modeling, machine learning, and symbolic computation. Simmons said the program also would include a strong emphasis on ethics and social responsibility. This will include independent study opportunities in using AI for social good, such as improving transportation, health care or education.
The bachelor's degree program in computer science teaches students to think broadly about methods that can accomplish a wide variety of tasks across many disciplines, said Reid Simmons, research professor of robotics and computer science and director of the new AI degree program. The bachelor's degree in AI will focus more on how complex inputs -- such as vision, language and huge databases -- are used to make decisions or enhance human capabilities, he added. AI majors will receive the same solid grounding in computer science and math courses as other computer science students. In addition, they will have additional course work in AI-related subjects such as statistics and probability, computational modeling, machine learning, and symbolic computation. Simmons said the program also would include a strong emphasis on ethics and social responsibility. This will include independent study opportunities in using AI for social good, such as improving transportation, health care or education.
When we had the dot com boom we had a glut of computing students who graduated after the bust resulting in a glut of overqualified people with no jobs and buried in student debt. Anytime a university sets up a "fad degree" you know it's time to get out of the field. There is probably cloud and blockchain degrees as well.
So what's new?
I studied AI as my bachelor in 2009-2013 at Utrecht University. My study was competing with 3 other AI bachelor's programmes in a 100km radius. It's pretty rare for a university that's reasonably developed in technical fields to NOT offer a bachelor's programme on AI nowadays.
Just comparing it with my undergrad curriculum, which made sure that at least half of my classes were NOT related to my major, I'd say this gives a solid foundation. I would give some more stats courses beyond regression and intro do probability, though.
I was thinking along similar lines before I read your post. I'm about to head back to school for my masters and put some thought into which area I wanted to study. Partly, I want to retire as early as I can, which means making good money first. There is a huge demand for AI professionals, leading to high salaries. It just doesn't interest me much, though.
In my case I think it's partially because I've been on a software quality kick the last few years. If aerospace engineering was done like software engineering, planes would crash every day. It doesn't have to be like that. We can do it right, the first time. The attitude of "it seems like it pretty much worked when I tried it, let's ship it" gets on my nerves.
While AI isn't exactly "it seems like it pretty much works", it tends to lean much more in that direction than the systems I want to create, systems about which I can say "this is known to be absolutely correct; it has been mathematically proven correct".
âoeIf we want to be serious about quality, it is time to get tired of finding bugs and start preventing their happening in the first place.ââ" Alan Page
>The whole 'provably correct code' disappeared from reality as soon as I was half a step beyond academia.
It did at one point. Maybe around 1988 or so. In the 1970s programmers were people with degrees in math, so there was a lot more correctness. As math majors, they had done plenty of mathematical proofs, so the idea of knowing that you're getting the right answer made sense to my mom's generation.
We've had a phase of "sloppy" programming for a while now, but over that time our tools have improved immensely. Static analysis, which can automatically prove certain things about code, is coming back into style. New tools, and possibly new languages, may allow for a degree of reliability that wasn't feasible in 1988.
To give two examples, functional programming, which is currently in production use, can readily prove certain things. The most basic is using a functional language by itself proves that every function has no side effects - the only thing it does is return a value, which is determined entirely by the arguments passed to the function. Starting with those guarantees, it's fairly easy for tools to prove some other useful things about the function. Another example is that SQL schemas allow you to fairly easily make certain guarantees about the system. I do that at times and it's faster than not enforcing guarantees, because I don't have to debug problems caused by assumptions not actually being true. SQL *can* be used to make "we hope it works" systems, but in some cases that takes longer. It can be faster for me to apply rules which guarantee things, rather than tracing down problems related to assumptions.
I have hope that better and better tools and processes will be developed, and I'd like to help develop them. So far I've started by applying practices such as code review in organizations that didn't previously do it. We've found that code review / peer review reduces bugs enough to make it worthwhile. As a bonus it is a great training tool - programmers learn from each other practical approaches that apply directly to your codebase - because they ARE your codebase.
I went off on a tangent at the end there.
Obviously code review doesn't guarantee or prove anything.
Other techniques CAN guarantee, or prove, certain things about the code, and it doesn't have to be time-consuming or expensive. Heck just using a strongly typed language guarantees certain things that aren't guaranteed in languages without strong typing.
In 4 years the bloom will probably be off the AI rose already.
Imagine if some hip college started offering a degree in 3-D printing 5years ago and you invested the time and money to get one. Where would you be now? And don't forget, 3-D printing was just as big back then as AI is now, it was going to fundamentally change the world in ways no one could've even dream of.
"Undergraduate Degree In AI"
AI needs Overgraduates.
Most of that machine-learning stuff is really image processing. The research papers were going as far as gradient aligned anisotropic sampling filters before they suddenly jumped into neural networks and machine learning. That stuff is/was necessary for the movie production industry because they normally hired qualified animators to spend their days airbrushing out wires and props, doing lip-sync, and fixing just about anything else. Even car driving is basically matching what the sensors detect with the correct action associated from set of digital memories of past scenes.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
They were researching "formal verification methods" in the 1990's. Using techniques like temporal logic, and automated deduction engines, they could formally verify that a CPU would be correct in all state transitions. There wouldn't be a point where an instruction could return in the wrong security ring.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
Standard CMU undergrad CS curriculum: https://csd.cs.cmu.edu/academic/undergraduate/bachelors-curriculum-admitted-2017
CMU AI degree curriculum: https://www.cs.cmu.edu/bs-in-artificial-intelligence/curriculum
I dunno. IMO this could be a concentration or a graduate program. I think a classical undergrad CS program would be worth more to a student because it's more generic and thus more widely applicable.
I have hope that better and better tools and processes will be developed, and I'd like to help develop them. So far I've started by applying practices such as code review in organizations that didn't previously do it. We've found that code review / peer review reduces bugs enough to make it worthwhile.
This stands out in this day and age. I'm glad you've successfully introduced peer review, but I haven't heard of a shop in the last decade that doesn't implement peer review. Sounds like a change at the top is needed if you're at a shop that far behind.
There has in fact been change at the top. It was a tiny company. About a year before I joined they had one "programmer" who wrote all the code. He wasn't trained as a programmer. A family started the business together. The brother who was "good at computers" did all the code. Since then, it's been bought by a larger company with more mature processes, but headquarters still mostly leaves us alone and let's us do things our own way.
In the last two years I've implemented code review, introduced test scripts, and pushed getting the version control (Git) in shape.
My entire career has been with very small companies or groups, so although I've *read* a lot about best practices, I haven't had much opportunity to see what's really done by most companies and truly provides the best bang-for-buck in software quality. You said " This stands out in this day and age. ... I haven't heard of a shop in the last decade that doesn't implement peer review." What other practices have you seen used a lot, practical processes which really provide clear value?
> Have a job paying 60k, save 30k, and for each day you work you earn one day of retirement.
That's true! It's something I'm working on.
> rather than spending $$$ going back to school in the hopes of a higher paying job.
After the tax credit, my masters from Georgia Tech will only cost me about $4,500. Maybe less if I can get my employer to pitch in or something. Conservatively, my masters should bump my income by *at least* $5K / year, so it'll pay for itself the first year. After that, it's an extra $5K-$15K each year of additional means to live beneath.
My bachelors was also an expensive online program offered by a respectable university. The degree program increased my income enough to pay for the school even BEFORE I graduated. The final exams for some of the classes were industry certifications like Cisco CCNA and Security+. Having those certifications caught the attention of recruiters so my income went up while I was still in school.
Boston University already requires all their engineers to take a course in data science (http://www.bu.edu/today/2018/new-eng-curriculum-requires-data-science/). This makes more sense than an entire degree in the subject.
Who is going to step away from their seven digit salary, working on bleeding edge technology, to teach said technology to ungrateful assholes? I'd want to know what qualifications my lecturer had...
I took ECE at Cornell University. Of course everyone talked about AI, but it was always an application of disciplines. Taking an AI major is not that different from taking a self-driving car major... relevant at this very moment, but not much beyond.
Fast Federal Court and I.T.C. updates
Learn to with AI as a marketing term, as opposed to a technical term. Under this definition, anything that performs human-like tasks is AI. No question this definition is broad, clumsy, and fails to capture various forms AI that are wildly different. That said, the term does not belong to the tech community anymore. It's part of the mainstream discourse.The word isn't defined by engineers, but by business people.
Fast Federal Court and I.T.C. updates
I just noticed a typo in what I wrote. My bachelors was INexpensive, not expensive. It should read:
--
My bachelors was also an inexpensive online program offered by a respectable university. The degree program increased my income enough to pay for the school even BEFORE I graduated.
--
...and so will all others.
What other practices have you seen used a lot, practical processes which really provide clear value?
Measure key metrics like cycle time, quality (bugs), code coverage, test stability, and escapes. Review weekly as a team, however small that may be. You generally don't optimize or improve what isn't measured and regularly reviewed. Release small changes often rather than big changes less frequently, and automate as much of the release process as possible.