• Taking a community college CIS/C++ course

    From Digital Man@VERT to All on Tuesday, January 16, 2024 16:51:13
    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
    Preview image
    Deborah S
    This channel is for my students at Niagara County Community College or anyone else that finds the videos to be helpful.


    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
  • From Nightfox@VERT/DIGDIST to Digital Man on Tuesday, January 16, 2024 17:53:13
    Re: Taking a community college CIS/C++ course
    By: Digital Man to All on Tue Jan 16 2024 04:51 pm

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

    C++ was taught in the software engineering program I did in college (which I started into in 2001). I had taken a couple of C++ classes from the CS department prior to the software engineering program, so I had a bit of a foundation already, and I still learned quite a bit. Sometimes I wondered why they chose the books they chose. I remember the initial book for the C++ classes seeming a bit complicated, at least compared to the book used by the CS teachers.

    DM> 2. The online labs/course work (in something called "Canvas") is
    DM> hodge-podge, contradictory and just kind of a mess of video "labs" (more
    DM> demos, with very low audio levels), bad copy/pasted UNICODE-translated
    DM> (so, not compilable) source code

    Interesting.. Canvas sort of rings a bell, though I'm not sure if I've used it. My instructors in college just had us do our work in Visual Studio.

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

    That definitely can be frustrating..
    One time in college (before I took any CS or software engineering classes), I was thinking of going into CIS (Computer Information Systems) and was taking one of the required classes (around 2000), and one day the instructor said any animations on a web page are typically done with Java. I remember him talking about it fairly generically, and I had a thought that a lot of the animations I saw on web pages at the time were just animated .gif images.

    In one of my C++ classes for the software engineering program, for cin and cout, one of the students in the class would often read those as "carry in" and "carry out"..

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

    One time in my career, I was surprised to learn of something I didn't know, which apparently was not mentioned in my classes in college: That it's unsafe to do GUI-related things from anything other than the main thread. Either that wasn't mentioned in any of my classes, or somehow I missed it. I did have a couple of classes in college pertaining to making a GUI (one in MFC with C++, and another with WinForms using C#).

    Also, I had a software engineer job interview once with a company that asked me to provide a code sample. I did (it was something I had written in C++). They were asking me some questions about it, and mentioned something about some of the logic in one of the functions possibly being refactored, and they had mentioned some obscure math theorem that I had never heard of..

    Nightfox

    ---
    þ Synchronet þ Digital Distortion: digitaldistortionbbs.com
  • From fusion@VERT/CFBBS to Digital Man on Tuesday, January 16, 2024 22:22:00
    On 16 Jan 2024, Digital Man said the following...

    DM> I'm thinking of making a video series on programming in C and then later
    DM> maybe C++. I've been reading a lot of (mostly C++) programming books in
    DM> preparation for this project.
    DM> My first video series will probably be a deconstruction/analysis of the
    DM> 2nd edition of the K&R book (though yes, that's a really old version of
    DM> C now).

    this is very cool, and i'm looking forward to it!

    i do enjoy reading my copy of the K&R book.. nostalgic.

    good luck!

    --- Mystic BBS v1.12 A47 2021/12/25 (Windows/32)
    * Origin: cold fusion - cfbbs.net - grand rapids, mi
  • From fusion@VERT/CFBBS to Nightfox on Tuesday, January 16, 2024 22:52:00
    On 16 Jan 2024, Nightfox said the following...

    Ni> Sometimes I wondered why they chose the books they chose. I remember the
    Ni> initial book for the C++ classes seeming a bit complicated, at least
    Ni> compared to the book used by the CS teachers.

    i threw mine away.. it was one of those weird super thick programming books where the whole second half is just printouts of man pages. i also don't remember the example programs being particularly useful.

    --- Mystic BBS v1.12 A47 2021/12/25 (Windows/32)
    * Origin: cold fusion - cfbbs.net - grand rapids, mi
  • From Gamgee@VERT/PALANTIR to Digital Man on Wednesday, January 17, 2024 07:38:00
    -=> Digital Man wrote to All <=-

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

    <SNIP>

    I would be VERY interested in following this! Sure hope you're able to
    do it, and thanks!



    ... Internal Error: The system has been taken over by sheep at line 19960
    --- MultiMail/Linux v0.52
    þ Synchronet þ Palantir BBS * palantirbbs.ddns.net * Pensacola, FL
  • From Digital Man@VERT to Nightfox on Wednesday, January 17, 2024 09:49:12
    Re: Taking a community college CIS/C++ course
    By: Nightfox to Digital Man on Tue Jan 16 2024 05:53 pm

    > DM> 2. The online labs/course work (in something called "Canvas") is
    > DM> hodge-podge, contradictory and just kind of a mess of video "labs"
    > DM> (more demos, with very low audio levels), bad copy/pasted
    > DM> UNICODE-translated (so, not compilable) source code
    >
    > Interesting.. Canvas sort of rings a bell, though I'm not sure if I've used
    > it. My instructors in college just had us do our work in Visual Studio.

    The student is expected to edit, build, run their code in either Visual Studio/Visual C++ or XCode. "Canvas" is just the web app they use for organizing and delivering the assignments and accepting submissions. I think Canvas software is fine, but the professor hasn't done a lot of quality-control of the content. It's all over the place, includes old or repeated content and gives contradictory guidance (e.g. lab/assignment numbering). But it's a community college, so I don't think there's a lot of peer review (of the professor's content) going on.
    --
    digital man (rob)

    Synchronet/BBS Terminology Definition #36:
    FTS = FidoNet Technical Standard
    Norco, CA WX: 50.7øF, 95.0% humidity, 0 mph W wind, 0.00 inches rain/24hrs
    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Digital Man@VERT to Nightfox on Wednesday, January 17, 2024 09:51:21
    Re: Taking a community college CIS/C++ course
    By: Nightfox to Digital Man on Tue Jan 16 2024 05:53 pm

    > One time in my career, I was surprised to learn of something I didn't know,
    > which apparently was not mentioned in my classes in college: That it's
    > unsafe to do GUI-related things from anything other than the main thread.
    > Either that wasn't mentioned in any of my classes, or somehow I missed it.
    > I did have a couple of classes in college pertaining to making a GUI (one in
    > MFC with C++, and another with WinForms using C#).

    That depends on the GUI framework. Borland VCL provides mechanisms that can be used to safely update GUI components ("controls" they call them) from child threads. I've done similar stuff in MFC apps, so it's doable if necessary.
    --
    digital man (rob)

    Rush quote #75:
    Though his mind is not for rent, don't put him down as arrogant .. Tom Sawyer
    Norco, CA WX: 50.7øF, 95.0% humidity, 0 mph W wind, 0.00 inches rain/24hrs
    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Arelor@VERT/PALANTIR to Digital Man on Wednesday, January 17, 2024 13:23:48
    Re: Taking a community college CIS/C++ course
    By: Digital Man to All on Tue Jan 16 2024 04:51 pm


    >
    > More than once, I've thought "aha! that's where these candidates that don't Now you know why so many people feel betrayed after getting their degree and
    trying to get into the employment market. Half of what they have been taught
    was full of shit and the other half is outdated. If anybody exits college with
    useful knowledge, it is because their did their own research.

    --
    gopher://gopher.richardfalken.com/1/richardfalken

    ---
    þ Synchronet þ Palantir BBS * palantirbbs.ddns.net * Pensacola, FL
  • From Digital Man@VERT to Arelor on Wednesday, January 17, 2024 12:25:23
    Re: Taking a community college CIS/C++ course
    By: Arelor to Digital Man on Wed Jan 17 2024 01:23 pm

    > Now you know why so many people feel betrayed after getting their
    > degree and trying to get into the employment market. Half of what they have > been taught
    > was full of shit and the other half is outdated. If anybody exits college
    > with useful knowledge, it is because their did their own research.

    Likely, but I also think the school/professor selection is a critical variable here. I've hired some great new grads and interns from universities with good engineering reputations that have demonstrated a solid comp-sci foundation. I can't afford to try every school's programming curriculum, but I'm definitely curious and plan to do some more research on this topic.

    I plan to take the follow-up C++ courses (at minimum) at this same community college and will hopefully get a better sense of what the other professors have to offer. I hope it gets better, but either way, it's been fun so far.
    --
    digital man (rob)

    Synchronet "Real Fact" #122:
    Synchronet v2.30a (DOS & OS/2) was released on 5-30-97, 20 months after v2.20b
    Norco, CA WX: 56.2øF, 80.0% humidity, 2 mph WSW wind, 0.00 inches rain/24hrs
    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Keyop@VERT/MAGNUMUK to Digital Man on Wednesday, January 17, 2024 22:23:37
    Re: Taking a community college CIS/C++ course
    By: Digital Man to All on Tue Jan 16 2024 16:51:13

    > 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.

    Oh that sounds great - I will definately be watching those when you publish them!

    > 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 learned how to program in C using a book titled "The C programming tutor" by Wortman and Sidebottom, which I recently re-purchased as I have misplaced my original copy.

    https://archive.org/details/cprogrammingtuto0000womm/mode/2up
    Preview image
    The C programming tutor : Womman, Leon A : Free Download, Borrow, and Streaming : Internet Archive
    xiv, 274 pages : 23 cm


    I watched a few introduction videos regarding C++ when it first came out, but never pursued it any further. I'm hoping your videos will rekindle my interest :)

    ---
    þ Synchronet þ >>> Magnum BBS <<< - bbs.magnum.uk.net
  • From fusion@VERT/CFBBS to Digital Man on Wednesday, January 17, 2024 21:09:00
    On 17 Jan 2024, Digital Man said the following...

    DM> I plan to take the follow-up C++ courses (at minimum) at this same
    DM> community college and will hopefully get a better sense of what the
    DM> other professors have to offer. I hope it gets better, but either way,
    DM> it's been fun so far. --

    what do you do for homework, interactions in class, etc? are you pretending to be a noob or do they know what you're up to?

    --- Mystic BBS v1.12 A47 2021/12/25 (Windows/32)
    * Origin: cold fusion - cfbbs.net - grand rapids, mi
  • From Digital Man@VERT to fusion on Wednesday, January 17, 2024 18:19:08
    Re: Re: Taking a community college CIS/C++ course
    By: fusion to Digital Man on Wed Jan 17 2024 09:09 pm

    > On 17 Jan 2024, Digital Man said the following...
    >
    > DM> I plan to take the follow-up C++ courses (at minimum) at this same
    > DM> community college and will hopefully get a better sense of what the
    > DM> other professors have to offer. I hope it gets better, but either way,
    > DM> it's been fun so far. --
    >
    > what do you do for homework, interactions in class, etc? are you pretending
    > to be a noob or do they know what you're up to?

    It's an online course with about 40 students. I was honest about my background and reasons for taking the class. I'm not the only experienced programmer in the class (at least one other is a very experienced Java developer).

    The course work mostly is watching videos, reading chapters from the book (not really necessary), reading articles and discussing on a web-board or reading descriptions of assignments and then writing and submitting the source code that completes the assignment. It's a 6 week course, so it's pretty dense. 2 week in and I think I've submitted something like 15 assignments already (but very easy programming tasks for experienced C or C++ programmer, the time consuming part is just making sure that every trivial detail in the assignment description is addressed in the submitted code).

    I created a Discord server for the class and have been tutoring students there when I have time too.
    --
    digital man (rob)

    Synchronet/BBS Terminology Definition #31:
    FOSSIL = Fido/Opus/SEAdog Standard Interface Layer
    Norco, CA WX: 54.6øF, 80.0% humidity, 1 mph WNW wind, 0.00 inches rain/24hrs
    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From poindexter FORTRAN@VERT/REALITY to fusion on Thursday, January 18, 2024 06:34:00
    -=> fusion wrote to Digital Man <=-

    fu> i do enjoy reading my copy of the K&R book.. nostalgic.

    I bought another copy of K&R C, keep telling myself I'm going to load up
    a retro compiler and learn C again...


    ... What mistakes did you make last time?
    --- MultiMail/Win v0.52
    þ Synchronet þ .: realitycheckbbs.org :: scientia potentia est :.
  • From poindexter FORTRAN@VERT/REALITY to Digital Man on Thursday, January 18, 2024 06:39:00
    -=> Digital Man wrote to fusion <=-

    DM> I created a Discord server for the class and have been tutoring
    DM> students there when I have time too.

    I tutored a FORTRAN class with a particularly bad professor. Friends of
    mine would hang out after the class and I'd go over what he'd taught.

    And, thus, a handle was born. :)





    ... What is the simplest solution?
    --- MultiMail/Win v0.52
    þ Synchronet þ .: realitycheckbbs.org :: scientia potentia est :.
  • From The Lizard Master@VERT/NITEEYES to Digital Man on Friday, January 26, 2024 10:59:41
    Re: Re: Taking a community college CIS/C++ course
    By: Digital Man to fusion on Wed Jan 17 2024 06:19 pm

    > I created a Discord server for the class and have been tutoring students
    > there when I have time too.

    That's great of you!

    ---
    þ Synchronet þ This is my tagline so I don't get any complaints when I post