<p>Does a CpE, following the curriculum below have a shot at an M.S at a decent school, given that the cumulative GPA is above a 3.5?</p>
<p>The following has been posted quite a few times by myself and a few others.</p>
<p>The really cool thing about computer science is that you only really need 4 courses to qualify for most CS graduate programs:</p>
<p>Algorithms
Data Structures
Theory/Organization of Programming Languages
Operating Systems</p>
<p>That’s it…and at some schools, the Algorithms and Data Structures course is combined into one course. That is why many graduate CS students come from many other majors.</p>
<p>All you have to do is incorporate the above 4 courses into your CompE degree and you will admissible to most M.S.C.S. programs.</p>
<p>GlobalTraveler,
With due respect, I find it hard to believe that most M.S C.S programs will accept graduates with just those 4 courses. Not even an advanced C++ or Java class? How would the university know that they would be able to handle the program?</p>
<p>I ideally want to attend a top 20 C.S program.</p>
<p>
</p>
<p>Ummm…</p>
<p>You cannot just take those 4 courses from the start, there are prereqs for those courses. Here is a typical (very generalized) B.S.C.S. program…</p>
<p>Object-Oriented Programming I (1st programming courses in either C++ or Java)
Object-Oriented Programming II (2nd programming courses in either C++ or Java)
Discrete Structures (intro to set theory, boolean logic, combinatorics, graph theory)
Computer Organization</p>
<p>…then comes the core courses that I mentioned in the prior post</p>
<p>Algorithms (Prereq: Object-Oriented Programming II)
Data Structures (Prereq: Object-Oriented Programming II)
Theory/Organization of Programming Languages (Prereq: Data Structures)
Operating Systems (Prereq: OO Programming II AND Computer Organization)</p>
<p>…then about 4 or 5 CS electives.</p>
<p>As a CompE major, you will take some foundation programming (hopefully Java or C++) and Discrete Structures. Just by being a CompE major would have you taking courses that would go much more in depth with Computer Organization than a CS major.</p>
<p>So what I trying to say is that a CompE major would take the same foundation programming as a CS major, so all you need to take are the 4 core courses. The electives would help depending on your intended specialty BUT those courses won’t matter as much AS FAR AS ADMISSION as the 4 core CS courses of Algorithms, Data Structures, Theory Of Programming Languages and Operating Systems.</p>
<p>From U-Illinois (rank #5)</p>
<p>Applicants who do not hold a bachelor’s in computer science must have sufficient background in computer programming, algorithms and data structures, computer organization, and the theory of computation (comparable to CS 125, CS 225, CS 231/232, and CS 173/373 at Illinois) to be eligible for CS @ Illinois graduate programs.</p>
<p>From U-Washington (rank #7)</p>
<p>You should have completed at least the following undergraduate courses: data structures, algorithms, computer systems, and programming languages or have obtained experience in these areas professionally.</p>
<p>I am pretty sure if one digs through the other schools in the USNews top-20 CS graduate programs, they would say similar things. Most of my knowledge on the admission requirements comes from ex and/or current co-workers who discussed what they needed for CS grad school and myself back when I was considering a M.S.C.S.</p>
<p>Here are Berkeley’s suggestions for preparation for its graduate program in CS:</p>
<p>[Prerequisites</a> for Applying to UC Berkeley | EECS at UC Berkeley](<a href=“http://www.eecs.berkeley.edu/Gradadm/Prerequisites.htm]Prerequisites”>http://www.eecs.berkeley.edu/Gradadm/Prerequisites.htm)</p>
<p>
</p>
<p>
</p>
<p>It goes without saying that a student should be familiar with at least a few different programming languages and able and ready to learn additional ones as needed. For example, an undergraduate completing a good CS degree program will likely have experience in programming languages like Scheme, Python, C++ or Java, C, assembly language, and perhaps others as needed for specific topics.</p>