Today's CS pedagogy is problematic

4 points by burningrubber ↗ HN
Just got helping my sibling prep for their CS exam today. They are one grade below being an undergraduate so math was not an issue at all. They have trouble understanding college classes hence tutions but the latter is even worse.

So here's the thing. When i was 10, school taught us qbasic and html. That was my first brush with programming which i tried out on cmd itself. Far forward 5 years, we had java and I got 100/100 on the paper because i had written enough java scripts to know what the error messages meant (lol, they used to ask us to 'fix' the problem aka the syntax). 2 years later my interest rekindled. Ever since 2018, i have been a hobby coder. Now here's the thing. Around my sibling's age right now, i did not have CS in my college so no theory or any handheld guidance except what i remembered being taught in high school which i had forgotten already. My biggest regret was not being able to learn algorithm analysis and grok complex data structures. However my sibling not only has a good CS prof, she also has tutions and her study guide is as good as a book of "Learn XYZ the hard way". Which is the fucking problem. The book does not start off with explaining the semantics or the language or even the fucking type system (remember we are talking about c++ here) the sample codes don't work, there are missing include directives, etc. They have given 10 examples of using pointers before explaining what pointers are. My sibling had no idea how referencing worked or even variables. It took me 5 minutes to teach her pointers by using the hashtable analogy of pointer being keys to memory offsets and then printed the value and mem offset on an online interpreter and guess what she could make sense of slicing syntax and array structures including char* and string.

Similarly i know plenty of undergrads and even masters friends unable to write scripts but are scoring a lot in their exams.

My gripe is that there is literally ZERO interest of the edsystem to treat coding like teaching a language which is the only way to learn it properly. What are your views on this especially if you are a millenial/gen z

11 comments

[ 2.9 ms ] story [ 36.4 ms ] thread
Some Good Parts:

- Professor Richard Buckland has CS playlists on youtube (UNSW eLearning). In one of his lectures he starts writing a sudoku solver (I think) starting with high level abstractions.

- Also, at least, the first video of SICP https://www.youtube.com/watch?v=2Op3QLzMgSY

I think C++ is a terrible language choice for an intro to CS class
we started with scheme, then C and then C++
What about C?

In my engineering program everyone started with C and I'm actually glad in retrospect.

Gives you a good understanding of the whole stack.

C is better than C++ but I think you can more gently introduce people to programming with an easier language like python or ruby and move on to C to learn memory management and typing once they understand variables, functions, basic logic etc

But we generally teach computer science instead of just programming so we don't have separate classes

sounds like a bad CS program maybe find a better college?
There are like 3 good colleges when it comes to CS.
In the world? That's a bit of an underestimate.
Given that official tutorial/course is non existent for most programming languages, at least they tried teaching, despite in bad quality.
cs is math, so being annoyed you weren't taught programming is odd.

my issue is when those two modes of education collide in one program, usually with some washout course where you're forced to teach yourself things very rapidly, under penalty of academic misconduct if you collaborate in ways you would in literally any other context.