feat: refactor
This commit is contained in:
parent
b83f17d087
commit
8666e5a169
57 changed files with 5734 additions and 5313 deletions
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
title: "the problem with cs curricula"
|
||||
useKatex: true
|
||||
---
|
||||
|
||||
Edsger Wybe Dijkstra's ["On the cruelty of really teaching computing science"](https://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html) perfectly sums up my gripes with how Computer Science is taught at a university level (at my school, at least).
|
||||
|
||||
Succinctly put, my time learning computer science at my unnamed college exemplified nearly everything he (and I) believe a CS curriculum should _not do_:
|
||||
|
||||
- Ignore the existential questions about computer programs (what are they? why do they exist? can they want? what should they be used for?)
|
||||
- Ignore the notion of program behavior, i.e. provability (this is set aside as an advanced core class, counterintuitively reserved for a third or fourth year).
|
||||
- Excessively simplify and frame new technologies with analogy, effectively instilling maladaptive thinking patterns that fail to extend to more novel problems
|
||||
- Give up on doing the inverse of the above because it is too hard for young students.
|
||||
|
||||
Walking out of my third year, I left with the sad realization that I got by the majority of my classes by only understanding things as they pertained to assignments and exams. **And by "got by", I mean straight A's**.
|
||||
|
||||
I always knew something was wrong with how my school taught computer science (despite it being the biggest major as of 2025). As of late, though, I realized the gargantuan amount of damage it caused to my reasoning abilities. Damage that I have to reverse by, essentially, doing everything all over again.
|
||||
|
||||
My [competitive programming journey](https://barrettruth.com/posts/algorithms/competitive-programming-log.html) epitomizes this point: to this day I struggle with reasoning, argumentation, and understanding program behavior. I know how a segment tree works but can't formalize the constraints of a problem. I can do dynamic programming on trees but I can barely manipulate and work with primitive mathematical concepts such as the \$gcd\$ function. I cannot think of a more useless skillset.
|
||||
|
||||
Nearly all of this is my fault. However, _it should not be possible for this to happen in a computer science curriculum_. In other words, Djikstra is right.
|
||||
Loading…
Add table
Add a link
Reference in a new issue