Retake beginner C++?

<p>I'm a junior in Computer Engineering. I got my Associate degree this past spring at community college, and this is my first semester at the state college I transferred to. I had a 3.72 GPA before I transferred, and that was attained while both working 40+ hours/wk and in school full time. (I quit work when I transferred in order to spend more time studying.)</p>

<p>I'm doing well so far, except for C++ Data Structures. My adviser--who is also the prof--informed me that this class had the highest DWF rate, because most students coming in did not have a strong enough background in C++. Since I got an A in C++ at my community college, I thought I would be fine. I did some programming exercises over the summer just to brush up.</p>

<p>The prof's lectures make sense, but as soon as I try to use the new concepts I'm learning, I get utterly confused, and nothing works like it's supposed to. I've been working on the first assignment every day since the first day of classes and I've made very little progress. (The first few days I was just wrestling with my IDE because nothing I programmed would work at all. I eventually switched to Visual Studio.) So far, I can't find any tutors at my school in C++, and my questions on the class' discussion board (the preferred method of asking for help) have not been answered. I fear it's because they are too basic.</p>

<p>I genuinely feel as if I'm missing some crucial lessons and experience. The prof suggested that any of us having extreme difficulty early on should drop the class and take a lower-level C++. There is one that's still open that coincidentally meets at the exact same time.</p>

<p>It seems odd, though, to re-take a course I got an A in, but it's probably very different than the one I took at CC. I'm pretty upset because I like programming, and I was excited about taking a challenging course. Would taking the lower-level C++ be a good idea? Or should I tough it out in Data Structures?</p>

<p>Is your difficulty in the course based on difficulty with the C++ language, or the data structures concepts involved?</p>

<p>I would retake it at this new school. Follow the professor’s advice. Even if you know a lot of stuff in the lower level class it will help serve to give you confidence at the new school.
Data Structures is a hard class, it might be a lot of the C++ stuff were already covered in lower level class.</p>

<p>Both, I think. When I made programs in my last course, they were very long and sloppy, but they worked. This class seems to stress efficiency and simplicity, which I know is very important. I only used functions within classes to perform calculations, and used the main page to manipulate all other data. Accessor and mutator functions confused me, so I wrote my way around them. I know what pointers are, but have no clue how to use them.
The assignments in this class require that all programs be coded with specific parameters, with sets of data in structs being stored in multiple methods, and I don’t know how to pass their values to each other quickly without writing data1.x = definition1.x over and over. Some of the data sets we need to use look the same, and I don’t know why.</p>

<p>Can you get a hold of the final exam and/or final project from the previous semester of the lower level course? If it looks difficult, or contains a bunch of things that you have no idea about, you may want to retake that lower level course.</p>

<p>But if your programs before were long and sloppy, and did not make use of the classes as one would usually do when programming in C++, it may be that your C++ skills are not at the level expected in the current course.</p>

<p>I think you’re right, ucbalumnus. I probably could have done better in my first course if I had gone to the prof’s office or joined a study group or got extra tutoring, instead of fudging my way around the concepts I didn’t understand, At that point, I was working and didn’t have time for any of those things. I do now, though.</p>

<p>C++ can be taught on many levels. Some HS kids around here think they know C++ because that’s what Arduino uses. But, other than enabling some shortcuts, most Arduino code is basically no different from C. My son took a summer class where they had him writing a text-based game in C++. Umm, C/C++ is about the worst language for that. You really should know classes well to use C++ for a Data Structures course. Data Structures is an important class, and the foundation for a lot of other things.</p>

<p>Well, retaking the first course in C++ is seldom useful. You are expected not to be good at it at that point because that kind of thing takes time.</p>

<p>Generally, there is a second course in programming that does emphasize style. Something along the lines of “object oriented design” which teaches you about the principles of OOP, introduces the data structures, introduces the big IDEs (Eclipse or VS), etc. I wonder if you missed a step?</p>

<p>Visual Studio is painful, there’s no question about that. There is quite a learning curve before you can start to appreciate all that it is capable of doing for you. Also, C++ is a pretty tricky language. You may just have to learn to slog through it from where you are now, perhaps with the help of a reference book (my favorite one, for $6: <a href=“http://www.amazon.com/Programming-Principles-Practice-Using-C/dp/0321543726/”>http://www.amazon.com/Programming-Principles-Practice-Using-C/dp/0321543726/&lt;/a&gt;). But after you learn C++, learning other languages is usually pretty easy.</p>

<p>You might take a look that these two books, which some novice students say are very helpful;

  1. Jumping Into C++, by Allain
  2. C++, An Active Learning Approach, by Breedlove </p>

<p>It looks like your previous C++ course didn’t serve you well if you were able to get an A without learning/using core concepts. Given your advisor’s advice, as well as the fact that data structures is an important core course, and that you’re struggling as a junior in a course that’s typically taken sophomore year, it sounds as if you should switch to the C++ class.</p>

<p>Your post stated you don’t know how to use pointers is kind of a clue. Relearn C++. It’s best not to loose the basic understanding before you move on further.</p>

<p>I went back to CC to take C++ after I finished grad school as I found it useful to keep up with programming languages. I have learned Basic, Fortran, Cobol, and even 8088 assembly before. I found the class at CC to be not very helpful as I did self study most of the time. I would not be surprised if one received an A in the class and yet not knowing much about C++ programming. I did get an A in that class and I am probably the only one can actually use C++ in real life programming after that class. You probably want to study a bit more on your own to catch up instead of retaking the class.</p>