<p>UCBAlumnus: So do you recommend that I take less than three computer science courses at a time? (Note that I will only be taking 12-13 hour semesters.)</p>
<p>LoremIpsum: I am fully aware of the prerequisite structure at both schools and took that into account when I said I could finish in 3-4 semesters after transferring. UNC is very flexible in that regard, but NC State may indeed prove a little difficult to fit everything in if there are scheduling problems.</p>
<p>Cardinal: Why would I study computer science now if I’m paying money to go to a top-notch program to study it next year? I am currently building a foundation for computer science: Calculus 3, Linear Algebra, and Calculus-based General Physics 1 this semester; Probability and Statistics, Discrete Methods, Calc-based Physics 2, and Intro to Java Programming next semester.</p>
<p>Somebody please answer this question: what would be a more valuable investment of my time–a Bachelor of Science in Computer Science OR a Bachelor of Arts in Computer Science along with a Bachelor of Arts in Communication with a concentration in Digital Media (two separate degrees, not a double major)?</p>
<p>Cardinal Fang listed two good reasons. A third would be to expedite your fluency in being able to complete all the assignments when taking a very heavy CS course load. Both my son are/were CS majors and both were heavily self-taught before taking formal CS classes. As a consequence, both breeze(d) through assignments in a fraction of the time it takes/took their less experienced classmates.</p>
<p>What LoremIpsum says is true. You’re planning to take upper-level CS classes while you take the lower-level classes. Assuming this is even possible (at some schools, many upper-level classes have a prerequisite two- or three-semester introductory sequence of classes) the other students in the upper-level classes will know more than you. In one’s first two years of programming, one improves very fast. You’ll be at the bottom of that curve and your fellow students will be near the top.</p>
<p>In the summer of '83 I think I took Computer Architecture, Programming Languages, and Operating Systems (all 400 level) in one 2 1/2 month long summer and walked out with 2 A’s and a B. That was using PL/1 on a Multics system - things are a LOT easier nowdays and I don’t think assignments are any different. </p>
<p>You want to see homework, sophomore Architecture (my daughter is in it). 3 classes, 2 studios and a history/theory course. Plus Teletubies Physics 101. About 3 all nighters per week. </p>
<p>So, no, I don’t think 3 comp sci classes and one related class is a problem. The problem is that you can’t take 3 classes the first year due to prerequisites, so the 1st semester 1 course, 2nd maybe 2, and hello 4 semesters and 2 summers.</p>
<p>TWNeal, it seems like you think learning to program is like learning to take a derivative: once you know it, you know it, and you’re good. Unfortunately, programming is not like that. It’s like basketball: you start out clumsy and unskilled, and with practice you get better. You’re going to be still working on your dribble while your classmates are running pick-and-roll.</p>
<p>I have to agree. Both my sons are natural learners at math and physics – look at it once and know it without needing to review or prepare for exams. Programming is different: your logic can be impeccable, but leave out a single bracket amid hundreds of lines of code and your project grinds to a halt – it’s like trying to write a 5-page paper and having the contents disappear because of a lone misspelling. Experience, borne by trial and error, eventually teaches you what kinds of errors occur and how to resolve them quickly. You need brains and experience to become a good programmer.</p>
<p>Take this from a 30 year programmer who actually enjoys programming still. The above two posters are 90% right. The 10% is assuming one can actually learn the stuff. Everyone can be an average programmer, don’t get me wrong. Most software developers are average. The problem is that you’ll be taking classes with everyone, and even worse, have to work in a group assignment with the good, the bad, and the ugly. </p>
<p>Trial and error (which usually brings experience) is paramount. Once you get really good at it, you begin to see things different than the Hoi Polloi. The software ‘talks’ to you. This is all experience. And you can’t rush experience. It has to come in on its own.</p>
<p>I would say, if you’re really interested in writing software for a living plan for 4 semesters and a couple summers, and spend LOTS of time between now and then learning the basics. </p>
<p>I had an undergraduate in engineering so I was no stranger to the ‘engineer-think’ and it still took me 4 + 2 to get an undergrad in Comp Sci. The prerequisites for grad school would have been 3 semesters and a summer so I said what the heck, let’s take a few arts and craft courses and call it a BS before making a career out of grad school. I started with a lot of people who did the 3 semester prerequisite road into an MS and believe me, most of them, having taken mostly the same courses as I did, could not program their way out of a paper bag. That’s what a semester or two of experience gives you.</p>
<p>The ‘hurry up’ crowd would do the assignments and that was that. We in the ‘let’s enjoy it while it lasts’ crowd spent uncountable nights in the computer labs trying to do stuff on our own… We learned a lot more than the other guys simply because we put in a lot more time to figure out things, learn new technologies (i.e. BSD Unix :)) and learn from each other.</p>
<p>I have a degree in Computer Science. I programmed professionally for fifteen years before I quit to be a homeschooling mom. Now I’m taking a couple of those free online Computer Science classes, and because I did so well in a previous free online class I’m also TAing a free online Computer Science class.</p>
<p>So I know what I’m doing, and I know what present-day CS classes are like. You <em>will</em> spend many hours staring at your code. That is what students do in programming classes.</p>
<p>CS is HARD. Unless you have aptitude (still TBD for OP) and passion, it will eat you up and spit you out. This is especially true for those without in depth hs computer experiences. </p>
<p>I have two very bright, very creative kids. For one the engineering/CS course concepts come easily, but they still require A LOT of work! The other did great in the Arts/Sciences CS class (application based, allowed creativity)… but barely passed the Data Structures course and abandoned thoughts of a CS minor. </p>
<p>Not sure if the is a clue… but although both kids were creative (music, writing, etc)… the more CS-inclined kid always been especially good a puzzles (did toddler puzzles upside down w/o picture, excels at Rubiks cube, and Sudoko, etc ) and mathematical proofs.</p>
<p>^^^ I think you hit the nail on the head. They not only have to be creative, but they have to be very logical and able to solve puzzles and work out strategies.</p>