Hacker News new | ask | show | jobs
by dls2016 1205 days ago
Thank you for making the point about accreditation, it's sort of a pet peeve of mine. I taught "intro to C++" last year at the Harrisburg campus of PSU. The students were a mix of non-CS majors who didn't know what a file was, a handful of students who already knew how to program and a bunch in the middle.

Re: accreditation... the admin is very reluctant to change anything about the courses. Even specific textbooks had to be recommended (I was warned for suggesting in the syllabus that the textbook wasn't needed). Seemed a little more strict than teaching mathematics, which I did in graduate school.

Re: kids these days... a significant portion didn't understand the concept of a file. I blame apps and the cloud (funny because I now work in cloud storage). I ended up writing my own pre-cursor doc to the "missing semester". It was challenge to get a student from not understanding the filesystem to having some sort of understanding of linear search and pointers. (If you're interested: https://www.dropbox.com/s/jar1r0l5vdgspcl/basics.pdf?dl=0)

I tried to stress, especially to the non-majors, that this "missing" stuff was perhaps the most important thing they could learn. That, and how to properly google/search for things. I would experiment and try to re-word homework questions so that interesting StackOverflow answers appeared in search results.

2 comments

C++ needs a “missing semester” around tooling. Most material I see focus on the core language but leave out setting up build systems, package management, clang tidy, testing etc.
Yeah, the whole aspect of teaching C++ to beginners is fraught with tooling issues. That school is moving to Python (years after main campus switched)... but I'm not sure how I feel about that since I spent a lot of time talking about memory layout.

I ended up suggesting those who don't know how to setup a tool chain use VS Code. Not out of any particular affinity for it, but because of the good documentation covering Windows, Linux and macOS.

How do you do package management in C/C++?

I have only used pip, cargo, npm (well yarn and pnpm mostly) and composer.

Big off putting aspect of learning C/C++ is that I can’t grok how shared libraries work very well

A mix of actual package managers, distro packages and just cloning the library into a 3rd_party folder in your project
> I would experiment and try to re-word homework questions so that interesting StackOverflow answers appeared in search results.

That's a really interesting pedagogical approach, I like it a lot.

I also told them this, to encourage searching.

Though I hate Chegg and the like with a passion, since this sort of thing takes a lot of work (over the course of teaching same class a few times) and then w/ Chegg you immediately find the answers.