UC Berkeley L&S Computer Science

<p>Hi,</p>

<p>I wanted to ask current CS students if they felt like Berkeley CS was helping them become better software engineers. I read online somewhere that CS is primarily composed of computational theory and that programming classes are few and far between. I do not want to go into deep CS theory and would rather just stay on the coding side of things. </p>

<p>I’m not a current student (L&S CS admit like you, actually) but I’m curious by what you mean by “programming classes”. I understand the need for a few lower div courses like CS 61B to help get started, but you don’t exactly need 10 different courses to learn how to program - after you’ve got a couple languages down, you can teach yourself the syntax of other similar languages very easily through online documentation and tutorials (for example, Ruby is straightforward after learning Python, Matlab and C++ after Java, etc), so I don’t think you’d need a bunch of “programming classes” in the first place to become a better developer. </p>

<p>In any case, from this link: <a href=“http://general-catalog.berkeley.edu/catalog/gcc_list_crse_req?p_dept_name=Computer+Science&p_dept_cd=COMPSCI&p_path=l”>http://general-catalog.berkeley.edu/catalog/gcc_list_crse_req?p_dept_name=Computer+Science&p_dept_cd=COMPSCI&p_path=l&lt;/a&gt;&lt;/p&gt;

<p>the first 4 courses themselves are introductory classes to programming. There are several others down the list as well. I don’t think you’d need any more such classes than that (imo of course, i’m not a student there so I don’t know for sure).</p>

<p>Theory and programming aren’t two separate worlds… you need both to be successful. For example, algorithms is a theory class, you won’t write a single line of code, but it teaches you about problem solving, run times, and how to approach problems efficiently and create algorithms. While you don’t do much programming in the class, the concepts are directly applicable to programming and show up in just about every other class you take.</p>

<p>Some classes are very hands on and have you write a ton of code… user interfaces, software engineering, and graphics come to mind as being really code-heavy with big projects, there are others as well. But those again aren’t meant to teach you programming languages, it’s teaching you CS. You’ll pick up languages and learn to code as you go, of course, and you’ll be taught style and organizational tips as you go, but after 61A and 61B the focus isn’t on learning different languages or how to write ifs and loops and objects.</p>

<p>Every class I’ve taken, even the more theory ones, are useful for writing programs though. And most have projects and such in class where you’ll apply the concepts.</p>

<p>

</p>

<p>All of the following CS courses have programming assignments, sometimes with rather large programming projects:</p>

<p>61A, 61B, 61C, 160, 161, 162, 164, 169, 184, 186, 188</p>

<p>This does mean that they will be devoid of the theory behind the concepts you will use in your programming assignments and projects, since you will be learning the theory and implementing it in computer programs.</p>

<p>Purely theory based courses without programming assignments or projects:</p>

<p>70, 170, 172, 174</p>

<p><a href=“CAS - Central Authentication Service”>http://www-inst.eecs.berkeley.edu/classes-eecs.html&lt;/a&gt;&lt;/p&gt;