When looking at Computer Science Curriculums what should I look for?

<p>What I am asking is I am certain i am going to major in computer science but here in Alabama there are tons of CS schools here all have different curriculums, what should I look for when looking at the courses that they teach that I should look for that be best for me.</p>

<p>As in should I look at a university that is very math intensive or a school that has less math classes and more programming classes? </p>

<p>Also what should I look for to tell if as computer science school has a lacking computer science program? </p>

<p>I am only looking at 5 schools </p>

<p>Auburn
Alabama
University of Alabama Huntsville
University of Alabama Birmingham
or
Southern Polytechnic State University(Georgia)</p>

<p>You should look for the following curriculum in a CS program. If the program does not resemble the following, then take the necessary extra courses to fill in the gaps.</p>

<p>Math Requirements

  • Calculus I
  • Calculus II
  • Linear Algebra
  • Probability & Statistics for Scientists/Engineers (Calculus-based)</p>

<p>Computer Science Requirements

  • Introductory Programming I (C++ or Java, depending on school)
  • Introductory Programming II (C++ or Java, depending on school)
  • Discrete Mathematical Structures (may be offered also by Math department)
  • Computer Organization (may or may not include Assembly Language)
  • Algorithms (may be part of combined Algorithms & Data Structures course)
  • Data Structures (may be part of combined Algorithms & Data Structures course)
  • Organization of Programming Languages (surveys different languages)
  • Operating Systems</p>

<p>Computer Science Electives

  • Computer Networks (the reason to take Probability & Statistics)
  • Database Systems
  • Computer Graphics (where Linear Algebra comes into play)
  • Cryptology (may need additional math courses to take this course)
  • Combinatorics (may need additional math courses to take this course)
  • Graph Theory (may need additional math courses to take this course)
  • Numerical Analysis (may need additional math courses to take this course)
  • Information Assurance
  • Quantum Computing (may need additional Physics courses to take this course)
  • Parallel Computing (may need additional math courses to take this course)
  • Computer Architecture (may be required at some schools)
  • Software Engineering</p>

<p>The KEY is that you get that 4-course core of Algorithms, Data Structures, Organization of Programming Languages and Operating Systems. It’s not a complete CS program without those 4 courses and just about every graduate CS program will want you to have these courses coming in or they will make you take the graduate versions of them anyway .</p>

<p>As for the CS electives, I personally would not leave that campus without Database and Network courses…as most software jobs are associated to the manipulation (programming), distribution (networks) and storage/retrieval of data (databases) than all run over an operating system.</p>

<p>

</p>

<p>Not every school has an organization of programming languages course; in such cases, the material may be spread about several courses (perhaps because the CS courses use numerous different computer languages instead of mainly just one or a few similar ones).</p>

<p>Courses in theory of computation and compilers are also typically offered, though these are typically more of interest to the PhD-program-bound students.</p>

<p>

</p>

<p>The introductory CS courses may vary significantly from school to school. In some schools, the first course for CS majors may use Scheme or Python as the implementation language.</p>

<p>From experience, I can vouch for the programs at Auburn and Alabama. These are ABET-accredited programs with students who have seen good outcomes. If memory serves, both institutions require the following of CS majors:</p>

<ul>
<li>Programming 1 & 2 in Java</li>
<li>Programming in C++</li>
<li>Computer organization and assembly language</li>
<li>Programming languages & paradigms</li>
<li>Discrete math/structures</li>
<li>Algorithms & data structures</li>
<li>Operating systems</li>
<li>Software engineering and UML</li>
<li>Formal languages & automata</li>
<li>Computer networks</li>
</ul>

<p>There are also electives for things like computer architecture, software engineering, databases, graphics, etc. In fact, I think Auburn has some other programs, like software engineering and “wireless” engineering, that require some additional courses and set some of your electives. Oh, and the math departments should offer the obligatory “calculus, linear algebra and diffy q’s for engineers” type sequences so loathed by math professors everywhere.</p>

<p>I’ve also heard decent things about UAH and UAB, but I don’t have as direct experience with those schools.</p>

<p>^ You just summarized the curriculum at my university. I guess that means it’s a decent program :).</p>

<p>Most places probably have fairly similar core programs - reflecting courses required for ABET accreditation and recommendations in the ACM/IEEE curriculum recommendations.</p>

<p>

</p>

<p>Heh heh, I have personally heard a few Math professors voice their opinion (in disdain) about the “Whatever Math Topic for Engineers” courses.</p>

<p>

</p>

<p>There are some schools where the CS department is too small to offer all of the typical core upper division CS courses (e.g. Emory), and others where the CS department has a specialized emphasis while lacking some of the more typical core upper division CS courses (e.g. Georgetown). Such schools typically lack ABET accreditation in CS, although there are some very good CS major degree programs that also lack ABET accreditation.</p>

<p>I second what everybody else is saying, but I also suggest you look at what kind of project courses they might have. Like do they have courses that involve forming teams and making one entire software project over the course of the semester? Is there a capstone course? Preferably there would be a junior-level project course AND a capstone course.</p>

<p>Global, can you tell me what these mathematicians are saying about “x for engineers” classes?</p>

<p>TomServo,</p>

<p>Those few math professors are just “stuck in their ways” and feel that engineers should know more about the theory behind topics. From what I gather, these profs believe that you come to college to learn “totally” (in their words) about a topic…not just to qualify for a job.</p>

<p>There was not enough time for me to really get involved in a debate with them, being as I am an applied mathematician, but I did reply back with a more generic “having the options to be theoretical or applied in a subject area would bring in more students with different interests…yadda yadda”.</p>

<p>Thank you guys it is a hard decision for me to particularly decide which school I want to attend for CS my parents want me to attend a in state Computer Science school simply because School is expensive as heck. I no that Georgia Tech is the top tier university for CS in the south so I might apply there after community college if I can convince my parents to let me go there regardless of how expense it is.</p>

<p>^ Georgia Tech is a better school for CS compared to Auburn & Alabama, but if your goal is to become a practicing software engineer, the benefit of going to Georgia Tech may not outweigh the cost. If you don’t foresee yourself being a better student than the average at Georgia Tech and doing research with a professor, with the ultimate goal of getting into an even better graduate school, I just don’t know if there’s a great argument for paying a bunch of money for a CS degree. There are so many jobs in CS that graduating with a decent GPA with any kind of experience and a degree from a large state university pretty much guarantees you’ll find a job somewhere. (Disclaimer: the future is a hard thing to predict, and the situation may be very different when you graduate.)</p>

<p>

</p>

<p>then you should try to. </p>

<p>There is no way to know just how good you can be until you try. That is the reason to go to a great school. It doesn’t upper bound you. The point of the theoretical classes and the math classes is to prepare you for a 40+ year career. Programming changes over time, the fundamental principles will stay with you. Not everybody can handle this level of abstraction, but you don’t know until you try. </p>

<p>Sure it’s more expensive, but you’re 17 or 18. You borrow some money for CS and you’ll be able to pay it back. Why settle for second rate when you don’t have to. It’s pound foolish.</p>

<p>Challenge yourself to be great!</p>

<p>GIT is a top-ten CS school. And you’re in the same state. You don’t have a problem here!</p>

<p>He’s from Alabama and last I checked Georgia Tech was in Georgia</p>

<p>Stay in Alabama for your undergrad degree unless you’re desperate to get out. You’ll likely learn the same things at either school, so the extra cost of Georgia Tech isn’t worth it.</p>

<p>Anyone have any thoughts about this program at UA?</p>

<p>[Overview</a> ? 100P](<a href=“http://100p.cs.ua.edu/]Overview”>http://100p.cs.ua.edu/)</p>

<p>I would prob go to Georgia Tech if it was in state.</p>