Question about Bama's ranking

<p>@ “collegedadnh”</p>

<p>Since I have a “dog in this fight” as my DS is starting at UA as a CS major in August I hope you will ask such questions of Dr. David Cordes, the dept head for CS as M2CK suggested. </p>

<p>I, along with many others on this forum, would appreciate what you find out in terms of his perspective and your opinion of it. As a software engineer you are in much better position to inquire than those of us who are in different professional fields; i.e. I just don’t know the secret CS “handshake”! :-)</p>

<p>“Nanu nanu!”</p>

<p>I’m not a computer scientist, either, but the CS program looks to proceed rather logically to me (other than the multiple 1 credit CS/Engr courses of the first semester, which have now been combined into Engr 103). </p>

<p>I think that UA has more of a General Computer Science curriculum, whereas some other schools have specific tracks that can followed, in addition to the general track option. No reason why a student couldn’t utilize electives to structure the CS program towards a specific track. The curriculum includes 6 CR of CS electives as well as 15 CR Free Electives - plenty of opportunity to study additional CS topics of interest.</p>

<p>I have sent emails to ask for more info and this link was requested. So, we’ll see what info comes…</p>

<p>My background - As a female growing up in the 70s, I was very interested in all things technological. As soon as I had access to a ‘computer’, I started self teaching myself BASIC. However in those days there wasn’t much emphasis on gettinng females into STEM careers and although there were plenty of females in CSCI and Engineering, frankly the though never even occurred to me that I could turn my interest in technology into a career. I wound up wiith an A&S major, but late in my college career I came to the realization that I really should be in a technology field and began taking CSCI courses my senior year (at Indiana U). After I graduate, I immediately began grad school in CSCI. However, I had many prereqs to make up and after just 1 year in the program, I relocated. I transferred to a Purdue campus at the time (as it was in the days before online courses) and absolutely no courses transferred as the programs were so different. I restarted my degree program (with more required prereqs), but then found out I was expecting my son. I opted to put my degree on hold…fast forward about 13 years and I opted to go back to grad school, but felt an MBA was the better route at that time.</p>

<p>So, being fairly familliar with the CSCI “secret handshake”, I’ll elaborate a little. There are CSCI degrees that are much more theoretical in nature and there are CSCI programs that are much more practical. Neither is better or worse and neither is really stronger or weaker, it really just depends on your intended career path. If you want to go on to get a PhD in CSCI and be involved in research you are going to want to head toward a theory based path. If you’re planning on heading into the business world then either can be appropriate, once again depending on the role your seeking. If you want to be a developer for the Microsoft’s and Google’s of the world, they’re going to be looking for students with a strong foundation in the theoretical, if you are planning on doing some custom development for a company that writes its own apps in-house, then either degree will qualify you, if you’re interested in more of a business analyst position (a person who works between business and IT by understanding the wants and needs of those at a business and being able to translate them into IT requirements), then you’ll want to aim for the more practical CSCI degree or an MIS degree.</p>

<p>Looking at the Bama courses from post #10 ad the NCSU courses from post #11 it’s very obvious that Bama is leaning toward the practical. The FIRST indication is the variety of 100 level programming courses offered at NCSU - (Fortran, C++, and Java are all offered as 100 level courses). Most programming languages, such as C++ require SEVERAL years to become highly adept with…it’s like learning a foreign language - 1 semester of French isn’t going to teach you much. You need to be exposed to the basics early, then you need to continue to build on it and reinforce it to become very skilled. At Bama those courses aren’t offered until the 300 level (325 C++, 350 Java) which for most students may be junior year before they get their first exposure. </p>

<p>As a sophomore NCSU offers assembly language programming. Assembly is 1 step removed from actually programming in binary. Learning binary is generally a requirement of assembly courses and they instruct in concepts such as how to write directly to the memory registers of a machine. If you ever want to program an operating system for a machine - it WILL be based in Assembly. Once again that’s a 200 level course. At Bama there’s no mention of Assembly at all. It may be included in one of the higher level courses or my be embeded in some of the 300 level courses, but not having a course…or multiple courses in Assembly will put anyone who dreams of going off to program for Microsoft at a HUGE disadvantage.</p>

<p>Most computer languages are fairly similar in nature and once you learn Java, it’s fairly easy to pick up visual basic or C++ - it’s like learning Spanish and then trying to pick up French or Italian. But learning Assembly is completely different - it’s like learning French and then trying to learn Japanese. </p>

<p>Bama on the other hand has a bunch more practical courses - they have a 200 level course (285) on the use of spreadsheets - now that’s going to include ‘expert’ level skills and will include writing macros in VB (visual basic), but you frankly, just won’t see a course like this at a school that has a theory based program. Also courses like 302 - database systems and 457 database management are frankly courses that someone who is planning on being a developer generally won’t need. If you’re more interested in a field like consulting, then having skills in Oracle and SAP are in high demand and these are perfect courses. Course 417 - Requirements Engineering - is the perfect course for a rising business analyst, but once again most people who want to be programmers won’t enjoy this course. Once they’re in the working world, they’ll expect the BA to bring them the requirements and they’ll just focus on the development. 340/345 Legal and Ethical issues - once again, these seem to be more like business courses - making this an “MIS-ish” degree rather than courses focusing on the theory and the development.</p>

<p>Neither route is better or worse, but it is something the CSCI students really need to consider because the program they choose may not eliminate any opportunities for them, but may make it easier or more difficult to pursue some opportunities. </p>

<p>Just as someone going through the NCSU program would have trouble interviewing for a consulting position and not being able to speak to things such as requirement engineering, someone in the Bama program will have a long road ahead if they want to be on the development team for Windows 10? 11? what version is going to be out by the time the graduate? :)</p>

<p>@rtrmom2</p>

<p>well I was going to leave MIT and schools in that league out of the conversation but since you mentioned them… According to a colleague whose daughter is a CS major at MIT, they don’t even take an intro to programming course and are expected to pick up languages on their own or with the help of a TA. Doesn’t sound right to me and I wouldn’t want to see UA follow that model. He indicates though that its up to the teacher to determine what language will be used for the course and that Java, C++, and Python are all used there along with various development tools/kits. </p>

<p>Interesting discussion on Python and I’ll have to consider that. I know none of my VERY large product is coded in Python or its kin, hence my bias.</p>

<p>both Dr Brown and Dr Cordes sent immediate responses to my emails. Dr. Brown is going to read this thread and respond here himself.</p>

<p>Dr. Cordes wrote this (I hope he doesn’t mind that I’m sharing this. :slight_smile: )</p>

<p>Hi there,
*
Thanks for the email – here are my thoughts on the questions.
*
With respect to an introductory programming language, the specific language is really not the issue.* What is critical is that the student develop a solid foundation in software development.* The basics of Java or C++ or Python (or other languages) are all the same – sequence, selection, iteration, functions and objects/arrays.* The language that people use in 20 years will probably be something other than C++/Java/Python, so what is critical is learning the underlying concepts and not focusing on how to code in a specific language.* We want to teach general concepts, not specific skills that could become dated or obsolete.
*
UA does have an MIS program, but that is separate from the CS major.* We offer computer engineering and computer science (in the college of engineering) and also an MIS degree in the college of commerce.
*
With respect to program focus, there are two approaches to building a curriculum.* One approach is to build a curriculum that fits a specific interest area (such as theoretical foundations or application development) and assume that everyone entering that program has interests that match the emphasis areas within the curriculum.* The other approach is to put together a fairly broad curriculum and allow students to focus on the specific aspects of computing that are of the greatest interest to them.* Computing is incredibly broad, and we’ve tried to construct a curriculum that ensures coverage of the fundamentals while also giving students an opportunity to spend some time focusing on specific areas within the field that are of interest to them.* As one example, we recently created a track in software engineering for students.
*</p>

<p>Assembly language is covered in these courses:</p>

<p>[ECE</a> - Microcomputers](<a href=“http://jjackson.eng.ua.edu/courses/ece383/]ECE”>http://jjackson.eng.ua.edu/courses/ece383/)</p>

<p><a href=“http://claws.clarkson.edu/attachments/113_ECE484-2010.pdf[/url]”>http://claws.clarkson.edu/attachments/113_ECE484-2010.pdf&lt;/a&gt;&lt;/p&gt;

<p>There is a lengthy discussion about assembly language here.</p>

<p><a href=“http://stackoverflow.com/questions/411497/why-do-we-teach-assembly-language-programming?page=1&tab=votes#tab-top[/url]”>http://stackoverflow.com/questions/411497/why-do-we-teach-assembly-language-programming?page=1&tab=votes#tab-top&lt;/a&gt;&lt;/p&gt;

<p>UA sends CS students to top grad schools and they appear to do well, so I believe that they provide enough theory for students to succeed in PhD programs.</p>

<p>It’s not a huge department so that is good and bad depending on your interest. Good in terms of personal interaction with faculty and research opportunities, but bad in terms of breadth, The strength of department appears to be software engineering.</p>

<p>At least that’s the way I see, but I’m not an expert in CS.</p>

<p>It looks like NCST students take Python for their first course, then move on to Java second semester to ramp up for data structures so UA is not alone in their use of Python. Perhaps its their gaming offerings that just sound sexier and some of the stuff that UA includes like Visual Basic and other MIS courses dilute how the CS course offerings come across to a techie like me. Other current topics in CS like cloud computing, wireless, geo-spatial, virtualization, machine learning, gaming, etc. may get covered in the 490 classes but it would be nice to know whether any of these topics are covered.</p>

<p>btw, I’m surprised that Visual Basic is still taught at UA. I thought that went out in the 80s.</p>

<p>They are offering a course in the fall on cloud computing. (It’s been offered previous terms, as well.)</p>

<br>

<br>

<p>Again, you really need to contact Dr Cordes and Dr. Brown with your concerns. Posting them here where we (mostly parents) really do not know enough about such details won’t get you the responses that you want.</p>

<p>Let me begin with a disclaimer: I’m the UG advisor for the CS department at UA. So you should note my inherent bias and either ignore everything I say, or perhaps give it some credence. :slight_smile: I’d like to clear up some of the misunderstandings I see on this thread.</p>

<p>First, there is an MIS degree offered in the Business college at UA, and many of the 200-300 level CS courses are taken by MIS students, but they are not part of the CS degree program. Most of the courses you describe as being “practical” are courses for the non-CS-major students. Students from all kinds of majors take our Cormputer & Technology Applications minor, and take those practical courses.</p>

<p>If you want to know what courses are part of the UA CS majors requirements, you can go to [Department</a> of Computer Science < The University of Alabama](<a href=“http://courseleaf.ua.edu/engineering/computerscience/#computersciencecurriculumtext]Department”>http://courseleaf.ua.edu/engineering/computerscience/#computersciencecurriculumtext)
Or you can email me directly. My webpage with contact information is [Marcus</a> Brown, University of Alabama Computer Science Department](<a href=“http://marcus.brown.cs.ua.edu/]Marcus”>http://marcus.brown.cs.ua.edu/)</p>

<p>Please excuse my bias, since I teach in UA’s CS department. But most University department ratings are based on the research reputation of that department. And I think you’ll see UA CS’s reputation rising. However, most college freshman aren’t as interested in research as they are in getting a good education.</p>

<p>I think that a better question is how undergraduate students are treated:

  • Are they taught by TAs or are they taught by PhDs?<br>
  • How big are their classes?<br>
  • How much contact do they have with the PhD faculty members?<br>
  • How many UG students get to participate in research, even in their freshman year? (BTW, UA has a new program to encourage this to happen in all majors, not just CS).</p>

<p>Again, excuse my bias, but I hope this helps clear up the picture.</p>

<p>Thanks for poking your head in here Professor Brown! I’ve visited the link you provide which, when clicking on the courses tab, brings up the list of courses which include a generous dose of the MIS courses. It makes the course offerings look somewhat remedial to an outsider like me in comparison to offerings at other competitive programs. Nothing against the offerings and see value in them but as a suggestion you might consider separating out the MIS courses into their own area if that is a separate major.</p>

<p>As to course offerings, could you provide some information regarding courses CS391 and CS491? For instance, someone in this thread mentioned that UA taught a course in cloud computing. I see no listing of that course. Is there such a course? Any plans to teach a course in gaming? How about virtualization? Are there other current trends in computing that are being taught that are not enumerated in the CS course listing?</p>

<p>Also, why put off data structure until spring of sophomore year? I may be dating myself a tad but back in the day, data structures was taught as the second programming course for CS majors so we’d take it spring semester of freshmen year.</p>

<p>Thanks again for participating!</p>

<p>I am interested in knowing more about the software engineering track too. Many thanks to UA professors who are participating in this thread.</p>

<p>Thank you Dr. Brown for posting. </p>

<p>The Bama forum is a source for many prospective STEM students across the country, so it’s very helpful to be able to clarify any concerns that prospective students (and parents) have.</p>

<p>btw, if I could edit my previous post I would. Replace the word “remedial” with “less rigorous than otherwise” since that’s what I was trying to say. I’m an engineer, not a writer. sorry.</p>

<p>Here’s the curriculum in flowchart form - I find it easier to look at that way:</p>

<p><a href=“http://cs.ua.edu/files/2011/08/CS_Flowchart_2013.pdf[/url]”>http://cs.ua.edu/files/2011/08/CS_Flowchart_2013.pdf&lt;/a&gt;&lt;/p&gt;

<p>Thank you Dr. Brown for posting!</p>

<p>I have no idea what data structures are, but is it possible those things are covered at an introductory level in CS 160 and/or CS 260 (Foundations of Computer Science)?</p>