Preparing for graduate school in Computer Science

<p>I'm currently a sophomore at Virginia Tech and I'm considering graduate school. I know I need research and when school starts back up, I'll start trying to get involved in research projects. But what about classes?</p>

<p>I'm also dual majoring in math and I'm trying to set up my classes as a blend between classes I'm interested in and classes that will prepare me for graduate school. </p>

<p>Math electives I know I'll take:</p>

<p>Advance Discrete Mathematics
Real Analysis
Linear Algebra 1 and 2 <----- classes are proof based
Number Theory</p>

<p>But I don't know what classes take for computer science. Any suggestions? I'll also take input on math classes I should take. </p>

<p>Also, I'm considering applying to our honors program. It offers some cool perks but one of the requirements is a thesis. Would that be beneficial or a waste of time? </p>

<p>UG Math catalog: <a href="http://www.undergradcatalog.registrar.vt.edu/1213/science/math.html%5B/url%5D"&gt;http://www.undergradcatalog.registrar.vt.edu/1213/science/math.html&lt;/a&gt;&lt;/p>

<p>UG Computer Science catalog: <a href="http://www.cs.vt.edu/undergraduate/courses%5B/url%5D"&gt;http://www.cs.vt.edu/undergraduate/courses&lt;/a&gt;&lt;/p>

<p>Thanks!</p>

<p>If you’re planning to do research as a graduate student (e.g. you’re planning to enroll in a PhD program), IMO, your time would be wisely spent in the honors program. Doing research and writing a thesis will, at the very least, introduce you to how these things are done in the academic/research world.</p>

<p>As for classes, some people benefit from technical/scientific writing classes. Check to see if either other departments offer them or if there are CS classes that incorporate them. (My Computer Systems class at MIT, at the time, required quite a bit of reading technical papers and answering questions about them in 1-2 page essays.)</p>

<p>My school actually requires a junior level technical writing course as part of my CompSci curriculum. At first I thought it was stupid but now I see the point of it. I’ll try and take that class earlier then.</p>

<p>About research though, what exactly is “quality” research? Being the first author on a paper? Winning awards at competitive research conferences?</p>

<p>The following are likely to be helpful:</p>

<ul>
<li><p>Core CS courses for preparing for graduate school in CS: algorithms and complexity, theory of computation/languages/automata, operating systems, compilers, computer architecture; some other courses tend to be very useful in most contexts like networking, databases, software engineering, and security.</p></li>
<li><p>Elective CS courses in your potential areas of graduate school specialization.</p></li>
<li><p>Undergraduate research.</p></li>
</ul>

<p>For math courses, some specific ones may be helpful in certain specializations. Abstract algebra and number theory should be helpful if you are going into cryptography, for example.</p>

<p>ucbalumnus , you seem to know a lot about a lot. If you don’t mind me asking, what exactly did you major in at Berkeley?</p>