Anyone at UC Davis looking to go into computer science (CS) for the first time faces the decision of taking ECS 10 or ECS 30. Both are introductory programming classes, but whichever one you take can greatly impact your first impression of CS and your evaluation of it as a potential major or minor.
However, unless you’re already a full-fledged programming master and a hundred percent confident in your skills, you should definitely take ECS 10 first. Here are five reasons why:
1) It’s an easy GPA boost.
Okay, so maybe it’s not a super easy GPA boost (sorry, haha). But if you’ve already had minimal programming experience and/or you do all the homework in class, you should be able to get an A or B. Though taking ECS 10 sets you back a quarter in terms of fulfilling CS major reqs, you gain greater familiarity with fundamental programming concepts, such as loops, functions, recursion, and conditional statements. Consequently, you’ll be able to go into ECS 30 – an actual prerequisite for CS – feeling, at the very least, more confident in your ability to succeed in the class.
2) It shows you if programming is a fit for you.
That is, if you take the class seriously. Granted, ECS 10 can be a lot of busy work if you’ve programmed before, and even if you haven’t, the first few weeks of class go by fairly slowly. However, the later and tougher assignments allow you to push your brain’s limits, provided you don’t just copy others’ code (which would land you in a SJA meeting anyway, so that’s a no-go). Your reaction to those assignments & how you adapt your coding approach to them is emblematic of how you will approach future projects. After ECS 10, it only gets tougher, so if you find yourself unable to handle the class, ECS 30 and CS may not be the perfect fit for you. (That’s not to say you shouldn’t keep going with CS, of course; every decision is up to you.)
3) If you get the chance to take it with Matthew Butner, do it.
Alright, RateMyProfessor might disagree. But ECS 10 with Butner is a rough yet ultimately rewarding experience. Butner isn’t the best lecturer, but in office hours he is extremely helpful, patient, and attentive, explaining concepts and details better in person than in lecture halls (read: GO TO HIS OFFICE HOURS, ALL THE TIME). Plus, he usually curves tests & extends homework due dates when students clamor for change (aka he is receptive to students’ desires). His assignments can be tough, but as aforementioned, his office hours help a lot, and if you’re willing to put in the work you can learn a lot from the assignments & his class.
4) It’s usually easier to get into than ECS 30.
If it’s your first time taking an ECS class, congrats! You’ll finally realize why CS majors are often upset with Schedule Builder (and life) – CS majors get priority over non-CS majors when taking CS classes. In addition, there are people with priority registration who may nab a spot earlier than you. Furthermore, ECS 30 is the biggest class in the CS department, and they often only have one section for it. Consequently, getting into ECS 10 is much easier, since there are usually two sections offered.
5) It introduces you to Python.
Python is a more modern language than C/C++, and as such knowledge of it is sought by many software companies, including Google and Facebook. Though that doesn’t mean you can’t get a job if all you know is C, which isn’t a bad first language, just a more difficult one to begin with and one that’s a little more archaic, learning even the fundamentals of Python – which are taught in ECS 10 – both helps you acclimate faster to new languages and makes you more attractive to companies. (That being said, knowledge and practice of and with any language are the main determinant of your competitiveness once applying to jobs.)