diff --git a/index.html b/index.html index 308cbf0..438d052 100644 --- a/index.html +++ b/index.html @@ -23,6 +23,9 @@
  • software
  • +
  • + meditations +
  • diff --git a/posts/meditations/the-problem-with-cs-curricula.html b/posts/meditations/the-problem-with-cs-curricula.html new file mode 100644 index 0000000..87a27c7 --- /dev/null +++ b/posts/meditations/the-problem-with-cs-curricula.html @@ -0,0 +1,101 @@ + + + + + + + + + + + the problem with cs curricula + + + +
    +
    +
    +

    the problem with cs curricula

    +
    +
    +

    + Edsger Wybe Dijkstra's + "On the cruelty of really teaching computing science" + 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 + 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. +

    +
    +
    +
    + + + + + diff --git a/scripts/common.js b/scripts/common.js index 30f0786..02380d1 100644 --- a/scripts/common.js +++ b/scripts/common.js @@ -122,6 +122,8 @@ const getTopicColor = (topicName) => { return "#009975"; case "algorithms": return "#d50032"; + case "meditations": + return "#6a0dad"; default: return "#000000"; } diff --git a/scripts/index.js b/scripts/index.js index 02f38de..757c102 100644 --- a/scripts/index.js +++ b/scripts/index.js @@ -19,6 +19,7 @@ const postMapping = new Map([ "models of production", ], ], + ["meditations", ["the problem with cs curricula"]], ]); function refresh(e) { @@ -42,10 +43,10 @@ function renderPosts(topic) { // Normalize topic for lookup (in case it has spaces, like "operating systems") const normalizedTopic = topic.trim(); - + // Get posts for this topic const topicPosts = postMapping.get(normalizedTopic); - + if (!topicPosts) { console.error(`No posts found for topic: ${normalizedTopic}`); return; @@ -59,7 +60,7 @@ function renderPosts(topic) { const link = document.createElement("a"); const postLink = postName.toLowerCase().replace(/\s+/g, "-"); - + // Convert topic to URL-friendly format const topicSlug = normalizedTopic.toLowerCase().replace(/\s+/g, "-"); link.href = `/posts/${topicSlug}/${postLink}.html`;