Question for Computer Science majors?

<p>I have a couple questions, actually.</p>

<p>I'm a junior in high school right now and for a long time I've wanted to major in computer science. Probably around 4th or 5th grade I decided that was what I wanted to do.. And because I decided that so long ago and always stuck with it it's been this kind of lofty idea that's just my automatic answer whenever someone asks me what I want to major in, but I've sort of come to realize lately that I don't have a full idea what a computer science major involves.</p>

<p>I've taken two programming classes in high school, the latest one being AP computer science, and I'll be continuing programming classes senior year through dual enrollment at community college. I've also done a lot of programming just for fun outside of classwork, but I definitely would still consider myself a beginner. But I have been fascinated with computers since I was very little and I do love programming, at least the programming I've been exposed to so far. But I feel like the basic programming curriculum I'm getting in high school and on my own isn't a clear representation of what college and real world work in computer science will be like. I don't want to just be a programmer, I want to get a PhD and eventually a research position. I really love math and science and even if I wound up choosing something instead of computer science, I don't think my goal to get a PhD and do research would change, that's just what I want to do with my life. But computer science has always appealed to me more than the other science fields I'm interested in, and I'd like to know more about it.</p>

<p>So my questions are, for anyone who can answer, what does a computer science major involve? What kind of stuff will I be doing in undergrad? In grad school? What kind of research positions are available in computer science and what do they involve? If anyone can give any personal insight to any of this, or maybe direct me somewhere with good information on the topic, that would be awesome. ^^</p>

<p>You like programming, and you like math. You are likely to like CS.</p>

<p>You can get an idea of what you would study as an undergraduate by looking at course lists and course syllabi. For example, UC Berkeley’s CS course list is here:
[EECS</a> Course WEB Sites](<a href=“http://www-inst.eecs.berkeley.edu/classes-eecs.html]EECS”>CAS - Central Authentication Service)</p>

<p>At UC Berkeley, freshman and sophomore level courses for CS majors are 61A, 61B, 61C, and 70. Junior and senior level courses are 100-199. Graduate level courses are 200-299.</p>

<p>Graduate students do research in some area of interest. Here is an example list from UC Berkeley:
[Research</a> Areas | EECS at UC Berkeley](<a href=“http://www.eecs.berkeley.edu/Research/Areas/]Research”>Research Areas | EECS at UC Berkeley)</p>

<p>You can find similar web pages at other research universities.</p>

<p>In industry, most who enter the work force at the bachelor’s degree level go into some type of software development or QA job. You can check UC Berkeley’s career survey results here:
<a href=“https://career.berkeley.edu/Major/CompSci.stm[/url]”>https://career.berkeley.edu/Major/CompSci.stm&lt;/a&gt;
<a href=“https://career.berkeley.edu/Major/EECS.stm[/url]”>https://career.berkeley.edu/Major/EECS.stm&lt;/a&gt;&lt;/p&gt;

<p>CS is my 2nd major. 1st major is math. </p>

<p>

</p>

<p>My advice is to go into college with an open mind and decide on your major after finishing one to two semesters of the intro classes that seems most interesting. That will give you some exposure to what the subject is like at the college level and you will be able to get advise from college professors and grad students who have deeper insight into the field. </p>

<p>

</p>

<p>CS at the university level will be more difficult than AP Computer Science, which is pretty much just object oriented programming, but my experience is that if you like using logic to create algorithms and solve problems than you will like higher level CS. </p>

<p>

</p>

<p>A common misconception is that Computer Science is the same as software engineering or programming. Computer Science starts with learning programming, but there is much more to it than that. </p>

<p>

</p>

<p>It depends on where you go to school. A lot of the lower level classes will focus on learning the basic of programming and what technologies to use. For example: C++, Java, Unix, etc. The higher level classes will focus on more theoretical subjects or specific applications like machine learning, parallel programming, computer vision, artificial intelligence, and graphics. The theoretical side of CS is close to discrete mathematics and can involve the kinds of proofs that you’d find in pure math. For example, my algorithms class involved. Different universities have different upper level strengths.</p>

<p>Thank you both for replying. I will definitely try out many classes in college before I decide my major but I’d also like to make sure I apply to colleges with strong computer science departments since that’s what I think I am most interested in. Your posts were extremely helpful and informative, thanks! ^^</p>