Syllabus for upcoming course on web development in Racket

While trying to get a final version of 27 Short Lessons on Web Programming in Racket, I found that there were some topics that kept getting cut out. But when I looked at the chopping block, I realized that there were some topics that are just too important. It hurt too much to cut them. So I put them back in (though some still did get cut). What used to be 27 lessons has now gone up to 39. Here's the syllabus, then, for 39 Short Lessons on Web Programming in Racket. The items in normal type are intended to be about the web, and be useful independent of Racket. The italic items treat the preceding topic in Racket.

  1. URIs: Names for things on the web
  2. The url struct
  3. HTTP messages: Request & response
  4. Can you handle these bytes?
  5. The request & response structs
  6. HTTP servers make the world go 'round
  7. Making servers with serve/servlet
  8. dispatch-rules: A DSL for URI-based dispatching
  9. Serving static content
  10. The data of the web, or: The medium of the message
  11. Setting the MIME type of a response
  12. HTML: A markup language for hypermedia
  13. DIY: format, string-append, ~a & friends
  14. The handy txexpr library
  15. Fast templating with include-template
  16. JSON: A practical data format inspired by JavaScript
  17. Using Racket's json library
  18. CSS: A language with (and for) style
  19. css-expr: A DSL for CSS
  20. JavaScript: Scripting HTML
  21. Generating JavaScript with urlang
  22. XML
  23. xexprs: XML à la Racket
  24. Images
  25. Generating images dynamically with racket/draw
  26. Forms: Input at last
  27. Handling forms directly as bindings
  28. formlet: An HTML form DSL
  29. XmlHttpRequest: The jazzy way to get input
  30. Handling XmlHttpRequests on the server
  31. Cookies: A very tasty header, or: What state is this?
  32. Generating cookies and accepting cookies with net/cookie
  33. HTTPS: Encrypting your HTTP connection
  34. Attaching a certificate to your server
  35. When servers fail (and they will)
  36. Testing your servlets with rackunit
  37. Logging to achieve some visibility
  38. Authentication, or: Can you come in? Who are you?
  39. Adding authentication to a Racket web app

These lessons overlap somewhat with those of Server: Racket, but many are new, such as the lessons on HTTPS, authentication, and formlet. In any case, 39 Short Lessons on Web Programming in Racket intends to be a book for beginners to the web. Although it is not a complete course on all of web programming (a truly ambitious task!), quite a lot of the basics will be covered. Their Racket instantiations will be covered, too, again with a newcomer in mind.

If this looks useful to you, you can preorder a copy here. (Coming March 1, 2019.)