Computer Science Concerns

FYI: earning a minor in CS is a popular choice, and that does require CS 100 and 101. :slight_smile:

The CS curriculum flowchart:

http://cs.ua.edu/wp-content/uploads/sites/4/2015/12/CS-Flowchart-2015.pdf

https://catalog.ua.edu/undergraduate/engineering/computer-science/bs/#requirementstext

You do have to take a “sequence” of natural science electives, but it doesn’t have to be physics.

Finally, this is from the UA ASEE college profile;

Enrollment by Class.
Computer Science (B.S. and B.S.C.S.)
Freshman: 192
Sophomore: 164
Junior: 128
Senior: 106

You can compare that to the other engineering majors, which normally don’t have the same level of attrition (with the exception of Aero).

http://profiles.asee.org/profiles/6799/screen/20?school_name=The+University+of+Alabama

@lhtanh98, thanks for your post. That was very helpful, I’m sure, to many folks.

Just as an FYI: ENGR 103 is a lot like CS 100 in that it has the reputation for being a difficult, weed-out class. My son loved the class, FWIW, and found it helpful to him as he was trying to determine if he wanted to pursue engineering and also which major he was best suited for, so don’t worry too much about it.

DS who is EE would probably say this about the CS 100 course! :slight_smile: He’s done very well in the Physics and the ENGR 103 classes.

@lhtanh98 You really love the CS class despite the difficulty, and I think that is the one area where DS ran into problems. He does not like coding. Add extreme difficulty and it’s not good. It was suggested he go into Mathematics but that also requires the CS 100 class.

Also, you don’t recommend self teaching, but it is highly recommended on the Engineering FB page. Tough call.

Thanks for the information @lthanh98. For my son I think Learning some coding will be helpful – not only for CS100 but also to find out if this is what he truly wants to pursue. Do you plan to take ENGR 103 at a later time? Thanks.

@pokerqueen Yes, I intend to take ENGR 103 in Junior year when I’m sure that I will pursue a degree in CS. Right now I’m still exploring, although I love CS more than I first expected. I think college experience - CS 100, can be a great opportunity to find out if that is what he truly wants to pursue. I know some EE change to CS after taking that class. I also know some CS change to something else after that class. I think that is what college is for.

@laralei Well, that is just my personal recommendation based on personal experiences. I hang out with a group of 5 friends in that class including three with very minimal prior knowledge, one with a year of Java experience, and one self-teaching himself C in the summer. The last seems to be the one struggling the most with the course.

So @lhtanh98, you truly think the reason your friend doing the poorest is due to him trying to learn C on his own?

So you would not recommend doing so for any incoming freshmen?

What do you think the issue is regarding the online classes, self-teaching, etc. resulting in the poorer performance for the CS 100 class?

@laralei I don’t blame him struggling on his trying to learn C on his own. However, I know for fact that it did not help him at all.

The thing about online classes and self-teaching is that I don’t get the point of learning the material beforehand only to study it again. If one is going to struggle in that class, one will struggle in that class, regardless of any prior attempt learning it oneself.

From my understanding, coding is all about practice, practice, practice. So wouldn’t learning the language and practicing the coding long before taking the class not be beneficial?

@laralei I just talked to my ds yesterday about this thread and why he thinks students struggle. He agreed with you: coding requires a great deal of practice. He compared it to learning a foreign language (although he took Latin which required a great deal of work!) He said it needs to be done everyday, and you need to understand the WHY behind what you are dong. He does not think the professors expect you to learn it on your own, but the only way you are going to learn it is my doing it. He has felt his professor has been great, and is more than willing to help students.

My ds took two classes online before college (each had one live lecture/week), but most of it he learned by DOING it. These two classes have helped DS in CS 100.

Also, he does feel this is an introductory course (so far he has not learned anything new than what he learned in AP Comp Sci in high school). But this is not a class where you can just memorize the material. You must be able to know when you need to use different types of coding. The example he gave me was that it is great that you know what a ‘loop’, but you need to know when to use it.

I would try to find a Community College course that is taught using C. We have one near me that uses it. C and Java share a lot of syntax, but they are very different languages. C is a tough first language to learn. I think there are some advantages, but it’s not easy at all.

I think your son will be at a huge disadvantage if he shows up with no coding experience. Teachers will inadvertently allow the discussions to rise above the scope of the course, kids will be throwing jargon around to impress the instructor and each other, and your son will be freaked out, unless he’s a very confident, driven kid. Even a watered down, mediocre class over the summer would be better than nothing.

One alternative to a Community College course would be an intro C course in the Continuing Ed dept of a local college. These will focus on the syntax of the language. It will allow your son to learn the language while solving simple problems. Many Intro To CS courses make kids learn a programming language basically on the side while they learn how to code fairly difficult math-based algorithms in their programming assignments. It’s a lot to learn at once. I’m not saying all university Intro To Programming courses are like this, but I’ve seen many that are. I think I would actually take a Continuing Ed course over a Community College CS course.

Another option is to start in an Intro To Programming For Non-Majors course at UA. If your son doesn’t take anything over the summer, I would recommend this, but it sounds like CS 100 might be that course and it still sounds like a weedout course.

Personally, I’d go the Continuing Ed route, unless there’s a great teacher at the Community College.

@BlessedMom3 May I ask if you’re from Ohio? I feel like I am a friend of your DS.

@WalknOnEggShells

Hi. I have no opinion on your suggestions; however, I humbly disagree with you on 2 matters that you mentioned.

“I think your son will be at a huge disadvantage if he shows up with no coding experience. Teachers will inadvertently allow the discussions to rise above the scope of the course, kids will be throwing jargon around to impress the instructor and each other, and your son will be freaked out, unless he’s a very confident, driven kid. Even a watered down, mediocre class over the summer would be better than nothing.”

I have no coding experience (I actually have very very little, and all I know is covered after the first week), and I don’t feel like I’m at any disadvantage. I can’t speak to other professors, but mine does not have anything like “inadvertently allow the discussions to rise above the scope of the course”, and no one freaked me out because of their ability. I feel like when in class, we are all at the same page.

“Another option is to start in an Intro To Programming For Non-Majors course at UA. If your son doesn’t take anything over the summer, I would recommend this, but it sounds like CS 100 might be that course and it still sounds like a weedout course.”

There is no such thing as Intro To Programming For Non-Majors course at UA. There is CS 121 which is an Introduction to CS; however, it just teaches us what CS is instead of helping us understand the experience of coding.

I do agree with you that C is a very hard language to learn, especially as a first language. I know upperclassmen struggling in CS 100 because of the language, thinking of changing, and eventually being very happy CS majors because of other languages like Python and Java.

^ I find it odd that someone in Engineering would take a ‘foundation’ course such as ENG 103 as a Junior. Maybe you can get away with that for CS, but any other engineering student reading this, ENG 103 is a prereq for many classes in the field. It is customarily taken freshman year.

@aeromom That is a very good catch of yours, and that is the reason I said earlier that ENGR 103 has nothing to do with CS major. It is just a requirement to graduate. To the best of my knowledge, CS majors will not apply the information in that class in any other courses that we need to take.

@lhtanh98, that’s great that you’re doing well with no prior programming experience, but as you said, everyone is different. I think it’s better to play it safe.

@pokerqueen, since there is a big scholarship at stake, I wouldn’t take any chances. As long as your son isn’t opposed to taking a summer course, I would encourage him to do it. It can only help. I agree with @lhtanh98 that if someone doesn’t have the aptitude for programming, an extra course probably isn’t going to make a difference. But if your son does have the aptitude, an intro course in C could make a huge difference in his success in CS 100.

I just took a look at the CS 100 syllabus and it does seem like the course focuses on learning C as opposed to learning how to design complex algorithms. That’s a good thing. The book is available for free online, so he might want to take a look at it. Be forewarned, though - the book is terse. Some people love books like that. I hate them and have a hard time learning from them.

If he doesn’t like the book, tell him not to get discouraged. There are plenty of good books out there on C that give much more background and context. One other thing about CS 100. It uses Unix as the programming environment. It doesn’t look like there’s a big focus on Unix, but that is one more thing that can make the course look a little more intimidating. All the more reason to have the C language part down before starting CS 100.

@lhtanh98 : “I do agree with you that C is a very hard language to learn, especially as a first language. I know upperclassmen struggling in CS 100 because of the language, thinking of changing, and eventually being very happy CS majors because of other languages like Python and Java.”

I don’t understand this. How could one be an upperclassman CS major still taking (and struggling in) CS100? CS100 is a prereq for CS101, which is a prereq for both CS200 & CS201. And, I believe, all four of those classes are required before a student can take any upper division CS courses. I can’t see how anyone could be an upperclassman in CS not having long-ago passed CS100.

Perhaps you meant they once struggled in CS100, but survived, and are now thriving? If so, that would have been the very first time 100 was taught, 2 years ago, right? Can you explain what you’re talking about? Thanks!

Do you have any suggestions for excellent books on C to supplement the online book.Son has agreed to take a summer class to see if he has an aptitude for coding. He is serious,mature and hardworking so If he decides this is the path to take we will keep his first semester pretty light to optimize success.Cant afford to lose the scholarship. Appreciate everyone’s feedback.

@pokerqueen The online “book” that we use is accessible for the general public if your son wants to try it out. I think it is a phenomenal source of information for those who want to learn it themselves. The downside is that it will cost around $70 for that. Message me or comment if you’re interested in this one. I can also provide lab problems and projects along the course that we did in our class if you want.

@mmom99 Sorry for the misunderstanding. What I meant was that I knew people struggling in the introductory CS class in their freshmen (I knew a folk even got a C on that class), yet persevered and kept on going with CS and found themselves in Python in his Junior year. The guy I was talking about is currently a Senior, so his introductory course was actually CS 150. It was the C language that was hard to him.

@pokerqueen

search for “the art and craft of programming c edition” by Dr. Lusth

not sure if they still use it, but it was very helpful when i took cs150

@lhtanh98 my son is a senior and has been accepted to UA in CS. Can you PM me? We’ve got a couple of questions. Thanks!!

Really no matter which major is chosen you’ve gotta do your own work in your free time in order to be able to get an actual job when you’re done school. The problem is that they focus so much on teaching you things that real life application kinda gets pushed asides. With something like computer science especially you’re gonna wanna really make sure you’ve got a handle on programming concepts before you go into the classes. Usually the intro classes will be a bit easier on you, but I’d focus more on doing side projects in your free time so you can get a job after completing your education.

A lot of companies prefer experience over education and some don’t even care about your degree. for example, there are postings on Craigslist right now for $90,000 a year in NYC doing Java app development or web development, no degree required, just 2-3 years experience.

Check out this video if you’re interested in learning more about what CS is all about: https://www.youtube.com/watch?v=o-4tA0D8npM