<p>The problem is, it can be difficult to fulfill both of your recommendations.</p>
<p>If you have to retake your lower division courses (or take them the first time because your previous college did not have them – a common situation for many community colleges), you will have to compress those courses and your seven or eight upper division technical courses into your four semesters, which would require taking a greater number of technical courses per semester.</p>
<p>For a community college transfer into L&S CS who was unable to take any of the lower division CS courses before transfer (but has completed the needed math courses and breadth or IGETC requirements), a possible schedule would be something like:</p>
<p>Summer: CS 61A, CS 70
Fall: CS 61B, EE 42, Math 116(a), elective
Spring: CS 61C, CS 170(b), EE 122(b), elective
Summer: internship
Fall: CS 162, 2 other CS courses, elective
Spring: 2 or 3 CS courses, 1 or 2 elective(s)</p>
<p>(a) Cryptography, requires only Math 55 which is similar to CS 70; counts as a technical elective.
(b) Requires CS 61B but does not require CS 61C, so can be taken before CS 61C is completed to reduce schedule pressure later. CS 170 is a theory course that does not involve programming.</p>
<p>Managing the workload may be more of a case of avoiding taking too many courses with programming, labs, or projects all at once.</p>
<p>Transfers into EECS need to also fit EE 20N and two upper division humanities and/or social studies breadth courses, as well as check the EECS upper division requirements, assuming that they have completed the lower division math, science, and breadth requirements.</p>