These supplementary topics fall outside the progression of the core topics, though some are very important for programming literacy. “Regular expressions”, for instance, are something very useful for any practicing programmer. Each supplementary topic here specifies which other topics it expects as prerequisites.

The notes and quiz questions are originally in .doc format, and the slide presentations are originally in .pptx format. These documents use the fonts Inconsolata and Calibri (how to get Calibri on Linux.)

the Clojure language (unit 1)

Many regard Lisp as the most elegant of all languages, and Clojure is a particularly elegant recent variant of Lisp. Clojure gives us an opportunity to introduce functional programming, a style of programming in which we avoid “state change” as much as possible.

  • Lecture video: Youtube
  • Lecture slides: pdf, pptx
  • Notes: html, doc
  • Quiz questions: html, doc

regular expressions

forthcoming. Regular expressions (sometimes abbreviated as “regex”) are a sophisticated tool for finding patterns of characters in text. For instance, using a regular expression, I could easily remove from a text all instances of the word “curry” following the word “lemon”.

  • Lecture video: Youtube
  • Lecture slides: pdf, pptx
  • Notes: html, doc
  • Quiz questions: html, doc

assembly language

forthcoming. Assembly language represents the lowest level of programming. Here we’ll cover assembly language for x86 processors using the NASM assembler.

  • Lecture video: Youtube
  • Lecture slides: pdf, pptx
  • Notes: html, doc
  • Quiz questions: html, doc

information theory and data integrity

forthcoming. Basic information theory and simple techniques to verify the integrity of data.

  • Lecture video: Youtube
  • Lecture slides: pdf, pptx
  • Notes: html, doc
  • Quiz questions: html, doc

compression

forthcoming. How compression algorithms work.

  • Lecture video: Youtube
  • Lecture slides: pdf, pptx
  • Notes: html, doc
  • Quiz questions: html, doc

graphical interfaces

forthcoming. To write a program with a GUI (graphical user interface), a programmer uses a library called a GUI toolkit. We’ll focus on one such toolkit for Java called Swing.

  • Lecture video: Youtube
  • Lecture slides: pdf, pptx
  • Notes: html, doc
  • Quiz questions: html, doc

audio and images

forthcoming. Basics of how audio and images are represented as bits.

  • Lecture video: Youtube
  • Lecture slides: pdf, pptx
  • Notes: html, doc
  • Quiz questions: html, doc

Comments are closed.