Subj : Taking a community college CIS/C++ course
To   : All
From : Digital Man
Date : Tue Jan 16 2024 04:51 pm

I'm thinking of making a video series on programming in C and then later maybe C++. I've been reading a lot of (mostly C++) programming books in preparation for this project.

My first video series will probably be a deconstruction/analysis of the 2nd edition of the K&R book (though yes, that's a really old version of C now).

I also thought it'd be good to take some refresher college courses on C++ to see how it's taught nowadays, the books used, etc. Luckily, my local community college had an online winter course and I signed up and started a couple of weeks ago.

Now, I've been programming in C and C++ professionally since 1991, so I didn't really expect to learn a lot whole lot in the introductory course (CIS-5), but here's some initial takeaways:

1. The recommended (not required) book is pretty outdated and, in my opinion, bad compared to all other C++ programming books I've owned (explains concepts in an odd order, gets things wrong). And it's *way* overpriced.
https://www.amazon.com/crappy_book/dp/013454484
so I'm just using a pirated PDF copy of it. Bleh.

2. The online labs/course work (in something called "Canvas") is hodge-podge, contradictory and just kind of a mess of video "labs" (more demos, with very low audio levels), bad copy/pasted UNICODE-translated (so, not compilable) source code, and links to another college professor's videos on YouTube that are pretty old and average:
https://www.youtube.com/@deborahs948

3. This professor seems to have internalized some incorrect idioms they repeat over and over (e.g. you #include a libarary in C++, "cout" stands for "console output", confuses declarations and definitions, etc.), has no concept of UNICODE, never bothers to explain *why* the preprocessor and C++ language are they way they are, depends on the IDE's editor to detect errors/warnings in the code (rather than the compiler), has no concept of the command-line, command-line options (e.g. for the builds tools), how to use Windows effectively (forget about MacOS, Linux, or ChromeOS). It's pretty frustrating watching/listening to them write code and explain concepts.

More than once, I've thought "aha! that's where these candidates that don't do well in our interview process got that wrong-concept from!". There's some fundamental stuff that's just not being taught correclty in some schools apparently.

So far, it's all console input (using std::cin) and output (using std::cout), basic math, algorithms, and now looping constructs. There's been a lot of focus on stream formatting (using of <iomanip>) which in my experience is not something used much in most C++ projects, but whatever. I am learning *some* things there that I hadn't used before. But I have to keep reminding myself: I'm not here to teach this class (or the professor) or even to get the highest score ever, just to learn what's good and bad about how C++ is being taught in schools these days. And towards that goal, it's going good!
--
                                           digital man (rob)

This Is Spinal Tap quote #22:
David St. Hubbins: Here lies David St. Hubbins... and why not?
Norco, CA WX: 63.3�F, 59.0% humidity, 3 mph W wind, 0.00 inches rain/24hrs

---
� Synchronet � Vertrauen � Home of Synchronet � [vert/cvs/bbs].synchro.net