DEV Community

Ross-Li
Ross-Li

Posted on

Opinion: CS Education Should Include More Code Reading

I was reading through the code for an amazing open source project called BFBAN today. Specifically, I was reading the SQL scripts. There I encountered many familiar SQL stuff, but also many SQL stuff that I didn't know: json data type, ENGINE=InnoDB, COLLATE=utf8mb4_0900_ai_ci, COMMENT, PRIMARY KEY (id) USING BTREE...... As I understood these concepts with the help of Copilot and documentation, I developed a better understanding of MySQL and starting thinking this blog's topic.

My (could be arbitrary) point is: I don't think in today's CS education (in some universities at least), students are reading (or instructors are not assisting students to read) enough good quality code for students to produce good quality code.

If you want to write good articles or essays, you should first read and "digest" quite a few classical books or essays (e.g. Plato's work, Shakespeare's work) to understand word-by-word, sentence-by-sentence, paragraph-to-paragraph how good essays should be written usually with the help from teachers to build up the "vocabularies".

Then how comes when it comes to CS education (especially the software engineering part), students are expected to know how to program properly after only a few semesters' equivalent of "learning the ABCs" without much exposure and understanding of good quality code?

Maybe the instructors could do some live coding sessions just like what software developers would do when they pair-program? Maybe the instructors could pick some entry-level but good quality open source code bases to let the students to write "summary and response" with? Maybe instead of asking "who knows answer to this question", instructors could ask a student to the front and present his/her idea to improve existing sample code? Those are just some random thoughts, but maybe we can draw experiences from how writing was taught (or should I say, "should be taught") in school.

I remember listening to this video Can Great Programmers Be Taught discussing the software engineer education. I remember that one of the argument the present made was that programming can be taught properly by reducing the class capacity, increasing in-class interaction, essentially "tailoring" the education to the audience, subsequently increasing the cost of education (or should I call it individual tutoring at this point) by a large amount. (Just think about how much you are paying for your CS education, then multiply that by a few times).

I do agree that the greatest programmers are self-taught, because programming is a field that just isn't possible to be 100% taught, a field where the practitioner must be willing to "chew through the book like a worm" to build up their programming knowledge. But I still think that good introductory CS education will guide beginners towards the right direction and speed up their progress.

Top comments (0)