What upper division courses should I take (computer science major)?

<p>Hi guys, it's me again.</p>

<p>I'm currently a computer science major at UCR. According to the course plan, I am required to take 6 technical electives during junior and senior year. I'm really interested in going to graduate school for Artificial Intelligence research. So, what courses should I take in order to be a competitive applicant?</p>

<p>Here is the list (it's on the second page): <a href="http://student.engr.ucr.edu/majors/CS%202010.pdf%5B/url%5D"&gt;http://student.engr.ucr.edu/majors/CS%202010.pdf&lt;/a&gt;&lt;/p>

<p>Thank you guys!</p>

<p>To go to graduate school for a particular subject, you want three things: strong fundamentals/breadth, basic exposure to your intended specialization, and some indication that you want to take what you know and do something cool with it outside the classroom.</p>

<p>For the first, I’d strongly recommend the following courses: 151, 162, 164, 181. Without these, the CS GRE subject test - do they still have that? - will be out of reach, and you’ll be at a huge disadvantage when it comes time to take qualifying exams or take breadth courses. These represent real, fundamental, prerequisite knowledge all graduate CS students should be minimally conversant in upon completion of the degree program.</p>

<p>For the second area, only the course 170 looks terribly relevant. AI is a fairly mathematical field of CS, however, so any of the mathematics offering - especially the course in optimization - could also fit the bill.</p>

<p>For the third area, 179 or 193 - the project courses - are what we’re talking about. If you can use these to work closely with an active professor doing AI stuff, the benefits of this are incredible: a good, meaningful reference; the chance to study AI in as much depth as you are able at the undergraduate level; some real development/design experience; and, at best, a conference/journal/tutorial/workshop/etc. presentation under your belt. The latter of these really isn’t such a long shot if you are helping the professor and/or his/her grad students with some project already in progress.</p>

<p>Of these three areas, my best recommend is that you take all in the first area, only the AI course in the second, and whichever is more appealing in the third. All the courses not mentioned here seem to constitute introductions to other niche areas in CS (not AI), and as such aren’t terribly relevant.</p>

<p>I hope I don’t get in trouble for this, but do a search or a forum member named “UCBAlumnus”. He has posted suggested CS electives about 1,000 times.</p>

<p>If you’re up for the challenge, I would recommend taking a graduate level AI course (or two) in your final year. If you take a grad course and earn a B or better, you will have demonstrated that you can succeed in graduate level coursework, which will really improve your chances of getting in.</p>

<p>Other than that, I agree with aegris that taking some more math courses is a good idea. A.I. tends to use a lot of statistical analysis, so I think taking some more interesting statistics classes may be a good idea.</p>

<p>For AI, the obvious courses from the lists and offerings are CS 170, 179M, 229, and 272. EE 140 and CS 181 may be relevant as well. Perhaps using some of the social studies breadth courses on psychology and other behavioral science courses (e.g. certain economics and business courses) may be helpful as well.</p>

<p>Other courses with commonly used concepts generally in CS include 164, 165, 166, 100 (the content in these courses should also be helpful if you decide to go to an industry software job instead of graduate school after graduation). Theory courses like CS 151, 145, 133 and math and statistics courses should be generally helpful, and should not be that much work (i.e. you can probably take three or four such courses for the same workload as two CS courses with programming).</p>