Pedagogical Downsides of Haskell 74 HN points • 11 Apr 23 🚌 Education Programming Pedagogy Teaching Teaching Haskell involves navigating through issues like explaining type classes and higher-order functions. The concept of lazy evaluation in Haskell can be difficult to understand without prior knowledge of lambda calculus. Haskell's purity and currying concepts, while useful, can be challenging for beginners to grasp.
How I Teach Algebraic Data Types 19 implied HN points • 23 Mar 23 🕹 Technology Programming Types Data Start teaching algebraic data types by explaining enums in languages like C or Java and then showing how to write an enum in Haskell. Introduce the concept of constructors in algebraic data types using a day-of-week datatype as a simple starting point. Explain sum types and product types as the basic building blocks to create more complex algebraic data types by combining both concepts.
Artificial neural networks are (most likely) not like the human brain 0 implied HN points • 30 May 23 🔬 Science Neural Networks Brain Misinformation The perceptron is not a mathematical model of a neuron, but rather inspired by it. Artificial neural networks do not work like the human brain. It's important to clarify the difference between being inspired by something and being a model of something when explaining neural networks.
Haskell: are package management and build tools over-engineered? 0 implied HN points • 06 Apr 23 🕹 Technology Programming Software Development Tools Haskell ecosystem has evolved with tools like GHC, Cabal, Stack, and ghcup. Installing Haskell on Windows has become more complex and less user-friendly over time. Ease of use for beginners in programming is essential to foster a love for coding.
What is next after typed functional programming? 0 implied HN points • 20 Mar 23 🕹 Technology Programming Functional programming concepts are now implemented in mainstream languages like C++, Python, and JavaScript. Immutability is valued in software development, especially in distributed applications. Type systems are advancing, with a shift towards more advanced type systems and verification-based ideas in mainstream languages.
Will ChatGPT replace programmers? 0 implied HN points • 22 Mar 23 🕹 Technology Programming AI Productivity Algorithms Security ChatGPT will improve programmer productivity like Stack Overflow did. It can help with finding and understanding error messages. ChatGPT can provide code for common tasks and well-known algorithms.
Large language models and teaching/grading/cheating 0 implied HN points • 17 Mar 23 🚌 Education Learning methods There are two main ways to learn: in school and on the job. Homework is meant for understanding, not just finding solutions. To prevent cheating, consider not grading homework, give in-class tasks, or have proctored exams.
Writing for myself 0 implied HN points • 17 Mar 23 🕹 Technology Programming Computer Science Philosophy The Substack is a personal space for writing thoughts and interesting findings. Topics covered include research, formal verification, programming, algorithms, and philosophical questions in computer science. Author also has another sub-stack focusing on teaching and learning algorithms.
The weird quest for making programming empirical 0 implied HN points • 14 Aug 23 🕹 Technology Programming Software Engineering Computer Science Many disciplines rely on experiments, but computer science has the luxury of understanding computers thoroughly. Software engineering is shifting towards an empirical approach, using tests and tweaks instead of deep thinking. The trend in the community seems to be favoring techniques that may not be resistant to deductive reasoning.