Computer Science Upper Division Classes

<p>For all the Computer Science Major people out there, I was wondering which Upper Division classes were most helpful for you?</p>

<p>I go to UCSD so these are the courses offered. </p>

<p><a href="http://cse.ucsd.edu/undergrad/courses/courses.html%5B/url%5D"&gt;http://cse.ucsd.edu/undergrad/courses/courses.html&lt;/a&gt;&lt;/p>

<p>However, I'm also allowed to take some graduate classes too.</p>

<p><a href="http://cse.ucsd.edu/gradedu/courses/gradcoursedesc/gradcoursedesc.html%5B/url%5D"&gt;http://cse.ucsd.edu/gradedu/courses/gradcoursedesc/gradcoursedesc.html&lt;/a&gt;&lt;/p>

<p>So yes, any input would be of great help.<br>
As of right now, I am not really into Artificial intelligence and graphic design classes so please cancel those out. Thank you <3</p>

<p>Programming Languages has been the most helpfull. Its a really hard class, at least at my school. Consists of 6 labs that need to be done in 5 different languages, and each language takes around 40 hours to do. The TA's even have trouble and call it unfair. </p>

<p>I have learned more in a month of that class then my entire cs career.</p>

<p>Oh Wow.</p>

<p>That really is quite crazy sounding! I shall see if I have an equivalent here at UCSD. Thank you very much!</p>

<p>By the way, UCSD is ranked in the top 10 for Systems specialty in US News. Are they talking about Operating Systems?</p>

<p>No, their talking about designing and implementing computer systems in general.</p>

<p>I would look into concurrency and parallelism at the undergraduate level. All the graduate courses look fantastic. You should have no trouble picking some good ones.</p>

<p>Designing and implementing computer systems in general?<br>
UCSD</a> Department of Computer Science and Engineering - Graduate Course Descriptions
Could you name a few from this list?</p>

<p>I was actually thinking about this at the undergraduate level although I still want to take some of the graduate classes in place of some of my upper divisions. I was thinking of looking at parallelism and concurrency and distributed systems. Seems like fun. Thank you csprof2000</p>

<p>Oh by the way. This is assuming that I am going into industry after I get my bachelor's. (I can take graduate courses as an undergraduate anyways so I included that selection).</p>

<p>b.u.m.p.</p>

<p>Aren't some classes more focused on if your'e going to grad school rather than going into industry?</p>

<p>b.u.m.p please.</p>

<p>Yes, if you don't want to go to grad school right away, things like concurrency, parallelism system design, networks, and more social-engineering oriented classes will make you more marketable.</p>

<p>Avoid theory classes like Theoretical CS, algorithms, complexity, graph theory, etc.</p>

<p>I think Algorithms is an important class to have even if you're going straight into industry, and a lot of employers like to see it.</p>

<p>If you're going straight into industry, and there's some sort of hardcore software engineering lab available...take it. I did that, and got a job as a software engineer even though I wasn't a CS major as an undergrad.</p>

<p>Oh my gosh. I so wanted to take concurrency, parallelism, and distributed systems classes at UCSD. WHAT DO YOU KNOW. THEY OFFER NONE OF THOSE CLASSES NEXT YEAR. Ohh woow. What else could I take to make myself more marketable? What about operating systems?</p>

<p>Ouch, dude. Let's see, failing all that...</p>

<p>Image processing, computer graphics, and computer animation would go nicely together, and if you want to work with things like video games, special effects, or simulations (flight, space, war, etc) it could make you very marketable.</p>

<p>Classes in operating systems, networks, web, and databases would go well together and make you more marketable to certain organizations, especially corporations who need database and web administration.</p>

<p>Taking the 3 graduate course sequence in cryptography would make you highly marketable to the NSA, if that's the sort of thing you had in mind.</p>

<p>Basically, any coherent sequence of undergraduate and/or graduate level classes will look good to different people, as long as you market yourself. Explain why it should be impressive and, if you convince people, they will be impressed. Something you should also seriously consider is doing a few directed study classes... these may culminate in original research, which would help immeasurably in grad school and, if done on the right topics, could get your foot in the door of any company you chose.</p>

<p>Hmm, I'm not realy into image processing or computer animation so I guess I might scratch that.</p>

<p>Operating systems and networks sound like good classes. But I'm not sure if I want to work on databases and web administration for certain organizations. I want something a little more creative. </p>

<p>I was actually really considering cryptography. It sounds like such an interesting topic, which I have taken a lot of interest in. </p>

<p>I talked to my mom, and she said that the growing specialties in the next few decades will be things like you have stated distributed systems, and artificial intelligence. I'm not sure much about artificial intelligence. Sounds a lot like research to me.</p>

<p>I am definitely going to take a sequence of under/grad level classes.<br>
I just want to make myself marketable to companies like Qualcomm or Nokia or LG who have companies here in San Diego. The only companies that I would leave San Diego for are Google and Microsoft, but that's about it.</p>

<p>Hey csprof2000, I just want to say thanks so much for the input you've been giving me. I know it's not the end of my questions, but I still want to thank you again.</p>

<p>No problem, dude, glad I could be of some assistance. We're all here to help, and we all have questions... I was where you were now, a few years back, trying to decide what to do in undergrad. I wish I had people to talk to then, as it would have made things a lot easier.</p>

<p>On another note, you're partially correct when you say that AI can be a lot of research, but don't let that dissuade you from the subject. A graduate student of mine is actually using AI (neural networks) in studies on implementing a generic ranking program, with applications to sports, broadcasting, etc. A former graduate student of mine even used expert systems extensively in her research on optimization algorithms for corporate finance applications.</p>

<p>Anyway, the best of luck to you in your studies, and please don't hesitate to ask me - or any of the others here - if you have questions or concerns.</p>

<p>You should take the operating systems course. A CS degree without OS wouldn't be taken seriously.</p>