Computer Science major concerns

Hello CollegeConfidential, I am a new member who is just curious if anyone has had a similar experience during their undergraduate studies in Computer Science. I’m currently a junior Computer Science student who is about 15 classes away from graduating.

During my freshman year at a local university, I was undecided about my major, so I took some classes I thought I might be interested in to get a feel for what I wanted to settle with. In order to complete my general math requirement, I took Pre-Calc/Trig and felt that the class was very slow (due to taking Calculus in high school) and I had no problem getting an A without much studying or effort. When I reached Calculus I, I felt that the class was more at my speed. I needed some studying, but once again didn’t have a lot of trouble getting an A. I loved my professor and his teaching style, so I often visited during office hours. The class was small and he was able to get to know the students on a more personal level than most professors. He also inspired me to become a math tutor, which I really enjoyed. He recommended I try to pursue engineering to see if I would like it and also let me borrow a introductory programming textbook to see if I might like it after I mentioned thinking about Computer Science as a major (I’m a big techie and my family mentioned once or twice that I should think about working with computers and technology as a possible career path). I really liked reading the programming textbook and decided on Computer Science after looking at the curriculum of other engineering disciplines (mechanical, chemical, electrical, etc.). I didn’t do very well in General Chemistry I (B-) and didn’t have a lot of experience working with circuits nor tinkered with or made my own computers like a lot of electrical engineering students had. I started learning programming with websites like Codecademy and Code School. I found it fun and challenging, with elements of math mixed in. So from then on, I declared Computer Science my major and continued to work through the program.

What I’m starting to learn though, after taking a few programming classes and completing my math pre-requisites is that I’m starting to miss my math classes and I’m struggling a little with my programming classes. I did well and enjoyed all of my math classes:

Calculus I: A
Calculus II: A
Calculus III: B+
Physics I and Lab: A
Physics II and Lab: B
Linear Systems: A
Discrete Structures: A
Probability & Statistics for Engineers: A

But I’m not doing as well in my programming (major specific in sequential order) classes:

Programming Concepts (Intro course): A
Program Design in C: B
Object Oriented Programming in C++: B+
Data Structures: B

I’m not at the top of my class, but I feel like I’m an average student. I currently have a 3.61 GPA. Not the best but also not the worst. I pour a lot of time into my coding assignments, pull a lot of late nights to finish deadlines, and understand concepts when I study enough. I feel like I’m generally more slow to know which algorithm or data structure to use when (for example, while working with a partner for a programming project, they usually have to explain to me why he chose a specific design for it or help me approach the problem we have to solve) and sometimes can’t pick up what the professor is explaining as quickly. My interest in coding in general has faded a little, I usually face new projects with anxiety rather than excitement or eagerness. I question my abilities and skill, often getting very frustrated during debugging and cry. Sometimes I consider switching majors because I don’t feel smart enough to continue. I’m also a girl so its difficult to meet other girls in my classes who I can relate to, as a majority of my classmates are male.

I know I love math and the math classes I took, but I’m not enjoying my programming classes as much anymore. I love the idea of it and learning new concepts, but I don’t feel like I’m as good as my fellow classmates. I constantly feel intimidated and question my abilities. I do well on written exams but I rarely get A’s on my coding assignments. I feel like I need more time studying and practicing than other students, even after visiting office hours and speaking with TAs.I don’t understand why I would do so well in math, but struggle so much with programming. I know the two subjects aren’t exactly the same, but I can see where the problem solving and logic would be similar. The interest is definitely there, and although I don’t have a HUGE passion for programming, I enjoy working out problems and trying to find solutions. Unfortunately, the more I struggle, the less I feel like continuing with the degree and consider moving to another major I might do better in. The thing is I love Computer Science and learning about it, but I’m not sure if I’m good enough to keep going or if I should dip out now and save myself the trouble.

Has this happened to anyone else who attempted or completed an undergraduate degree in Computer Science? Does anyone have any suggestions or experiences they can contribute?

Thank you so much.

I also apologize in advance for how long the post is - it’s quite a bit to explain.

My daughter is in the same boat, it turned out lot of kids in her major are even worse than her. CS has a wide range of ability since some kids started out coding in middle school. However, she has since catching up and with her work ethics she is going to be better junior and senior year. Don’t be so down on yourself, btw I’ve been an engineer for 35 years and I have anxiety some time when I started some programming project. It maybe that I was an EE for undergraduate and CS for master degree. I would hang on if I were you, your grades are good.

A 3.3 CS GPA is pretty good for CS, you’re in a great position. Keep going for sure. Especially because you enjoy it.

I think she has 3.61.

I’m also an undergrad in CS myself. I can’t say I agree with your idea that you shouldn’t continue to further your studies in CS just because you feel like you aren’t doing particularly well in a few specific classes. Try your best to have a growth mindset; meaning your current skill level in programming at the moment is not static. It will improve as time goes on with the more practice you have. You seem to be a very driven person as noted by your efforts to seek out additional resources in order to understand the material. And I think your motivation will help you get over the top.

You may want to take a look at this article. I personally found it open my perspectives on the path of CS. Although everyone’s experience will be different, the author basically tries to sum up what you will go through as you continue your studies in CS: http://www.vikingcodeschool.com/posts/why-learning-to-code-is-so-damn-hard

Lastly please don’t let the fact that you being one of the few females in a class full of males deter you from studies. I’ve been seeing a growing number of non-profits that are trying to help female students in tech who feel the same way you do. So seek out the support you need. The support on these forums have been very helpful to me and I hope you will to. Good luck!

Getting B’s in core classes like Data Structures is not a failure. In broad strokes, girls tend to shoot for perfection, while boys tend to accept good enough, and just be happy in a major they enjoy. This is part of why females are underrepresented in TEM fields. I think you would be surprised at the GPA of some of your male classmates in CS.

My Daughter is planning on majoring in CS and I have warned her about the ratio of M/F, but I think you two just need to stick it out and pave the way for next years incoming freshwomen.

“often getting very frustrated during debugging and cry”

I have been coding for 25 years and while I don’t cry, I am OFTEN frustrated and sometimes get a little emotional about it. This is part of what makes coding fun- when you finally solve the problem, the feeling is one of the best.

Stick to it and good luck! You may find that you like the real world practice of programming, as opposed to the curriculum of the CS degree. They are very different.

You’re not alone. I also feel the same way about CS. I always feel my classmates are better than me, which is one of the reasons why i’m usually quiet in my CS classes. I too find the debugging, finding error process frustrating but this is a natural feeling for everyone. I hope you get the joy after you’ve found the errors. I know i do. Keep going. You’re doing really well. At the end, you don’t have to be better than all of your classmates to get a job. CS is not an easy major. I think everyone knows that. If it’s an easy ride, everyone would be Computer Scientists by now. You won’t go anywhere if you don’t struggle. If you find joy in CS, you will succeed. :slight_smile:

@anniealgorithm As others here have said, it seems like this is common. I too struggle with the exact things you say and have considered them. “I do so well in my high level Math classes, but here I struggle, maybe this isn’t cut out for me.” Coupled with the ego of wanting to be a top-tier student I can become emotional too when computer science concepts don’t come easy to me anything like how the math concepts came into me. But here’s my insight:

The struggling gives us humility. That we’re not just the best 4.0 students and do have to study and put effort into overcoming our obstacles.

And like KhanAcademy and other studies have noted the science behind your brain growing and learning when it struggles. By struggling, we can be learning and improving our mind more than we can by taking math classes that would be easier.

http://fc03.deviantart.net/fs70/i/2013/103/5/6/struggle_by_ommin202-d61dr9s.png

anniealgorithm’s struggles are pretty typical for CS. I got sick to death of my CS classes in my senior year. It gets better after your graduate and find work.

Just keep plugging away. Persistence is probably the most important characteristic for anyone going into math, physical science, CS, or engineering.

You got a B+ in calc III and a B in data structures. That’s not exactly a big difference. Also, you took easy math classes to start - you had calculus in high school but took precalc (why?) and then calc again in college. So it shouldn’t be a surprise that the early math classes were easy for you. It seems to me you are doing fine in CS. If you enjoy math more and want to be a math major, that’s another question.