Questions to Ask University CS Departments?
egarrido16 asks: "I will be visiting numerous undergraduate colleges over the next several months and meeting with the chairpeople of the computer science departments. I need to come up with some questions to ask them so that I can evaluate their methods of teaching CS (i.e. 'Does this college believe programming is a fundamental or is it more of a tool?'). Reflecting upon your experience, what questions do you think would be necessary to ask to decide what the educators feel is important in a CS curriculum?"
Can I see a copy of your curriculum please?
Yours Sincerely, Michael.
"Are yuo an AWP camping ***?"
What percentage of your students are female?
First of all, let me know if you are coming here (Caltech) -- drop me an email.
What I have noticed here is that there is much emphasis on theory, which makes sense since Caltech tends to be a more research oriented school. However, they have all but eliminated practical programming classes from the curriculum, and not to mention the fact that there is no official CS major yet (supposedly they are working on it..)
When I was a freshman, there were intro courses in C, C++, and Java. Now, those courses have changed to more concept oriented using (this year) Scheme, Modula3, and Eiffel.
The department's philosophy seems to be that if we teach you the "fundamental concepts" of programming, you can program in any language.
Separate from the Computer Science Theory side of things, the CS department has a large graphics component, which you could say is a more practical representation of research than pure theory.
So, for questions, I think you should ask ones along those lines. Whether they are taking a practical stance or a more theoretical one...
The most important question you can ask is:
"Does your school have different curriculum tracks for software engineering and computer science"
Learning the basics of how to program will be the same for both tracks, but the 3rd and 4th year classes should be very different. Computer science, is a SCIENCE, while software system development is something else entirely. Schools that don't recognize the difference are so out of touch that the knowledge they teach you will not be applicable in the real world.
Software is no longer just a tool for mathmaticians to solve complex equations. Unfortunatly, I think many CS professors are still locked into the scientific mindset when it comes to computers.
Which is more important:
a)Education or
b)Collecting tution money?
© 2004 The SCO Group, Inc. All Rights Reserved.
Make sure you ask some questions about your future, is it possible to get a sysadmin job on one of the comp. sci. computers to get real world experience? How good is their placement after graduation? How quickly do their graduates advance in their positions after finding employment? What projects is the department involved in that will bring prestiege to the university? What projects can I as a student get involved in that I could put on my resume? What is your stance on extra-curricular projects?
I put that last one in because I started a MUD at my university, which was a great learning project programming wise. I never got very many people visiting my mud, but I did enlist a lot of developers to help put the project together. My school shut me down when the university administrator did a port scan of every IP under his control and found it. He considered it a security breach and dangerous, no matter how beneficial the experience was to me in learning C, C++, Linux, registering my own domain (this was before they had the nice web interface), and administering a Red Hat box.
How can you get real world computer experience while spending 4 fine years at their institution? And how will they provide you a better chance at getting a well paying position after school?
I haven't lost my mind!
It is backed up on disk...somewhere...
Do you put an emphasis on ethics, or do you just give the tool without a warning ?
Do you encourage students to share information ?
Is your department mostly funded but large corps. ?
What do you hope your students will learn when they gradute ?
--=.=-- www.cyber2000.qc.ca
These kinds of skills would help tremendously in the work force and in graduate school. You always here complaining about coders not knowing how to comment code. Not being able to stick to schedules. Not being able to write good documentation. Not being able to attain correct specifications from the customer. Etc, etc, etc.
Some of the things that make a computer unuseful:
Most important of all computer counts really mean very little in terms of your education. Theory doesn't always need you to be sat a keyboard to understand it.
One thing I ran up against at my college (Dartmouth College) was that you get no credit at all for summer internships. This might be something to take into consideration, as with CS, or really any field, you get lots of valuable experience from actually doing some of the stuff. If the school doesn't give you credit for summer internships it may be a sign that they don't value the same kinds of things you do. I know in my case I was extremely pissed to find out that an internship at Computer Associates, one of the world's largest software companies (which I didn't even get, btw) is worthless in their eyes.
Also, you may want to ask basic stuff like what language the various classes use. During orientation (in 1997) I asked the CS department if they taught any classes in Java. The answer was a forceful "NO", they "don't just pick every new language that comes along." 2 years later, all intro classes are apparently taught in Java, and I was left not knowing Java, only lame ANSI C. I got turned down for several internships for simply not knowing Java.
Questions like that should be common sense anyhow.
rooooar
So, start asking about related things. Are you going to want some work experience? If so, does the department have industry links, and with who? How about on campus work - do they have openings for students to do some tech support? My college has a couple of student computer reps, who do some websites, maintain a few machines, help out the paid staff with admining etc. The experience I've got with doing this was looked upon very favourably by the company that are employing me this summer. No matter which area of IT you want to go into, experience is a big help, so does this place help you get it?
Finally, ask about the facilities. How many computer rooms do they have, and what stuff do they have on them? What centralised 'Nix facilities do they offer? Ethernet to you room is very nice, so do they offer that, and if so what restrictions are placed on it (no webservers? low bandwidth limits?). What about their central web hosting, can you do much with that? If not, are there any other boxes you can use for any dynamic content you want to play with?
Oh, and while you're on campus, go look round the other facilities too. Places to hang out are important, as are sports facilities, on campus shops etc. Also, speak to the students as well as the tutors, find out all you can
This post will enter the public domain 70 years after my death, unless Disney buys another extension.
Ask whether the course is theory or application oriented. In my experience, there are two approaches to teaching computer science out there.
The first is what I call the "academic" method. You're going to learn lots of theory under this method, but are left up to your own means to figure out specific tools such as the Windows API.
The second I like to call the Trade School approach - it's probably what's being taught at your local community college, and it's pretty much the opposite. You'll be an expert at VB by the time you get out, but (from what I can see) will probably also be left without any concept of things like functional programming or automata theory or what have you.
A catalog can tell you without a doubt whether or not you're going to get the Trade School approach - there will be a separate class for every programming language the department ever uses, and most every class will look like it's trained towards giving you job skills. However, there are a lot of CS departments that look like they are academically oriented when they really aren't. You'll sign up for a course called Computer Graphics that claims in the catalog to go through the basics of how to really do graphics programming, but when you finish the course, you'll realize that everything you just learned over the past four months you could have just as easily picked up with a few days of free time and a copy of "Teach Yourself OpenGL Game Programming In [lessons | ]" and don't have a clue what the math behind perspective projection looks like. (My experience.)
Decide whether you're looking to be a grunt coder, a software engineer, an academic or researcher, or a Web Developer/NTadmin/networking guy/etc. If you're looking for the latter, don't even waste your time with college unless you really honestly want a bachelor's degree or a liberal arts education or what have you, because with most of those a trade school and some certifications will give you every bit as good of a preparation for your carreer as a BS, and you'll probably still have to get the certificates after you have your BS anyway. For a software engineer or academic, go for the academic approach. If you want to be a grunt coder, you can probably get away with any of the above, so pick which one looks more fun.
You'll never get a truthful answer if you ask the question that way.
Try, "Can you expound on the backgrounds of your professors?"
Find out about the people who will be teaching you. Do they like programming? Do they have industry experience? Are they algorithm freaks? Are they fresh out of grad school? Why do they teach if they can make a ton more outside of school?
Try to figure out what you want out of school and find the school whose professors are aligned with that thinking.
I have been pwned because my
I could not agree with this more. As a recent entrant in the SW Engineering field, I would also say that one of the most important things the curriculum should stress is all of the parts PRIOR to actual coding
I know this horse has been beat to death, but so many courses do not even focus on requirements analysis. For a Software Engineer, this is the foundation of all work you will do. You want to be sure they give you hands on experience in breaking requirements down to the atomic level. Don't forget, these requirements are a contract between you and your employer, so make sure they are sane.
Next, you want them to teach current methods of design -- the part where you integrate your many, hopefully simple by now, requirements and turn them into a working concept.
Be sure you get experience in creating all types of design artifacts: sequence diagrams, detailed design documents, and requirements to design mapping. This is the stuff you will be expected to do in your career. It's best to know as much as possible about it before you enter the workplace.
The other phases (implementation, testing) are important too, but I've found that a little understanding in the early phases will count for a lot later on.
Here's what my cirriculum looked like.
Basic Programmin Course: same as everyone in an engineering program took. Students can test out with AP.
Advanced programming course: OO, threading, etc.
Algorithms. Discrete Mathmatics. OS (two semesters). Comparitive programming languages. Networks. Software engineering. Computer Organization (Assembly). Digital Logic Design. Databases, Graphics and AI were electives. We also had a senior level seminar with discussions with local programming experts from IBM and Bell labs.
This was at West Point back in 1989-1993. The big push was on ADA, so we kind of missed out on the C coding, which I felt was aweakness. They focused more on Pascal and Ada. The copmaritive languages class was vital in overcoming the language bias.
Also, Our OS course focused on the Design of OS/2, which in Retrospect was a big waster of time, but back then was expected to be the next big thing.
To graduate, we wre required to take 40+ courses of 3 credit or more. A baseline CS degree was 44 courses, slighly more than half were in the CS cirriculum. Core Math/Sci?eng courses were courses were: 2 Semesters of Physics, 2 Calculus, 1 Diff Equations, 1 Prob and Stats, 2 Chemistry.
Hope this helps.
Open Source Identity Management: FreeIPA.org
For whatever else I learned in college, I learned the most from the capstone courses I took my senior year. I was an ECE at CMU, but took a capstone in ECE and the equivalent in CS. Both were big project courses (Real Time Computer Controlled System Design in ECE and Operating Systems in CS) and both nearly killed me. But I can honestly say that I learned so much by being forced to work on a semester length project.
If you go somewhere and ask about a capstone course, and they look at you funny, ask if there's a course that you take that your whole academic career has been preparing you for, or some sort of big final project where you have to creatively use your skills as a scientist and as an engineer. That's what people do out in industry, anyway, so it should be part of the curriculum.
I'd also ask about what faculty research that the department head is particularly proud of. If its something that interests you, this place would probably be a good fit. If not, you might want to look elsewhere.
Outside of a dog, a book is a man's best friend. Inside a dog, its too dark to read.
This is a bit more general than what you asked, it's essentially a list of the "Do I want to go here?" interview procedure I used.
- What kind of computing facilities are available. Specifically what does the CS department have available exclusively to it (for example at my school (Hofstra University - http://cs.hofstra.edu) there are two dedicated CS labs, one with Windows PCs and one with Sun workstations.
- The background of the professors. It always helps to find a department with professors interested in the same things you are. Also don't forget to check out the ADJUNCT FACULTY (some are good, some suck).
- Do professors teach classes? or are you stuck with TAs until you get to upper level courses?
- How do people who graduated from the CS program do in the job market?
- What are the other students like? Go during the semester (a little late now, but try the summer session students). TALK to the students, find out how they feel about the CS program, professors, etc.
- What language is used in programming courses? (If there arent any programming courses, RUN AWAY!) My idea of "acceptable" answers are C, C++ and Java. VB, Ada, Pascal, Fortran, FORTH, COBOL and BASIC should send you running. Lisp should make you cower in fear (although you'll probably see some of these languages in a programming languages course later on...)
- Theoretical or Practical view of CS? Theory loads you up with algorithms, practical teaches you how to implement them in one or two languages. My preference is the theoretical methodology. Anyone can learn a programming language, but algorithms are fundamental.
- Anything else you want to know.
/~mikeg
How come I never think of these things when I post my FIRST comment? D'OH: - Who teaches the Discrete Math (Discrete Structures) courses? At my school it is the CS department, but some schools pass this off to Math professors who have no CS background and don't teach the course geared toward CS students. - Do the professors speak English (or whatever language you do?) - DONT flame me, it's a real problem. Many of our professors have accents that take a few classes (or longer) to get used to. Try sitting in on a class or two if you can, and make sure the professor is CLEAR, LOUD and WILLING TO EXPLAIN things to students. (OK, I'm done now...)
/~mikeg
I'm not in a CS major, but this is one question that can be applied to any college search for any major.
Is there a Graduate program with-in the same department?
Now you're wondering how this applies to an undergraduate education. I have been told by many people and found evidence that a lot of programs with graduate programs will give the best tools, staff, and most importantly curriculum to the grad students while the undergrad students are left with less experience and education. How does the school focus on the educational development of undergrad students if they have a grad program as well? Also, if a program doesn't have a grad program, that's not a bad thing at all!
AnamanFan - Trying to find the Truth, one post at a time.
on-line for everything you can find out about the school. These days you can find out a lot. Look at web pages for classes. Check out the syllabi, slides if they're on line, project descriptions, etc. Try to figure out how much of the class is really taught by a professor, and how much by a TA -- often the TAs will have their own class pages, or the syllabus might show the lecture/lab schedule.
Look for personal web pages by students in the department. See what they say about the department. If you're clever about the search terms you use, you might turn up a few blogs by students in the department, and get some glimpses in to their daily grind if that's what they write about.
Look for pages about research groups you'd like to get involved in. Look at professor's personal web pages, and their publication records. With a little practice you can get a pretty good feel for how much time professors are spending on publications, getting grant money, etc., and how much teaching.
Find people, either in real life or on the web, who have the kind of job you want to have. (That assumes you have at least a rough idea of the kind of job you want to have of course.) Find out how they got there. Find a company you'd like to work for, and if you have any connections there at all, see if you can arrange a brief chat with an engineer or engineering manager. Ask what they look for in a new hire, what schools they particularly respect, etc. If you can't do that, at least look at the job listing sites, and search for on-line resumes, and get a feel for the kinds of backgrounds you'll need for the kinds of jobs you think you'll want.
Do all of this before you go visit the schools. When you do go visit, try to go at least a couple of weeks before exam week. That way people will be more likely to have time to talk to you. Do the usual tour thing, etc., but keep in mind that for all the usual kinds of "good questions" there are pre-packaged "good answers", so take those answers with a grain of salt. Instead, if you're not shy about walking up to people, try to talk informally with some students in the department.
Walk around the building(s) in mid-morning and early afternoon. Peek into classrooms. Do they say something like "most classes have 20 students or less"? Well, don't be surprised if you see a bunch of huge classes, and the way they came up with that statistic was to count every little seminar and lab section and even graduate classes, i.e., *your* average class size may be significantly higher. Try to sit in on a lower-level class, or if the doors are open, just stand outside and eavesdrop on several.
Walk around the department in the early evening, after dinner, and see how full the labs are. (That of course will depend on where they are in the semester calendar. Visiting close to exam week, but not during exam week, will tell you the most.) Are there a lot of frazzled people competing for a smaller number of machines? Are some labs empty and other full -- the machine count alone doesn't tell the whole story, since some labs may have macs or older systems or may be locked up and reserved for certain groups.
Bottom line, departments are partly in the business of selling themselves, and asking questions about their "values" and "goals" and so on is going to get you a lot of marketing hype. Universities that are essentially trade schools won't generally come right out and say so. They all put the students education as their highest priority, blah blah blah.
On the other hand, if you ask around enough, you'll get a sense of who is "selling" the department, and who is really interesting in helping you figure out if it's a good match for your interests. And that's especially true if you do a lot of detective work before you go -- a professor is going to be much more inclined to chat with you if you went to him/her because their research is in an area that interests you, and they know you've gone to the trouble to read their web pages, than if you just wander into the nearest open door.
Good luck!
From my experience looking at colleges, you should start close to home and get a feel for what visting colleges is like. You'll be able to practice and learn what you should ask yourself, without feeling pressured. You'll also have a much better idea of what the schools close to you are actualy like. Once you've gained some experience, you won't waste your time spending thousands to visit schools that you'd never go to.
Try to talk with professors and students the most. Heads of departments may sound impressive, but they probably havn't taught a class in a while.
Talk to students and get a feel for what they think of the department. Try and find someone who isn't getting paid by the school to say nice things. (Do you think tour guides volunteer?) Students will usualy tell you what they like and dislike.
Professors are more interesting. My top choice (which I didn't get into) was mainly my top choice because durring a mid summer satuday afternoon visit, a professor pulled me into his office when he saw us wandering around and just had a chat with us. He was interested in students and wanted to be involved with the school. The 45 minutes he spent talking to us on his satuday afternoon showed the dedication of the faculty far more than any brochure. (oh what they hell, it's a compliment so I'll name names - that was Harvey Mudd, which still would be my top choice today)
Decide what's important to you... Do you care if your class has 200 people in it? Do you mind fighting to get the classes you want? Do you want a really comptitive environment or a laid back one? Should you know a programming language before you get there? Do your APs(if you've taken APCS A/AB) count for anything?
It's 4 years of your life. Only you know what you want and what's right for you. If you're gonna be happy graduating from a school who's sweatshirt you're proud of, then chose your school that way. If you want to be in a smaller environment, find a school that's right for you and don't feel ashamed that it's not the most presigious university out there.
What questions you want answered really depend on what you are looking for in your studies and as such, nobody can tell you what to ask.
If you are not too sure what you are looking for (not always a bad thing) then I suggest you check the college's facilities. Some general examples include:
- Access to machines.
- Access to instructors.
- Variety of subjects (very important if you are unsure of what you want).
- General college facilities (Clubs, gym, entertainment, etc).
I am a Karma Library.
(if you already have a decent amount of experience)
FOR CHRISSAKES CAN I SKIP THE INTRO COURSES?
be ready to provide documentation of prior experience. If you make the appeal to the dean and it is not some asshole college just after your money, this might work.
It's 10 PM. Do you know if you're un-American?
If they answer with a list, run away.
Don't go to a school that teaches languages, go to a school that teaches concepts. You can learn the languages from a book.
I am very happy with the education I received at Rose-Hulman, and recommend that you check it out.
Joe
Joe Batt Solid Design
Find out what 'school' the CS program is under. For example at the school I went to oh so long ago the CS program was in the School of Mathematics. At others schools it was in the School of Engineering. Still others may have a School of CS.
This can often give you the general 'tone' of the CS program. For example a math prgram tends to be more theory, while an engineering program is more practical. Of course like most factors, other then actually attending the classes, this will not tell the whole story or even be a correct assumption. Some engineering programs are very theory oriented.
I would also ask about how much publication is done by and/or required of professors. This can have a significant effect on how professors really spend their time. A prof that publishes two new books every year, really isn't spending time teaching.
Also find out how much use is made of TA's(teaching assistants). At some schools these are the only people you as an undergrad ever get to talk to. At others they are just there to help out for things like labs. Still others have none.
Finally ask about class size. THis mostly depends on the size of the school, but not always. Some places do the 200 student lecture thing and all questions go through TA's. Other schools will have classes no larger then 20-30. Makes a big difference in teaching methods. There is no real way to have a debate in a 200 person class.
Look and see the experience spread of the profs, i.e. do they have five profs that all recieved their PhD's in the 70's or are they constantly bringing in new blood every four or five years? Also look and see where their degrees are from. If more than two or three of the faculty in the department have their PhD/MS from the school you are applying to, this is bad news. It shows that they are not going to be very diverse in their thinking.
You should also ask about adjunct factulty. These are profs that have full-time jobs but teach one or two classes a semester (they typically do not have a PhD). They had the best in real world experience. They typically teach the mid-level stuff. I think they are the best people to take your programming languages from (they are also good at getting internships and job leads).
Finally if you want real brownie points with the department chair, ask about his/her doctoral thesis. I have yet to meet a PhD who does not love talking about that subject.
Good luck!
What is the purpose of talking to these educators? Are you a prospective student or are you interested in finding the current state of CS education so you can draw up some best practices docs?
As a potential student, I'd look and see what kinda output the students are producing, particularly in 300 tests are generally the closest to 'reality'
my sig's at the bottom of the page.
This guy's not after a uni with good beer. I'm guessing he's assessing them from the role of an educator. As such here's my opinions coming from someone who actually teaches this stuff, AND takes teaching methodolgies seriously:
1. How many different languages do you expose the undergraduates to? Why? Why those languages?
I want them to have a good understanding of why it's important for their graduates to be language neutral when they leave. I want them to have a good understanding of the advantages of teaching functional/procedural languages.
2. If they're teaching a loosely OO language like C++ I want to know, "Are you teaching objects first?". One of the current trends in England is to teach objects first in C++, despite the fact that it causes information overload in the early stages of teaching.
3. Do they integrate modules? One problem with many British universities is they've adopted a modular approach to courses to enable students to pick and choose what they would like to learn. The problem with this approach is that it does not make it possible to tie in modules, since the pre-requisites become too complicated. Their opinions on this problem would be of great interest.
4. At our university, some high level academics are of the opinion that programming is a old-school skill that will be replaced by IDEs + CASE tools. Stupid concept, but I'd like to try and catch people that think it. Their opinions on the role of tools such as Rational Rose and UML would be informative.
5. Whether or not they feel that psychology modules are important. Some try to wrap it up as Human Computer Interaction, but farming it out to the psych dept and getting thorough coverage of ethics in computing, and the psychology of colour etc makes for a very interesting and diverse syllabus.
6. Importance of teaching hardware + real time systems.
7. Teaching of proprietary APIs. Again to take my own dept as an example, we teach SQL Server specific SQL. Now what's the crack with that? Yet at the other end of the scale, we teach OpenGL/g2/pthreads/MPI.
8. Use of different operating systems. We're now a bit lightweight on that front since retiring our ageing IRIX machines, but we expose students to at least Linux + Windows 2000. SunOS is possible, IRIX slightly less so.
9. Teaching of parallel programming techniques, both theoretical (CCS + other formal logic) and practical MPI/threads. It's a great programming challenge that teaches skills that are relevant in traditional programming too.
Anyhows, just my thoughts, hope they help,
jh
jh
How big is your [Internet connection] pipe?
Ask them: what type of structure they have in teaching CS?
Do they teach proper programming techniques(ie. UML, functional programming, proper recursion, etc)?
Do they centralize on the mathematics and theory of computing?
How many languages do you teach? Which languages?
What type of assignments do they give (ie. are they practical, analytical, theoretical?)
How difficult are the assignments? How many hours per week should I expect in front of a computer?
What types of computers do they have available for students on campus? How often are these computers available? How many computers do they have?
What is the average mark for CS? (make sure you know if it is mean, mode, or median)
How many non-CS courses are required for a CS degree? How many non-math courses? Which courses?
How long does it take to complete a degree?
What is your hiring rate for graduates?
Is the degree a BMath degree, BSci degree, BCS degree or something else?
Are there extra fees per term for CS majors? (UWaterloo majors pay 20%+ more then everyone else per term)
That should give you a good starting point at least.
~ kjrose
If the school's intro programming course teaches QBasic... run away! Far away!
(This is why I refuse to take any CS courses at my school... fear and loathing)
-Mike_L
Reinforcing the notion Java isn't everything:
http://www.theregister.co.uk/content/4/25380.html
C++, SQL, Unix and C are key skills - still
By John Leyden
Posted: 21/05/2002 at 18:35 GMT
Fewer IT jobs were advertised last quarter than a year ago but programmers with key software skills are still very much in demand.
That's the conclusion of a study of the UK IT recruitment market by CWJobs, The Register's recruitment partner.
CWJobs compiled a very big list of all the software skills asked for in job ads, published online and in print IT rags, and the broadsheet nationals, in Q1.
Experience in C++ (mentioned in almost 24,844 ads in Q1 2002), SQL (23,134), Unix (21,079) and C (20,532) were highly prized.
Requirement for C skills is holding up but mentions of other once sought-after skills was down 50 per cent from Q1 2001. This reflects an overall slowdown in the IT sector, CWJobs reckons.
Oracle, Win NT, Visual Basic and Java were each mentioned in more than 10,000 ads. However, demand for Java skills has slipped markedly from 40,681 mentions in Q1 2001 to 14,566, a decline of 64 per cent.
The number of jobs advertised last quarter is lower than that advertised in Q4 2001, but this may be affected by seasonal factors in the job market.
Online ads account for the vast majority of ads in Q1, reflecting a long-term trend in the UK IT jobs market. Which is nice. For CWJobs. For Computer Weekly, from whence it spawned, it's crap.
Legalize the constitution. Think for yourself question authority.
I'd say some of the more important questions aren't about the CS Dept. at all, but of the Univeristy in general.
My school got a taste of fame with all this computer mumbo-jumbo and quickly shifted funding and focus to it, leaving art, music, and drama suffering terribly.
If you want to go to a Tech School, go to a Tech School. A University is supposed to be about a lot more than just your degree.
If I could get Lightwave for Linux, I'd give my Windows PC to the lowest bidder.
We had one professor who gave out skeleton code that had, WITHOUT FAIL, at least 5 major errors per project. We had a couple of these things that wouldn't even COMPILE, much less run. I had two other classes where the professor prided himself on the fact that, because the texts were so poorly written, it was impossible to understand anything unless you went in for extra help for 2-3 hours a week. And I'm not just talking about the people who somehow get into upper level classes despite the fact that they're complete morons. EVERYONE in those classes was clueless, even the ones who came out of the womb spouting shortest path algorithms, and the professor thought it was a tremendous laugh. And my favorite part was the Networking class where we spent an inordinate amount of time learning about the ARPAnet, but didn't actually learn how to set up or maintain a network.
Now, this school obviously wasn't a CS powerhouse. However, once I started actually taking courses, I found that the prevailing opinion of the CS majors in my classes was that the department was just plain awful. So, from all of this, a simple lesson: if you can get in touch with some of the current students, do it. Ask them about the professors, the classes, the department in general, whether or not you'll learn anything that will be applicable to real world situations, etc. The admissions department will lie, the professors are certainly not going to tell you, "Oh, yes, I teach entirely from overhead transparencies, which is boring, and discourages nasty things like class discussion as a bonus," but by and large, the students will tell it like it is. Just like Dr. Phil, only less grating and self-aggrandizing.
I completely agree with people that ridiculed you.
Contrary to the popular belief, there indeed is no God.
Let me get my word in before this disappears from the front page into the archives.
:)]). It's also nice to get some good liberal arts courses too.
If your looking to learn CS, then ask all the questions posed here. If you already know anything about CS (above programming with data structures), then no university is likely going to stimulate you academically.
What you then want to look for are the connections that schools have with various Internship programs and/or research assistantships. There are some amazing undergrad internships (IBM's Extreme Blue, Microsoft's Internship, FBI Honors Intern, NSA Intern, etc.). This is what will take you to the next level.
BTW: Lots of people will say partying is important, and well, that's only partially true. I would recommend staying away from overly technical places (unless it's something like MIT) so that you can meet a wider variety of people (especially women since CS women are, well, let's not go there [with the exception of any CS woman who may possibly reading this of course
int func(int a);
func((b += 3, b));
Egads. SourceSafe? I had the unfortunate idea of trying it and it's crap. CVS is *much* better. SourceSafe doesn't support any kind of remote access (besides using a VPN), several people working on the same file, and generally a lot of things CVS provides