Why Is Computer Science the MOST DROPPED MAJOR?

preview_player
Показать описание
Computer Science has a higher drop-out rate than any other college major. According to HESA, 9.8% of computer science students drop the major. Today, we're going to explore why Computer science has such a high drop rate and what you can do as a computer science student to keep out of that statistic.

I refer to conversations in this Reddit thread:

I also include some information from my post on why Computer Science is so hard:
Рекомендации по теме
Комментарии
Автор

For math and compsci, the knowledge you gain builds on top of itself. So the more you know the easier it becomes. Conversely the less you know the harder it is. People usually don’t like doing things they don’t like and if you don’t do a lot of math it’s just very difficult. Anyone can get good at math if they put in the time and effort and believe in yourself.

arcanernz
Автор

Most if not all Computer science students will go through Calculus and and some sort of Discrete Mathematics. These topics are really hard for first year students because most K-12 schools don't require you to have little to none background on Logic instead they come to college and go through the first course in coding thinking "coding is pretty easy" and comes 2nd semester they all are wanting to drop/switch majors because the workload is too intense.

RealVoidex
Автор

It's not because of the Mathematics. I know of a guy who has a Mathematics Degree and still found programming very difficult. It's difficult because Programming is one of the most difficult things to get started on (you're trying to think like a computer). And many people simply gave up too fast.

It's one of those things that will bring all the straight A students down to earth. They are not accustomed to struggling so much in lectures and tutorials

Chen-cluv
Автор

The reason Calculus is so hard is that you need to have a firm grasp on ALL highschool math. You need to know factoring, graphing, logs, trig, radicals, exponitals, algebra (ALOT OF ALGEBRA). Every problem you do will require at least one of these concepts. On top of that, you're learning all the new concepts like limits, derivities, integrals, and all their applications. So if you don't have a firm grasp of these concepts, you'll find yourself struggling before you even get to the calculus part of the problem. A lot of the times calculus can't be done until you manipulate the equation so that it satisfies a certain rule that can be done. And you have to be good enough at it that you know what direction to go. You can easily find yourself going down a path to solve a problem and you look at the answer and it's completely wrong.

liamwelsh
Автор

I think the lack of hand-holding contributes to this greatly. For example, in the calculus series, I always knew what I should know because the professor would tell me. The concepts that were explored in class, were the same concepts re-explored in homework and on tests. And the problems we solved in class were expressed as those which had a one-trick solution. So, there was a clear connection between lecture & practice. But in CS courses, I think the connection is less clear. I've had many courses where the lecture is pure theory and the assignments are application. Many times, the assignments explore new concepts/problems/tools that were not taught in class at all. And so, the student has to bridge that gap on their own. This can be a pain-staking process for people expecting that they would be shown what to do in any case. In addition to this, the kinds of problems cs tackles are those which do not always have one-trick solutions, there are many ways to write an algorithm which solves some particular problem. And so, there is creativity there as well, which makes it to where there is less of standardized roadmap for a student to follow to achieve the expected result. These in combination I think work against new students entering the major because it's not visible until you're in the program and doing the work. And so, when students realize that instead of being shown how to be a hacker, developer, programmer, problem solver, etc. they have to do it on their own time, they realize their expectations do not align with CS and drop out.

TheFootballPlaya
Автор

I dropped from a CS major to a CS minor. I had a lot of fun writing my own programs, had all A in my projects and homeworks, I also went to a T20 school in the US for CS. My problem started when I realized I was a really bad test taker, and couldn't pass Algo. If all my classes only graded me on my programming skills I would be an A+ student, but being a nervous test takers, and not being able to critically thinking out of my way fast enough really made me feel depressed. The fact that I would ace 50% of projects and then fail 50% of the tests to get a passing C in my classes destroyed my self confidence. It made my doubt myself, with the addition that I was risking losing my scholarship I just couldn't deal with the pressure anymore. I still haven't give up yet tho. Just because one way doesn't work for me doesn't mean the entire path is closed for me. Just need to do more leetcode, more algo practice and more projects.

xc
Автор

I would say some people just cannot code. Coding skill requires a certain amount of talent, just like mastering a music instrument.
I have friends in EE, ME, or MATH major who are terrific at Math and logics, but cannot out figure how to pass an entry level programming class.

cachem
Автор

its a high drop rate cause people go in it for the money not really having a passion for it, cause if you have a passion for computer science, dont even gotta study, your gonna pass that shit with ez

zeyroxxs
Автор

That's kinda crazy it's such a high drop rate mainly because of the math involved. I've always been really good at math and even got my math minor along side my CS degree. I didn't realize it could be such a turn off for people.

DaSoggyTurd
Автор

I went back to school at my local community college in the fall of 2017 after graduating high school in 2012. I wanted to do CS at first but realized there was a lot of math which intimidated me. So, I decided to do an IT associates degree that only made me take College Algebra, thinking that if I wanted to be a software developer, I could just move up. LOL. I took an intro to programming class in Java during my second semester and I really liked it.

Then my third semester in spring 2019, I realized how my IT major was completely useless, my core classes were not teaching me anything and I felt like I was wasting my time. So, I decided to switch my major to CS. That summer I took Pre-Calc in 6 weeks and after not doing math for about 1.5 years, I struggled badly. Then Calc 1 wrecked me along with an 9AM intro chem class. That was such a brutal semester because I was only sleeping 4 hours a day while attending school fulltime and working 20-25 hours.

Just now, as I am writing this, it is finals week at my first semester at my local 4 year university as a CS major. I decided to retake CompSci II because the last time I programmed was in the spring of 2019. Since 2019 up until January of 2021, I have only done Math courses and Chemistry courses.

Writing this comment made me realize how I've fucked myself by not sticking to my original goal all the way back to early 2017 when I was thinking of going back to school. I guess the lesson that I have for anyone reading this comment, is to have a conversation with yourself and know that you have to work hard if you want to do a Computer Science degree. If you are not willing to change your work habits to succeed then do not enter. I've had to work 20-25 hours while taking some really hard classes and at times only sleeping 2 hours. I still have a long way to go, but damn I cannot wait until I finally graduate.

dvilscry
Автор

I feel like part of why is how colleges teach programming, they try to teach too many different languages. In my community college and my first year of university I had to learn C++, C#, Java, visual basic, and assembly, and in pretty much every class I feel like I never really learned the language it felt like it was just enough to pass the class but not enough experience to actually use them outside of school.

jarredc
Автор

9.8% really seems low to me. What I experienced was around 20%-25% at an average state school.
At more prestige CS schools like UCLA or USC, it is around 5% as students are much more devoted to study.

cachem
Автор

im about to graduate with my BA in economics with a minor in business and i will like to give my two cents on this. i enjoy the concepts of compci (i'm currently taking some compsci electives such as algorithm design and analysis) and i'm learning how to program using javascript, python, R and SQL, (for data analysis) but i think also part of the reason compsci has a high drop out rate is the perceived return of investment after getting the degree. the job market for software engineers is crazy right now as people are getting laid off. i feel like a great mix of compsci and a somewhat understanding of microeconomic theory (how firms and businesses work) can make a solid compsci degree absolutely worth it!

my advice, don't just get the compsci degree because everyone else is doing it. figure out a solid plan with the degree, learn the costs and benefits of choosing the degree (pros vs cons) and then earn that high paying job that can land you a decent living space. i'm from california, and living conditions here are way expensive than it should be!

ejabella
Автор

I’m doing an Associates in CS and I haven’t taken any programming courses yet and I’m already finding it difficult 🤦🏽‍♂️🙁

aaronaustrie
Автор

The bottom line that people don't see until they start taking class in CS is that it's hard! CS and programming is romanticized to the public for example we all are told that you can make so much money like $600, 000 a year which may be true but what's left out is that it takes a lot of work and studying to get to that point. Nothing that in life gives a big reward with out work and struggles. If it wasn't hard everyone would be doing it.

nomadic
Автор

For me, I wished my intro college classes took more time demonstrating on how to actually program instead of going over syntax…

nathankong
Автор

My CSII teacher said this "Computer science is a science. In your intro classes you are learning a lot of the basic applications you can do, after this class is over you can be a basic code-monkey for many jobs out there, but you don't really understand it, you are going through the motions. You can look at a formula in math and put it in a calculator, but don't really know why it got the answer. The future classes are more theoretical, you delve into the science part of computer science, not just the computer programming."

That isn't an exact quote, paraphrased. But he really pointed out how most people who start computer science don't really realize it is a "science" at first. They may have taken the intro classes or a class in highschool where they learned programming techniques and realize that developing really simple things is well, simple. When you go into physics, you know it is a science, you know it is going to use math and logic to some degree. Same for biology, chemistry, and even engineering. But most people don't see computer science that way at first. They don't realize how theoretical and how logic and math based it gets until they're already a few courses into their major. I know a good majority of CS majors at my school complained about how the CS major was too "theoretical" and how they really like the applied stuff but hated the theoretical stuff and just pushed through it to get to the more interesting things

My boss (I am a research assistant at my uni) said that next semester the school is thinking about adding another major option called "Applied Programming" or something like that for all the people who love the application stuff but don't care for the theory. So while "computer science" will have classes like data structures, operating systems, discrete math (logic math), etc, applied programming would have things like web-development, game design, mobile development, etc

Of course you would be able to take electives in each other's degrees, but the emphasis would be on theoretical vs application, which I think is cool, but could also be counter productive. I don't know the details of the applied programming degree yet, but if they don't take things like calculus, linear algebra, statistics, and data structures, how would they take a machine learning course? That is the most popular CS elective at my school lol, I know there is demand for it, but you do need a ton of the theory to actually understand how to do it, so we'll see how that goes. I am gonna stick to computer science lol

soulsofwar
Автор

My school had a 54% drop out rate in comsci, higher than any other major at the school. I dropped out, went to community college and am now back in uni (different school) to get the comsci degree. I should graduate a semester or two late. The reason I droped it goes deeper than hard classes or weeder courses. I actually did okay in clac 2 and other weeder classes, but it was so bloody toxic. Seeing friends fail over something that was absolute bs, vague requirements on assignments and politics within the faculty are a major reason why I left. Had some really good profs in my first school but overall it was a bad experience. I find that schools that place the CS with the Science faculty over the Engineering faculty makes a big difference as well (with science being better imo).

jamesbutson
Автор

1) it is hard because of the math. It really is a discrete math degree with some coding added in. 2) programming in CS is not fun Python, it is horrible C/C++. People who maybe have Python exposure will get a rude awakening when they have to write C code inside the Linux kernel and it involves pointers to pointers and the kernel needs to be recompiled every time you change something or C++ code to effect a red-black tree rebalance. You are NOT creating fun apps, and if you are interested in the front end, forget it, you are never going to touch JS, CSS, HTML in a CS degree program. And if you do not live on the command line CS schooling is also going to be uncomfortable. The people I saw be successful in CS had no issues with math whatsoever, and already knew how to code when they started. Everyone else, it is a struggle.

MSneberger
Автор

That amount of people that dropped after the first year of the associates degree was about 50%. I'm currently in the BAS program at my school and people tell me I'm smartest person in the program and I'm like lol I copy and paste stuff from online and change it up and repurposed as my own... I've been programming since I was 14 and I love computers, you need to have passion and not get too lazy. Currently have a 4.0 GPA for my BAS, Stats was pretty easy.

purpasmart_