Positive: Computer Science at ASU is difficult. IF you manage to graduate with a CS degree... you really know how to program. That is, IF you graduate. Of the 30+ people in my 2323 class (the first CS class I took at ASU), less than 10 remained. Things look similar in Data Structures (3341).
Negative: I'm anti-athletic, incidently. Horrible waste by the University when they built Junnell Center. The school should spend more money on academics and better professors. Especially better professors. For instance, my current CS professor in Database (4341) is teaching us MS Access. To be fair, there have been technical problems plaguing the class the whole semester (so far). But... all of those technical problems would be resolved if the (admittedly, new) professor would just cart us all back the the Unix lab, and teach us Oracle and SQL like Dr. McCammant did. (This is, in fact, the most disappointing class I've had in cpsc at ASU.)
Advice and Professor Review:
Dr. McCammant: This is the head of the Department, and he likes people to respect him. Which, by the way, is a perfectly valid demand (for the head of the department!). Now I've never had Dr. McCammant for any class, but I have friends who have taken him for various classes. By proxy, I will relate their frustration.
They claim that he seems to haphazardly give grades, force people to drop he doesn't like, and not tell you how you're doing in the class.
But, on the counterpoint, he does know (Better than most) what he's doing. Sometime (I believe Fall 2001), he taught Database Management, and did a good job. It was a difficult class, but the students managed to find their way around Oracle and SQL databases (with ease, no less.) I'd much rather have him for DBMG than the next professor on the list.
Teaches: Intro Courses & Research
Dr. Crouch: This is the new guy. Nobody knows an awful lot about him, except that he worked for Verizon doing databases, and was in the (airforce?). Right now, he's teaching Database Management, and doing a rather poor job of it. Its his first upper level class to teach, and he's teaching us out of Microsoft Access, and eventually SQL. Later on, he hopes to get to Microsoft SQL Server. Yay. I'd rather be learning Oracle, SQL, and C++ integration with SQL... But who says I can't learn on my own? Presently, my largest complaint with this particular professor is that we're using the windows labs. And, of course, that means we're plagued with "windows problems". Alas, I can't submit my labs because I don't have access to the drive to put them on. And it seems that we can't figure out how to get me permission. Grr. :-)
Teaches: Intro Courses and Database Management (Maybe file structures later on. rumors abound.)
Dr. Lehmann: The only female professor in CS at ASU. She's a real nice lady. Her Assembly class is often hailed as a true waste of time. I think most of the people think that because they have issues with assembly, not her teaching method. Now, I will say this about her: She never evenly distributes the labs over the semester. She'll start off with a lab due in 2 weeks, and keep on until almost the end of the semester. Then she hits you with 4 labs due in the same week. Real killer while you're trying to study for various other classes (and doing labs for every other professor!).
Teaches Intro Classes, Assembly, Compilers
Dr. Motl: This is the real brain behind the department. He's tricky. That's the single best word to describe the man. That, and meticulous. This is his (lower level) grading scheme: He assigns a lab, and its due in 2-5 days. Its always a mind-bending algorithm dealing with math, dates, or other "useless" phenomenon. The lab is due by midnight of the night posted. In the beginning of your trek into cpsc, you'll spend 3 hours doing the lab, and think "Wow, long lab". In the end, you'll be cramming to get the lab finished in time for the deadline, and think ... "Only 750 lines this time, short lab." Then, you get the lab back, because it doesn't work on one of his infinite data sets. Did I mention that your labs must be PERFECT? That is, he doesn't care alot about your style, but, it must handle every possible error case. And, if he thinks you got away with something too easily (That is, he didn't like the way you did something), he'll deliberately create a data set just to mess up your lab. Anyway, the first submit, you can get a 100 (not a 95, or a 90, but a 100 only. It must be perfect.), 2nd an 85, and 3rd a 70. You only get 3 chances. After that, its a 0.
Anyway, Dr. Motl is easily the most difficult professor to take. His tests... are evil. They come straight from the pit of hell, and tear your hopes and dreams apart.
Word of advice on the tests: if any little bitty tiny itsy bity eensy weeny part of the statement is false, the whole freaking thing is false. :-)
Teaches: Intro classes (I pity da fool who takes these from him), Intro C 2 (2323), Data Structures (3341), Internet Tech (4312), Client Server (4314), Assembly 2 (3302) (you've almost made it IF you manage to pass this one), Op Systems (4301)... thats all I can think of.
What have we learned, ladies and gents? Each professor has their own unique style of teaching, and each has its strong and weak points. So, now comes my advice.
There's a common trend to take Assembly 1 (Organization and Programming Concepts, 2311) when you take C 2 (Intro to Cpsc 2, 2323). Don't. Especially if 2323 is Motl taught this time around.
Another trend is to take Assembly (2311) with Data Structures (3341). You can do this only if you realize how much time you're going to spend doing Data Structs. Remember, there's 16 labs in Assembly, and almost 30 in Data Structs. And 4 tests in Asm, and 4 in Data Structs. At some point in the semester, this will bite you in the butt, and it'll probably knock both grades down a letter.
Another trend that I've noticed is to take Assembly 2 and Op Systems in the same semester. Only if you're insane. Op Systems is the designated "written" course in CS. Assembly 2 (umm, 3302?) is the single most difficult course at ASU. In fact, when talking to my friends at other Universities... it's the single most difficult course THEY'VE ever heard of. You write your own assembler. 15% off per day late, 10% off if any one of the insane wacked data sets produces an unexpected error. crap. A friend of mine got a 0 on this lab, and worked over 12 hours a day on it for almost a month... He passed with a D. (Yay!). The term "D for Diploma" is often used for Asm 2.
Oh, and you HAVE to goto summer courses to graduate from ASU with a CS degree. They simply don't offer enough classes in the long semesters.
I took a number of classes in CS my first year. (In fact, as of this writing, I have 27 hours of CS in a year and a semester). Alot of the things I've written about, I actually did. Find me in the Unix lab... (And if I'm not there, read the back board to find out when I'll arrive!). Or you can ask around. Most people know me. (In the Unix lab.) If you need help, Josh is fairly competent (He's the CS tutor, as of now), the professors are always willing to help, and most people that you see in the labs have already taken whatever it is that you have (Unless you've taken the upper level stuff - in which case you know better!). Don't be afraid to ask for help, but don't bug people too much.
AND DON'T CHEAT. They will catch you. All the professors keep All the labs from Every semester. They take it very seriously when you cheat. Do not cheat. :-)
Overview: Goto this University if you're confident you want to be a CS major. I mean confident. You'll drop out and waste valuable time if you're not certain. Drop out rates are insane, and its a very serious and gruelling trek.
If you're interested in computer theory, I recommend A&M or UT. This is a school of "getting-your-programs-finished", not "making-programs-that-use-theory".
I like both approaches. I especially like the approach that uses theory to get programs done. :-)