feat(meditations): thanks djikstra
This commit is contained in:
parent
ecc52ce002
commit
b83f17d087
4 changed files with 110 additions and 3 deletions
|
|
@ -23,6 +23,9 @@
|
|||
<li class="topic software">
|
||||
<a href="/software" onclick="typechars(event)">software</a>
|
||||
</li>
|
||||
<li class="topic meditations">
|
||||
<a href="/meditations" onclick="typechars(event)">meditations</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="posts" id="posts"></div>
|
||||
</div>
|
||||
|
|
|
|||
101
posts/meditations/the-problem-with-cs-curricula.html
Normal file
101
posts/meditations/the-problem-with-cs-curricula.html
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<link rel="stylesheet" href="/styles/common.css" />
|
||||
<link rel="stylesheet" href="/styles/post.css" />
|
||||
<link rel="icon" type="image/webp" href="/public/logo.webp" />
|
||||
<script
|
||||
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"
|
||||
async
|
||||
></script>
|
||||
<title>the problem with cs curricula</title>
|
||||
</head>
|
||||
<body class="graph-background">
|
||||
<site-header></site-header>
|
||||
<main class="main">
|
||||
<div class="post-container">
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">the problem with cs curricula</h1>
|
||||
</header>
|
||||
<article class="post-article">
|
||||
<p>
|
||||
Edsger Wybe Dijkstra's
|
||||
<a
|
||||
href="https://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html"
|
||||
target="_blank"
|
||||
>"On the cruelty of really teaching computing science"</a
|
||||
>
|
||||
perfectly sums up my gripes with how Computer Science is taught at a
|
||||
university level (at my school, at least).
|
||||
</p>
|
||||
<p>
|
||||
Succinctly put, my time learning computer science at my unnamed
|
||||
college exemplified nearly everything he (and I) believe a CS
|
||||
curriculum should <i>not do</i>:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
Ignore the existential questions about computer programs (what are
|
||||
they? why do they exist? can they want? what should they be used
|
||||
for?)
|
||||
</li>
|
||||
<li>
|
||||
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).
|
||||
</li>
|
||||
<li>
|
||||
Excessively simplify and frame new technologies with analogy,
|
||||
effectively instilling maladaptive thinking patterns that fail to
|
||||
extend to more novel problems
|
||||
</li>
|
||||
<li>
|
||||
Give up on doing the inverse of the above because it is too hard
|
||||
for young students.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
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.
|
||||
<b>And by "got by", I mean straight A's</b>.
|
||||
</p>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
My
|
||||
<a
|
||||
href="https://barrettruth.com/posts/algorithms/competitive-programming-log.html"
|
||||
target="_blank"
|
||||
>competitive programming journey</a
|
||||
>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
Nearly all of this is my fault. However,
|
||||
<i
|
||||
>it should not be possible for this to happen in a computer
|
||||
science curriculum</i
|
||||
>. In other words, Djikstra is right.
|
||||
</p>
|
||||
</article>
|
||||
</div>
|
||||
</main>
|
||||
<site-footer></site-footer>
|
||||
<script src="/scripts/common.js"></script>
|
||||
<script src="/scripts/post.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -122,6 +122,8 @@ const getTopicColor = (topicName) => {
|
|||
return "#009975";
|
||||
case "algorithms":
|
||||
return "#d50032";
|
||||
case "meditations":
|
||||
return "#6a0dad";
|
||||
default:
|
||||
return "#000000";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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`;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue