Prerequisites for Computer Science

<p>I am a continuing sophomore and I want to major in computer science. How would you recommend taking the following prerequisites? I want to declare after the fall semester of my junior year since declaring after the summer of my sophomore year will be very challenging. Thank you. </p>

<p>The Computer Science Prerequisites</p>

<p>You must complete all the lower division course requirements before you will be considered for admission to the major. These are:</p>

<pre><code>* CS 61A (Structure and Interpretation of Computer Programs), 61B (Data Structures), 61C (Machine Structures)
* Math 1A and Math 1B (can be satisfied with Advanced Placement),
* Math 54 (Linear Algebra and Differential Equations)
* CS 70 (Discrete Mathematics and Probability Theory)
* EECS 42 (Digital Electronics). (We highly recommend taking EECS 43, a one-unit laboratory course taken P/NP, during the same semester as EECS 42.)
</code></pre>

<p>You should be able to take them in any order, for the most part, with these few exceptions:</p>

<p>1.) Don’t do MATH54 or CS70 until you’ve gotten good mathematical maturity (usually from completing 1A/1B, but none of the actual concepts overlap).</p>

<p>2.) EE42 might be somewhat easier after MATH54.</p>

<p>3.) Take CS61C after CS61A and CS61B.</p>

<p>^ Strongly agree with 1, conditionally agree with 2 (if you have AP Phys C E/M level experience with circuits, it will be easier than 54), disagree with 3. Take 61A before 61B/C. Take the latter two in whichever order you want.</p>

<p>I’m assuming that you are going to be a sophomore in the fall and that you’ve taken no prereqs nor do you have any previous experience in CS.</p>

<p>I would do something like this:</p>

<p>Fa10: CS3, Math 1A
Sp11: CS61A, Math 1B
Su11: CS61B, CS70 or EE42 or Math 54
Fa11: CS61C, CS70 or EE42 or Math 54
Sp11: CS70 or EE42 or Math 54, CS upper div</p>

<p>It would be even better if you can take 3 techs in one semester otherwise you’ll probably stay past 4 years. In terms of order I would suggest:</p>

<p>CS3 > CS61A > CS61B > CS61C
Math 1A > Math 1B > CS70/Math54/EE42</p>

<p>CS3 is optional but if you have no previous programming experience I recommend it otherwise prepare to work your ass off in CS61A. Also don’t bother taking EE43, it’s a waste of time.</p>

<p>I don’t think they offer cs3 anymore. I guess cs10 is the new version of cs3…</p>

<p>They’re offering CS 3S this fall, which is the pass/fail self-study version that you can take for a variable amount of units (1-4). CS10 is fine, but it won’t offer as smooth a transition into CS 61A than will CS 3 / CS 3S.</p>

<p>CS 10 has “bigger” concepts of computing, while CS 3S is mostly an intro to programming. CS 10 is better if you’re unsure about the CS major.</p>