Big State U CompSci Programs - East Coast

<p>DS will be deciding between GA Tech, Va Tech, UMD College Park (honors) and Rose-Hulman for a degree in computer science. The first three schools are big state universities. I think Rose-Hulman is a different animal entirely. All three of the big state universities seem to have the basic CS courses for maximum career flexibility. Ga Tech and Va Tech have specialized "threads" but this may be more of a marketing difference from UMD.</p>

<p>DS is looking for an environment where students are passionate about technology. He's not interested in a CS program where students hope to work in IB or other non-technology pursuits.</p>

<p>I know that GA Tech has a great reputation but I disagree with some folks assertion that Va Tech is a regional school (I may be a homer since I went there but when I worked in Korea and Japan I was surprised that people knew about the VT school of engineering).</p>

<p>The recruiter lists seem relatively comparable. VT has the best food and probably will offer the most AP credits to avoid having to take many liberal arts classes. The greater the possibility for more CS classes the better in his opinion.</p>

<p>Cost has not yet been fully determined. Does anyone have any insight into these particular programs? It likely will come down to fit and cost but any information would be helpful for him to consider. We are aware of the differences in settings: Atlanta versus Blacksburg versus WashDC suburbs.</p>

<p>Thanks</p>

<p>Has he checked the on-line course catalogs to see which specific CS courses are offered at each school? It is desirable if core courses like algorithms, operating systems, networks, software engineering, databases, compilers, security, as well as various electives in his areas of interest are offered.</p>

<p>Also, check how many courses the introductory sequence is, because some schools do the introductory courses at a faster pace than others. Faster pace may be better for someone who goes in with previous CS knowledge, but may be overwhelming for those without.</p>

<p>Most students will want to take some out of major courses, so checking the course catalogs for interesting out of major courses can also be helpful. Some liberal arts courses can be helpful or interesting to a CS major:</p>

<ul>
<li>Math: abstract algebra and number theory for cryptography and CS theory</li>
<li>Psychology and behavioral economics: probably helpful in human-computer interaction, gaming, and artificial intelligence</li>
<li>History and social implications of science and engineering</li>
<li>Many other subjects (in science, humanities, and social studies): as subjects of application of CS</li>
</ul>

<p>I can only speak about U-Maryland’s CS program. Although it is a great program, for some odd reason, you could actually graduate without having to take an operating systems course. The data structures and algorithms core areas are required and combined into one course and the theory of programming languages (another core CS course) is required but operating systems can be not selected. </p>

<p>Ummm…I would recommend also taking operating systems. It’s one of the few courses that actually comes into play in the working world PLUS it will probably be required if a student ever decides to enroll in a graduate CS program.</p>

<p>The UMD-CP CS program allows for about 27-30 credits in electives with 12 having to be in an area outside CS and cannot be cross-listed with CS. The above areas listed by UCBAlumnus would be great non-CS discipline areas. Just remember that the math courses would have to be the non-cross-listed math courses, so the crypto math course would not count for those 12 credits (if math is selected).</p>

<p>All three are great choices academically. Congratulations to your DS! GT is probably slightly better-known nationally but VT is pretty close, especially in the east coast technology areas, notably Tidewater VA, Northern VA/DC metro, and Research Triangle in NC. You might poll your friends to see if you can locate some current students and recent alumni with CS degrees to get their perspective. If you know anyone who hires CS grads, ask them what they think of the graduates coming out of these schools. </p>

<p>I agree it may come down more to fit and cost. Two Ss of friends are engineering majors at VT - they said 1st year or 2 was roughest (all the wash-out courses) and I think both need at least part of a 5th year to complete all their requirements (changes in major and scheduling, I think, were their reasons). Both love it there. Another friend’s kid is at GT and is quite happy there (they had VT as a choice, too). Both schools have strong and broad engineering programs, so he has options if DS changes engineering major. I don’t think VT provides much, if any, OOS fin-aid. I don’t know what GT or UMD provide. </p>

<p>Other stuff - off-campus housing for upperclassmen is probably least expensive (but will still be a rip-off) in Blacksburg, next Atlanta, highest in College Park. VT dinning halls are known for excellent food. Transportation is worst to VT (not near anyplace), but rides (albeit several hours) to DC should be available. If time permits, campus visits would be a very good idea.</p>

<p>For those who are interested, VT’s comp sci program has the following core requirements in math and CS:</p>

<p>Math:
Linear Algebra
Calculus I
Calculus II
Vector Geometry
Multivariable Calculus
Discrete Math and Logic
Differential Equations
Combinatorics
Statistics</p>

<p>math elective: Intro to Numerical Analysis</p>

<p>CS:
1114 Intro to Software Design
2104 Intro to Problem Solving
2114 Software Design and Data Structures
2505 Intro to Comp Organization
2506 Intro to Comp Organization II
3114 Data Structures and Algorithms
3304 Comparative Languages
3214 Computer Systems
3604 Professionalism in Computing</p>

<p>41x4 Theory Course - either Data & Algorithm analysis, formal languages, or theory of computation.</p>

<p>In addition to the above core requirements the students will have to pick electives depending upon the specialized track:
Numerical Methods
Parallel Computation
Computer Architecture
Human Computer Interaction
Software Engineering
GUI Programming
Database Systems
Artificial Intelligence
Cyber Security
Compiler Design
Network Architecture
Wireless Networks and Mobile Systems
and more…</p>

<p>I think VT covers all the topics that he’s likely to need in an undergraduate degree. The only downside is that it starts out slowly in CS (he’ll test out of the freshman intro course and the 2xxxx courses may be very introductory). Still, he may be able to move some of those 2xxxx classes up to freshman year as he might test out of the Calc I and II courses.</p>

<p>Regarding Maryland, are you saying (GlobalTraveler) that Operating Systems is not required but can be selected as an elective?</p>

<p>The CS department provides a summary description of CS courses:</p>

<p>Year 1 131-132 Object Oriented Programming
Year 2 216 Intro to Systems
250 Discrete Structures
330 Programming Languages and Algorithms (not sure if its 351)</p>

<p>Year 3-4 electives: systems, networking, security, data structures, databases, artificial intelligence, vision and graphics, software engineering, programming languages, theory and numerical analysis.</p>

<p>Here’s a link to UMD’s core requirements <a href=“https://www.cs.umd.edu/ugradtest/?q=node/36[/url]”>https://www.cs.umd.edu/ugradtest/?q=node/36&lt;/a&gt;
It doesn’t appear as if UMD requires quite the same number of math courses as VT. More isn’t always better but some extra math may be desired, e.g., combinatorics. On the other hand, if differential equations (required at VT) have no use then he could fill that slot with something better.</p>

<p>The one advantage that I can see with UMD for kids with some level of progamming knowlege is that UMD offers testing exams for 131, 132, 216 and 250. If they can pass the exam then they can skip to higher course levels.</p>

<p>Yes, it looks like UMCP has CMSC 412 (Operating Systems) as a CS elective.</p>

<p>ucbalumnus - you had mentioned abstract algebra and number theory as potential math classes to include in undergraduate education for CS majors. Is abstract algebra the same as linear algebra? Is number theory the same as numerical methods, numerical analysis or combinatorics? If he understands the application of a math class in programming I think DS will be up for the challege. It’s the math that may be good for engineering but perhaps no direct application in CS that may be more of an issue (not sure if differential equations falls into this area).</p>

<p>Globaltraveler - I’ll let him know to take Operating Systems as an elective if he choses UMD. His current interest in more in this area anyway. Non-CS electives are important and I agree with both of you that psych/behavioral economics etc would be nice additions. Unfortunately, he feels that he’s done all his general education/liberal arts/well-rounded courses in HS and now it’s time to do the really interesting stuff. Youth!</p>

<p>Herewego2 - Thanks for the comments. DS attended UMD for a summer session a couple of years ago and has a good feel for the school. He’ll still need to have some detailed discussions with the CS department. We visited VT a year ago and he liked it well enough but we’ll go back this Spring when I take DS#2 for a Junior year visit to the engineering open house. Big bucks coming up over the next years! We’ll make the hike down to GT this Spring as well.</p>

<p>I know these weren’t particularly directed at me, but I’ll share some thoughts.</p>

<p>

No, Abstract Algebra is not exactly the same as Linear Algebra. First off, while courses in Linear Algebra usually involve some proofs, it can be taught as a service course to engineering majors and focus more on applications in calculus and differential equations. Abstract Algebra is usually a required course in undergraduate curricula and treats algebraic structures such as groups, rings, fields, etc., as well as properties of operators and relations. Studying Abstract Algebra can be useful for further study in CS in areas such as cryptography or theoretical computer science and formal language theory. Study in Linear Algebra can be useful for things like computer graphics and numerical analysis. The take away is that these courses differ significantly both in covered material and (often) in delivery.</p>

<p>

Again, the answer is not really. Number theory usually refers to advanced arithmetic treatment of the set of natural numbers. A classic problem in number theory is Fermat’s last theorem: are there solutions over the natural numbers to the equation a^n + b^n = c^n for n > 2? This was only (fairly) recently proven using quite advanced mathematics. Numerical methods and analysis generally refer to similar things: the design and application of computational techniques for calculating certain things of interest. Classic examples of the kinds of things done in numerical analysis include numerically solving differential equations via, e.g., Runge Kutta methods. Combinatorics (or “discrete math”, more generally) deals with things like enumeration, graph theory, decision theory, etc. All of these areas are certainly of great interest to aspiring computer scientists and software developers, although only combinatorics really needs to be treated in any depth (understanding something about graphs, trees, counting, etc. is indispensable).</p>

<p>

All of the math topics you have listed are certainly within the realm of what a computer scientist/software engineer might find useful. Of them, I would say that combinatorics and abstract algebra are probably the most aligned with software development, followed by linear algebra and number theory, followed by numerical analysis/methods and differential equations. Note that to study numerical analysis/methods, typically both linear algebra and differential equations will be indispensable. Generally speaking, the more math you take as a CS major, the better off you are. Taking math courses not only teaches you about the content of the course, but it increases mathematical maturity, which may be the most important benefit of courses like differential equations (which is not all that compatible with the content of core computer science topics).</p>

<p>

I normally encourage CS students to take something vaguely resembling the following core CS curriculum (either through the school’s core or through electives):</p>

<p>Data Structures & Algorithms
Operating Systems
Computer Organization / Architecture
Computer Networks
Programming Languages
Formal Languages/Automata Theory / Theoretical CS</p>

<p>Given the courses listed above, it seems like this could receive fairly decent coverage, provided the right electives were chosen (note: I would not recommend taking a second course in algorithms at the expense of missing out on a course on formal languages or theoretical CS). Computer Networks and Operating Systems seem to be the only missing data points, otherwise.</p>

<p>ChrisTKD,</p>

<p>Abstract algebra is the field of mathematics concerned with the study of algebraic structures such as groups, rings and fields.</p>

<p>Linear algebra is a branch of mathematics that studies vector spaces, also called linear spaces, along with linear functions that input one vector and output another.</p>

<p>Combinatorics is a branch of mathematics concerning the study of finite or countable discrete structures.</p>

<p>Numerical analysis is the area of mathematics and computer science that creates, analyzes, and implements algorithms for solving numerically the problems of continuous mathematics.</p>

<p>How do these courses tie in to computer science and software?</p>

<p>Cryptology (the practice and study of techniques for secure communication) usually requires some knowledge of both number theory and abstract algebra.</p>

<p>Linear Algebra is probably one of the most important math courses for any engineer or scientist. Many engineering/CS areas rely on linear algebra including operations research, scientific software development and computer graphics.</p>

<p>Combinatorics and Graph Theory applies to areas like network design. Don’t be surprised if the discrete structures/math course in a CS major’s sophomore year uses a book called Combinatorics. The sophomore course will give a high-level survey. You really get into the nitty-gritty when taking junior/senior-level courses in Combinatorics and Graph Theory.</p>

<p>Numerical analysis goes over the computational aspects of topics that you covered in your Calculus, Linear Algebra and Differential Equation courses (both ordinary and partial). Numerical Analysis is the foundation for scientific software development.</p>

<p>Depending on the school, courses in cryptology, numerical analysis, combinatorics, graph theory and computational linear algebra are part of both the CS and Math departments.</p>

<p>Wow - thanks for taking the time with that detailed response. I’m going to print it out for him so that he can see the purpose of all of those math classes in the CS curriculum.</p>

<p>Thanks again.</p>

<p>The previous replies give a good description of the math courses and their applicability to CS.</p>

<p>

</p>

<p>Big universities offer a wider range of courses than high school, so a student who finds the limited range of humanities and social studies offerings in high school uninteresting may find some of the offerings in college more interesting. For example, economics and psychology are popular courses in college (even for non-majors), even though they may not be offered at all in high school, or offered only in a single introductory course. The variety of English, math, history, science, and art courses in college is also greater than in high school, where the curriculum is more tightly defined, and the greater need to teach “the basics” limits the scope for electives.</p>

<p>

</p>

<p>Then don’t ask the opinion of others. That’s exactly what VaTech is. People may know the school for football.</p>

<p>I’ve worked with people from all 4. Personal preference rankings: UMCP, RH, GT, VT, only because of the personalities of my buddies who went to those. </p>

<p>In terms of student life, UMCP & GT (tie), VT, University of Kandahar, RH (ok, not that bad, but if you’re a social butterfly, Terre Haute is not the place to be).</p>

<p>In other words, not an easy choice. I love the DC area, UMCP had a great basketball team back then, etc. GT has the best recognition, RH will get you the most personal attention, and VT combines a lot from the larger schools and the small one. </p>

<p>Smartest engineer I know (my boss’ boss) went to RH, he’s dept head now. Several of my coworkers went to RH, so the grads do command plenty of respect. </p>

<p>Hard choice if I ever had to make it… Start an Excel sheet and write down curriculum requirements and see what sticks out…</p>

<p>I was surprised to see this old thread resurrected but perhaps some of the big-state discussion is helpful to others.</p>

<p>DS ultimately decided to attend VT for several reasons:</p>

<ol>
<li><p>Merit scholarships for RH and UMD-CP brought the cost within range of instate tuition for VT. GT was much more expensive and had to be head-and-shoulders above the others to remain in consideration. It wasn’t so it was dropped from contention early on based upon price and his personal preference for location.</p></li>
<li><p>UMD was too close to home. </p></li>
<li><p>RH was equally favored with VT but it had less name recognition on East and West coasts and he couldn’t see himself working in the Mid-West. Why, I don’t know.</p></li>
<li><p>VT has a nice campus and appeared to offer a similar breadth of courses as the other three.</p></li>
</ol>

<p>Thoughts one year later:</p>

<p>Positives:
He really likes the VT campus and will be working during the summer in CS at a position he found via the Engineering Expo/CS Career Fairs. He’ll be graduating from the program in 3 1/2 years.</p>

<p>Negatives:
IMO he probably would have been happier with the CS courses at UMD-CP because UMD would have allowed him to test out of all of the freshman and sophomore level classes. At VT he received AP credit for the freshman intro course but has been required to take all of the 2xxx courses, i.e., intro to problem solving CS, intro to data structures, computer organization I and computer org II. These are all great classes but not for someone who already knows the material. Most students are learning these concepts for the first time. Fortunately, there are other some other hard core programmers at VT. </p>

<p>This doesn’t mean that VT is easy. He’s had to adjust to very tough grading in Discrete Math and the heavy workload in Calc III and Physics.</p>