Teaching People How To Design Programs and How To Code

There is this quite good EdX course developed by Gregor Kiczales, Professor of Computer Science at the University of British Columbia. It's called How to Code: Simple Data and it uses Racket and various modules from the book How to Design Programs by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt and Shriram Krishnamurthi. See this: Review: Introduction to Systematic Program Design – Part 1 and for more on HtDP, see Felleisen, Findler, Flatt, Krishnamurthi (Journal of Functional Programming) The Structure and Interpretation of the Computer Science Curriculum.

The method consists in writing a carefully selected number of concrete test cases as examples of basic constructions and then using them to test the fully abstract representation.

The approach seems, to me, to be almost total functional programming with dependent types. See Checking Dependent Types with Normalization by Evaluation: A Tutorial by David Thrane Christiansen. The early examples use an event-loop/world state model: see Worlds and the Universe "universe.rkt". This sort of thing ought to interest people trying to design secure online interactive web pages. See Automatically Restructuring Programs for the Web by Matthews, Findler, Graunke, Krishnamurthi and Felleisen.

This prompted me to look up Olivier Danvy's TDPE paper and now I understand what it's about. 

See Type-directed partial evaluation.

Comments

  1. Unfortunately or unfortunately soon all the problems will be listed and solved by ai. So, the programming language will natural language. I argued about it 6 or 7 years ago on meetups of Cambridge programmers study groupe and folks didn't believe it could happen in their carrier lifetime. So finally came llms, transformers, etc..

    ReplyDelete
  2. Well, I look forward to hearing from you when this happens!

    ReplyDelete
  3. Here's one problem with listing all the problems: https://eternaldoorman.blogspot.com/2024/08/jade-richards-paradox-in-one-minute.html

    ReplyDelete

Post a Comment

Popular posts from this blog

David Turner Obituary by Sarah Nicholas Fri 24 Nov 2023

Live Science - Leonardo da Vinci's Ancestry