Recommended lower division classes for Computer Science?

<p>Hey guys,
I'm currently majoring in the field of cognitive science. The major is quite interdisciplinary, and the program at my school allows me to tailor my major towards one of its encompassing subjects. I've been taking CS classes (I'm in my second year, took up to 3rd semester advanced C++). I know I can't compete with a pure CS major after graduation (and I'm not sure if I necessarily want to), but so far CS seems pretty interesting, and I want to leave options for possibly grad school in CS (in say, a CalState) which will help me put a more technical spin on what I learn in cogsci (artificial intelligence...). I have free time this summer and I wanted to know what lower division classes you guys might recommend I take at a community college to help augment my profile should I decide to pursue a more technical future. I've taken single variable calc...I'm thinking of taking multivariable. Would that be of any use? I would take CS classes over the summer, but unfortunately, community colleges around my area don't offer anything more advanced than what I've already taken. And to make a long story short, I don't have enough units to take summer classes at my university because I would go over my unit cap (community college units don't count towards the max).</p>

<p>Thanks guys, any input is much appreciated.</p>

<p>Data Structures, Computer Systems and/or Assembly Language, Discrete math</p>

<p>I would say for math, you want to take linear algebra. That’s a given in computer science programs and often a requisite for getting into grad CS programs; linear algebra is very widely used in CS. Some schools require you to take multivariable before linear algebra, so you’ll have to see what your school requires. As mentioned above, it’d be a good idea to get a grounding in discrete math, or any theoretical CS you can get; this is especially relevant to cogsci/AI. Also some systems, data structures, and algorithms (this one’s very important). If you take these, you’ll be in a strong standing for grad school and employment for CS. If it’s relevant to what you want to do, take some probability theory, which is also very important for AI.</p>

<p>By the way, being a cogsci major focusing in AI but still having a technical background in CS and math (even if it isn’t advanced) makes you competitive with CS majors after graduation. AI is a hot field right now.</p>

<p>(I’m finishing in CS/cogsci with a focus in AI, and starting a CS PhD program soon)</p>

<p>thanks for your help guys.
phantasmagoric, it seems that you are in exactly the position I envision myself to be in the future. May I ask how you got there? Did you major in cogsci undergrad? Any other tips you can give me?
I’m also interested in hearing about your experiences in the field. I know you’re still in school, but I’m sure you’ve had some hands-on projects working with AI and whatnot. Any info would be great. Thanks.</p>

<p>Second the linear algebra. Really need to take algorithms, that’s very important in AI. Can’t say much more as I’m not a CS major, but maybe if you’re thinking about taking some math classes you might want to take a class on combinatorics and graph theory (these are discrete maths, so they’re close to CS). That becomes very important when you’re trying to map neural networks, for example, and I’m sure there are many other uses.</p>

<p>So, recap: linear algebra, algorithms, combinatorics and graph theory.</p>

<p>Are there any math courses that cover algorithms or do I have to take that from the CS department. I am getting a minor certificate (elements of computing) in CS at UT but the program doesn’t mention anything about learning algorithms. There is a non-elements class in data structures and algorithms, but does anyone know if that is something I can learn from the math department.</p>

<p>at least at my school (UCLA), it seems that the CS department is the only place that offers courses on algorithms</p>

<p>linear algebra - math
algorithms - most likely CS department (unless CS+MATH is in the same department at your school)
Combinatorics, graph theory - you should think about taking discrete mathematics (that’s the name of the course). Either offer by Math or CS department</p>

<p>There are definitely individual courses for topics covered in discrete mathematics… but mostly you need other pre-requisites - usually advance calculus.
Most of the things you learn from CS are mathematics. In order to take algorithms you need discrete mathematics and probably with data structure as well.</p>

<p>Yes. data structure.
You should earn a CS minor… i think usually software design / engineering is the last requirement to earn a CS minor (since you are getting so many CS lower-division classes…)
Not too sure at your school.</p>

<p>Do you mind to tell us what school do you go to?</p>

<p>jwxie, of course - I go to UCLA. Unfortunately, UCLA doesn’t offer a CS minor…however, for cognitive science, they do offer a programming specialization (which I plan to take), but that only goes so far. I will definitely look into those classes, and take them as they fit.</p>

<p>Hi. I am only a sophomore, so I can on;y add on to what others ave already said… I am a CpE major.
I am just listing all the possible lower division classes. Whether you need those to complete the specialization or not - I have no idea. But they are usually the pre-requisites of one another.
Oh I am sorry I didn’t recognize you were the poster above me. Hahahaha. Silly me.</p>

<p>If you are at UCLA, you probably want to take the following lower division [CS</a> courses](<a href=“http://www.registrar.ucla.edu/catalog/catalog10-11-245.htm#186976472_pgfId-999390]CS”>http://www.registrar.ucla.edu/catalog/catalog10-11-245.htm#186976472_pgfId-999390): 31, 32, 33, 35L. If you want to take courses at community college, use [Welcome</a> to ASSIST](<a href=“http://www.assist.org%5DWelcome”>http://www.assist.org) to see what community college courses match up to them.</p>

<p>If you are considering going into software development, consider additional upper division courses like 111, 118, 180, 143, 136.</p>

<p>Good suggestions above. For CS, maybe add a class in comparative programming languages or compiler design or computer architecture or operating system theory depending on what is considered lower division. For math, all I can add would be financial mathematics or OR (operations research) or game theory or statistics. Discrete math would be the first choice however.</p>

<p>As for AI, it has been a ‘hot’ field for decades, yet where are the commercial jobs?</p>

<p>^^^
AI/genetic algorithms are the basis for search engines.</p>

<p>

</p>

<p>It hasn’t been “hot” for decades. In fact, the field of AI in particular has gone through several “winters,” when it would fall out of fashion, research would drop, jobs would disappear, etc.</p>

<p>[AI</a> winter - Wikipedia, the free encyclopedia](<a href=“http://en.wikipedia.org/wiki/AI_winter]AI”>AI winter - Wikipedia)</p>

<p>But it’s well-acknowledge in the field that we’ve learned from our mistakes; in the past, symbolic and logical methods were dominant, and those precipitated failure. But with the increase in speed of computers, esp. personal computers, that began in the early 1990s, statistical methods took off, and since then, AI has consistently produced scalable, profitable technologies. Spam filtering? Speech recognition systems? Search engines? Automatic translation? Plagiarism-detection software? Automated online assistants for trouble-shooting and customer service? Autonomous vacuums? The list goes on. And then there are all those that are still in development–self-driving cars, personal computer assistants, etc.</p>

<p>Most if not all of the major tech companies–Google, Microsoft, Yahoo, Accenture, etc.–hire people to work on AI and even have specific research groups dedicated to them. And then there are tons of smaller companies that work on AI – NetBase, Cataphora, Hakia, etc.</p>