On the Differences Between MIS/CIS/CS Degrees?
Dark Ninja asks:
"I find that after having a professional IT job (C++ programmer/DBA)
for four+ years, not having a degree is a hindrance to finding a job. So with this in mind, I'm planning on attending
college soon, but I want to know the difference between an Management
Information System, Computer Information System, and Computer Science
degrees? Better yet, which ones do you suggest (ie. to allow
advancement, which allows for what jobs, etc)?"
From where I went to college (Oklahoma State University), the difference between MIS and CS was that CS was more geared for programming, and MIS was more geared for business with computers. I started out towards a CS degree, but after facing 'impossible' teachers, I switched to the easier MIS stuff to graduate.
However, it had absolutely no impact (that I am aware of) on my marketability after college. They were looking for a degree. But your mileage may vary.
Actually, I'm thankful that I got the business courses that I would have missed under CS.
MIS is business courses with some basic programming added (mostly high level stuff, + web pages and the like.) It's not a CS degree. Most CS people laugh at these people. Sorry but it's true.
CIS is computer science with general business courses added. The core CS courses will be there but not much specialization in CS.
Computer Science itself comprises the core courses plus many posible specializations (IS above being one of them). Depending on your preferences you can specialize in different courses; adding some basic engineering courses, or higher level CS courses for example.
Personally I graduated with a CS degree, speicializing in Software Systems which basically meant all my "specialization" credits were used up with higher level CS courses and math courses.
it really doesn't matter, honestly, what you major in college...
:-)
the fact is, once you get that paper... you could say you majored in History, Art, Literature, etc... but if you have certs and so forth... expect to get hired...
i have a few friends who work for big companies (IBM, Lotus, Computer Associates) and they all never majored in CS/CIS/MIS... but they still landed the job, just because they went to college and they had certs...
another option you might want to consider, is consulting... i consult... and i don't have a college degree... and get this... all the clients who i have worked/am working for... have never asked me for my college degree nor resume (even though i do have a resume)...
the other good thing about consulting is, that once you build up your client base... you'll be working off referrals too... so that's another good thing... only bad thing about consulting is that you'll get no benefits... and no insurance
but if you're married and your wife has medical insurance for the family.. and so forth.. that shouldn't be a problem
"The ones who dont do anything are always the ones who try to pull you down" -- Henry Rollins
If you're a professional C++ programmer/DBA, then you'd probably be bored to tears by the "computer" classes that a MIS or CIS degree involves. That's not strictly true - there may be some good design/architecture courses which you may very well enjoy. Take a very close look at the course catalogs and graduation requirements for the schools you are looking at.
Depending on the school, the same may be true for the courses you need for a CS degree.
Don't overlook the possibility of getting a degree in something other than (or in addition to) CS/MIS/CIS. In four years it is very likely that a degree in economics or actuarial science or applied physics or EE will be the key to doing interesting and/or high-paying stuff. Or, for that matter, Eastern European literature or sociology or basketball coaching may be your true love! or
if a company i'm interviewing with doesn't want to hire me because i have no colege degree, even though i have 5 years of experience, then i don't want to work for that company anyway.
Uhh, that would be college and the grammar could use some work as well. Ummm.....thanks for applying but don't call us. We'll call you.
Visit Jonesblog and say hello.
CS is a math-heavy, theory-heavy degree that teaches you how to program *and* gives you a background in the mathematical foundations in computing. Whilst you might not use all of directly as a programmer, it's a) a lot of fun for some people, and b) gives you a much greater understanding of what computers can and can't do.
Software Engineering contained a pretty high overlap with CS, but they skipped some of the theoretical stuff to do more on building large software projects in teams using engineering methodologies. I remain skeptical of some of the value of this stuff, but, however, the *practical* experience, whilst rather stressful (trying to play a real software engineer when you've still got other subjects to complete imposes nasty workloads), is useful. It may be less useful for you, as you sound like you've already got a substantial amount of practical experience.
Information Systems was very light on programming. Talking to instructors in the department, it seems like most of the people who come out of it with a degree in IS can barely write a shell script. However, what they do learn is a lot of stuff about business processes and the like. In fact, from both the syllabus and the students, I got the impression that much of the course was basically a commerce degree for people interested (but not necessarily particularly gifted in) IT.
Look, I'm not knocking knowing business processes and the like, but if you like to code, it's a lot easier to learn about business later on (perhaps in an MBA) than it is to learn heavy-duty maths later in life. But then again, you might take the view that you can already code and learning about the business side of IT might be more useful to you.
Any sufficiently advanced technology is indistinguishable from a rigged demo
--Andy Finkel (J. Klass?)
Very few employeers will go into great scrutiny over what degree you got. They might put some spotlight onto which college you got it from, if it is exceptionally good or exceptionally bad. Because you're in college, you've got to be careful not to focus too much on the degree type. In the real world, for the most part (rogue managers aside), it doesn't matter. It just matters that you got a "computer degree".
Of course, I work with people at a "large company" that have photography degrees, technical college degrees, no degrees, and so forth. Basically, here's what the degree does for you:
In some cases, it gets you hired. There will be some employeers that won't consider candidates without degrees.
In almost all circumstances, it affects your ability to get a promotion. You can't reach _X_ level unless you have a degree. It is a golden rule. The college degree increases your cap. And it doesn't matter which degree you have, from what I have seen.
Since it really doesn't matter much in real life, I would advocate two different goals:
1] Go for the degree that will get you out of college easily and quickly.
2] Go for the degree that will stretch you and help you to learn the most things that will help you along your career as your currently understand it.
Of course, as mentioned earlier, for me, the business courses (which weren't really my main interest) has helped an incredible amount to understand the business world. And that is, after all, where I work!
I'm a Professsor of CS. So I feel qualified to answer.
CIS: A Business degree with computers in it. You will also learn marketing and accounting. You need to like business for this degree. Many people think this is the easiest of the degrees.
Computer Engineering: This is a degree for hardware people. This is a degree for serious geeks who like math and logic, but don't want to become programmers.
CS: This is a degree for people who want to program. We teach algorithms and writing code. We write programs.
Just so we're clear, CS is the coolest of the choices!
-Kitplane01
MIS/CIS is more like a trade school degree
That's a load of crap--MIS is a very advanced field. The emphasis is placed on business, the same business courses that are taken by people in human resources, accounting, finance, management, marketing, production and operations management, you name it. The point of the course is to take it in an IT direction, and many of the biggest money makers are the ones who get jobs at places like SAP and PeopleSoft, people who end up as specialists in their management software and can consult regarding the business impact of the software. These people are the ones who get hired by the company through their employer to come tell the company what to do with their business.
The reason it isn't a two year degree is because you actually take courses, just like any other actual degree program. It's a full business program, not a CS program, which is why it's a part of the college of business at universities, not the college of computer science.
Think before you speak, know something about what's involved in a degree program and what you do with that degree post-graduation before you talk.
Also, a college degree can open up alot more opportunities than you will have just with your 5 years experience. It's direct proof that you completed a certain course of study with at least a C in most cases, and shows that you are capable of devoting yourself to something worthwhile. IMHO it means alot more than being able to hold a job for 5 years, whose title may or may not have much bearing on what you did.
If an employer sees 'Bachelor's Degree in Computer Science from XYZ University' they know certain things that you should know, and they shouldn't have to worry about you not knowing them.
The best possible way to go is a college degree coupled with some sort of experience or research involvement.
What?
When people ask me what the differences are, I tell them it kind of like a sliding scale. At one end, it is business only. At the other end, it is computer only.
MIS - This is more towards the business end then the computer end. Basically, a business degree that taught visual basic also.
CIS - Kind of in the middle. More computers then business, but doesn't have the harder math/science requirements if at all. At my university, this is what most people who couldn't hack the math requirements switched to.
CS - More on the computer end then the business end. Programming, theory, and math. I think that this is the most desireable degree of the three, but it all depends on what you want to do I guess.
As everyone says here, MIS is more about buisness. The college I went to had a few courses that crossed over between CS and MIS. So about half way into the semester we get a fairly trivial programming assignment. The night before it was due I happened to be in the computer cluster, and nearby there were about 7 MIS people huddled around a computer trying to figure out how to open a file in C++ (third year students mind you!). From what I've seen, MIS people (in college anyway) can't code their way out of a paper bag. Generally I think you could do a lot more with a CS degree, and a few shiny certifacations.
Where I attended college, this is how it played out:
1) MIS was a business degree with basic programming. The programming
2) CIS was a little more technical, but clearly the emphasis was on higher level programming (VB, macro stuff, COBOL) than on the nuts and bolts of computers.
3) CS had a heavy emphasis on software engineering, but there was significant coursework on how mechanized computation is implemented, ie processor design was taught as well as programming languages.
4) Computer Engineering was sort of a cross between Electrical Engineering and CS.
At my school, there was significant overlap between CompE and CS, to the point that we took many of the same core classes with regards to hardware. Near the end of the programs, final projects differed in implementation (CompE's had to build a simple computer via wire wrap and programmable arrays, CS majors had to write in software a SPARC similuator that would run compiled SPARC code).
For the record, I was graduated with a CS degree, went somewhere else for grad school, and found the the definition of CS is different depending on the department. My undergraduate work is much closer to what my grad advisors considered CompE work, where they spent much more time with the abstraction of computation away from the actual mechanisms -- predicate calculus rather than processor design. I initially hated it.
I found (after some time spent actually adminning (sp?) and programming for a living) that both phases of education have served me extremely well. The ability to abstract pieces of a large problem into discrete parts has been the best skill in my toolbox with regards to programming, while actually understanding the implmentation of processors and compilers has given me a leg up in terms of debugging both my code and vendor supplied software.
My advice to anyone starting out is to learn how to abstract and then get as technical as you can. The basics of computers are not going to change drastically for a good deal of time (no one is seriously considering a move away from Von Nuemann machines in their business plan), so if you know how computers work, the details of a programming language or an OS are just variations on a theme you already know. No matter what happens, it still just comes down to instructions on the code stack.
when CS people can't figure out amortization schedules and have a hard time mixing financal theory with cost-based accounting systems. sorry, but it's true.
don't buy into the CS / MIS us vs them crap, but rather look for a more generalized answer:
lots of MIS programs will vary. mine allowed us 8 hours (2 semesters of 4 hour classes) of C++ and VC++ MFC programming. I added in some OO programming which taught language agnostic principles. plus there was another 8 hours worth of DB stuff - SPs, tables, schemas, etc. on top of all that, we had several "capstone" classes which matched full semester group projects with business area focus. we had several companies bring in real world business issues which we then solved using our class knowledge (and the companies got a free consulting solution if they decided to use our work!)
i took Cal I and B-Cal - no more, no less. the CIS people i know from my university took Cal I-III and often some other elective mathematical classes.
the real questions is what will you envision yourself working on in 5 years? if you plan on doing business level programming, then the MIS degree is going to give you the requiste background in accounting, finance, and economics to survive. i found employeers were chomping at the bit b/c i had these skills - of course, i interviewed with (and work for) Fortune 300 companies.
we have some CS people at my company - these guys are wicked smart and several of them have military or NASA backgrounds. they do the low level, to the metal programming that our apps need. these guys are not building our accounting modules. that's not their strength. they might be able to - it's just not what they are working on.
with either degree you are not just purchasing a job - you are showing your employeer an ability to learn. my father graduated one of the top engineering schools in 1969. he did chemical engineering for about 3 years and then did all business management stuff for the next 27. his company hired him b/c his degree showed he could think and learn. both a CS and MIS degree from a well respected university will get you this.
good luck and have fun! i miss my college profs about once a month!
/* Half alive and half dead too, work is for suckers and the sucker is you. - "Half-life" by Local H*/
There's a 509 comment Slashdot discussion from almost a year ago here.
I strongly think that Steve Wozniak *is* a good communicator. He's great to listen to...his enthusiasm is infectious, and he really knows his stuff.
Any kid who has him as a teacher will probably go on to be a tech superstar. Seriously.
I agree with you on Gates, though...listening to him speak is like listening to Kermit The Frog without the clever and funny lines. And his second in command at MS is worst of all...his idea of communicating is "WOOOOO! GIVE IT UP FOR ME! WOOOOOOO!" and "Developers! Developers! Developers! Developers!"
--.\\-H--
Knowledge is power. Knowledge shared is power multiplied.
It takes three years to get a degree (minimum). Do you honestly want to be poor for three years?
If you are currently hacking in C++, you are probably paid quite well. Trust me, you don't want to be poor again.
I had a similar problem. Went to university to do maths, ended up doing astrophysics, ran out of money, had to get a real job.
A few years later, I discovered you couldn't get a job without a first degree. So, I enrolled with the Open University. I signed on for the MSc in Computing for Commerce and Industry program. I can't speak highly enough about this course.
If you *really* want, you could get the MSc in three years. That would leave you no spare time whatsoever. Four years is attainable. Five years is the most usual.
The great thing is, you don't have to stop working. The hard thing is, it takes 1-3 hours a day of deep concentration.
You don't need a first degree before you start.
It is a *real* postgradute qualification. It's hard. You'll learn about operating systems, software engineering and programming in ways you hadn't thought about. You can do modules in anything from business and marketing to telecoms switching.
It's fun and demanding. At the end you get an MSc from a University that is highly respected globally for it's teaching.
It costs about $9000 over five years.
The best bit is, you can say to a prospective employer "I'm currently working for my Master's degree. Any chance of you helping with money/time?". This defuses the "Why haven't you got a degree?" question.
If you do the Objects couse, you get to learn Smalltalk as well. What more could you want?
The advantage of any sort of Engineering degree is that it is assumed you have learned general problem solving and will be able to do just about any job, no matter what the field. Not many (if any) undergraduate degrees carry the weight of an Engineering degree with the general population. If your degree is in Engineering you are not limited to working with computers. You will be given good consideration for nearly any position you seek.
MIS: Take this if you want to manage geeks, and actually understand what they're talking about. Take this if you ever want to get promoted. Take this if you like dealing with bureaucratic bullshit for 8 hours a day.
CIS: Take this if you don't want anyone to understand what the fuck you're talking about. Take this if you can't figure out if you want to be a manager or a programmer, and are a wishy-washy pansy. Take this if you like computers, hate programming, and don't care about advancement.
CS: Take this if you like making fun of people in code. Take this if you like sitting behind a desk and staring at a screen for 12 hours a day. Take this if you like being a prick with a superiority complex, and don't need a girlfriend.
Well, this cartoon (the one on the right) says it all...
(Shamelessly stolen from mit.edu, years and years ago -- mail me if you know who drew it!)
-------
Warning: Slashdot may contain traces of nuts.
A lot of posters here have pointed out the difference between the business skills courses (MIS, etc.) and the development skills courses (CS, SE, etc.). I agree with them, and on that basis, I'll offer a small company's perspective, when it comes to recruiting.
We're looking for programming skills. The team leaders here all have a strong programming background, and most of the project management is done by the senior leads. We're even blessed with a technical director who's hands-on, and therefore has at least the slightest idea what he's talking about, which seems to be more than most. :-)
From that point of view, when we're recruiting new grads, we say "any degree", but certainly a higher rating is given to those with a CS or Software Engineering certificate. I know I personally got shortlisted because I'd done a 1 year post-grad diploma in CS after my math degree; other people got listed other ways, of course, but that's what did it for me. With a few years of professional experience behind you, this may be less relevant, but it would still count.
The last people we look at are often those with MIS type degrees. We don't need more managers in a small company. Once, we even had a guy come up to us at a recruitment event, and tell us he wanted to go straight into project management. A quick quiz demonstrated that he knew zip about programming, and yet thought he was qualified to manage a programming team. Needless to say, we never even bothered reading his CV. That's not to say all MIS guys are like this, but it's certainly a stereotype that's all too close to the truth for many.
One guy right at the top of the thread made the point beautifully, when he noted how the MIS guys laugh at CS guys who don't know their [buzzword deleted] from their [buzzword deleted]. Strangely, I've never heard any of the management team at our place use these terms, yet they seem to manage to run projects lasting several years without going out of business. Draw your own conclusions.
Obviously, this may be very different in a large company. Our teams are all small enough that everyone knows what's going on, and communication between team members and different subteams is strong. In a larger company running really big projects, perhaps all those extra management skills are more useful. But for a small outfit, you want the programming background if you're going to get in at all.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
The differences in the degrees is easy enough to find out -- just look at the differences in the cirriculum. As far as what you can do with each once you get out...
Generally, the MIS people work in (or sometime are) the IS/IT departments of a company -- they're the people who keep the computers running, and develop the software used to keep the business running, often by starting with a known package and tweaking it to meet the company's needs. These folks are responsible for things like the payroll systems, purchasing, employee tracking and so on.
On the other hand, the CS people are generally on the product development side -- they're the ones writing the control systems for the satellites, writing the DSP code for en/de-coding MP3 files, designing missile control systems, writing compilers or designing operating systems. THere's a big research side to CS.
There's certainly some cross-over and the two sides are not exclusive -- you'll often find a bunch of old physics guys doing the CS-type work, for example.
My experience has been that the CS side pays better in industry.
Having attended three different academic institutions over the past 24 years, and receiving both graduate and undergraduate degrees in electrical and computer engineering and computer science, I can say some things about what I've observed. One way schools can be divided is by the emphasis they place on research vs. teaching. A computer science degree from a research oriented school will tend to focus more on the science part of CS, such as theory, operating systems, compilers, etc. because they are interested in generating more graduate students to do research. A CS degree from a teaching oriented school will tend to focus more on applied subjects like programming, databases, software design, etc. because they are mostly turning out people who will immediately be looking for outside jobs. Degrees from either kind of school are fine for getting a job afterwards, since many of the same core subjects will be taught virtually everywhere and many employers won't really know the difference. However, if you plan on applying to graduate schools later for a more advanced degree, they will know which category your school fits in.
One way to divide programs within schools is by which college or major division runs the program. Some schools have CS programs originating from an engineering college or division, while others tie them into an arts and science college or division. At some schools, the CS programs have had their roots in the math department. Programs with engineering roots will generally require the student to spend more time fulfilling engineering-specific requirements such as calculus, circuit theory, physics, etc. This often doesn't leave much time for other electives. Programs with roots in arts and science will have their own sets of required courses, which may allow time for taking more business oriented electives along the way.
Computer engineering (CompE) degrees are often a hybrid program between a traditional CS program and an electrical engineering (EE) program. Whether you get more or less software vs. hardware in these programs depends a lot on which department has the most influence at a particular school. Sometimes the program is run as a joint one between two different departments, and their quality depends a lot on the amount of cooperation that exists between them. Be careful to check with other people who have gone through a particular CompE program to see if they believe the program was successful or not in bridging the two disciplines and what approach was taken.
The general rule to take from all of this is that there are no general rules differentiating the kinds of programs at different schools for CS and CompE programs. Each school is different, and you need to investigate each one thoroughly to see if going there will meet your needs.
There are two benefits to going to school for a degree:
- You meet people who might be able to help you find employment, you get this more in a college with a "name". The private colleges with biggest names are MIT, Stanford and CMU. The public ones are University of Michigan and UC Berkeley.
- Completing a Bachelor's degree proves to any employer that you are willing to put up with four years of bullshit to achieve a goal, a Masters means even more. This is very important to prove to the business world, because they expect you to wade through more bullshit, this is why they call it work.
From my point of view, none of the academic computing programs teach enough job skills to be able to say "ok, anyone with a BS in Computer Science can do this job", so it really doesn't matter what the degree is in. A B.S. holds more weight with me than a B.A., since a B.S. from a College Board accredited school means that you can do math and put together a lab manual, both of which show skills that are useful (but not essential) in a typical IT job (yes, I know lab manuals are not standard in computing, I'm talking about the skill of being able to write down what you are doing, which is important).Beyond that, Physics is as good as Computer Science, Philosophy as good as Scuplture. Don't skimp on learning computing skills, and experience on real computer projects, that's essential, just not the name on the degree.
The bottom line for me, a degree means the person has a small edge over the competition, everyone has to prove to me that they can learn, but college grads don't have to prove as much that they can put up with crap, the degree says so. The edge is a small one, at least in my book.
Now, I know that there are plenty of jobs that won't even give you an interview unless you have letters after your name. If they are more interested in your degree status than what skills you can offer a company, that's their loss, are you sure it's a company you want to work for anyway? If you really do want to work for such a company, find out what degree they prefer (call them up and ask them), and go for that one. While you are in school, make sure you seek an internship with your desired employer as well, you cannot beat knowing your potential employer when it comes to finding a job.
----
Open mind, insert foot.
I'll try to keep it short and sweet. Personal background is CS degree doing heavy technical programming. Current gig is running a stable of developers for an accounting firm.
The gang is primarily MIS grads with a couple of CS folks thrown in. The finding so far is that the MIS folks are satisfactory coders (with a strong preference for 4GL tools.. PowerBuilder, Lotus Notes, VB..) and, depending on training, pretty good at PL/SQL. All get good pay and have decent prospects for the future (as coders, or in the client service side of things).
I have come to rely on the CS types to establish policies, procedures, and guidelines as well as bearing the responsibility for designing all of the software.
YMMV with different MIS programs but around here they simply don't have the formal training in software engineering, formal methodologies, algorithm analysis, etc. Basically, left to their own devices, they don't build very good software. (if you think back to the days of 7 levels of correctness, we're talking level 3 here)
So... in this software shop (remember, accounting firm):
CS - get the design work, tend to supervise the MIS grads. Good job security, but limited advancement opportunities unless the number of products grows. Better pay.
MIS - get grunt work, poor job security if they limit themselves to only code work (evil phrases like "dime a dozen" come to mind). Less pay. Generally better opportunities to progress in the "business" side of things.
---
Oh yeah, BSCS (not BACS) means 20+ hours of math.