Online courses and math notes

Up until recently (as of 2017) I was sceptical about online courses: they seemed inefficient, possibly influenced by traditions, similar to talks with slides. At first it takes plenty of effort to prepare a video lecture, and then it may be considerably more complicated to extract information out of it, compared to a textbook or an article.

And maybe it is not optimal, but there are good parts as well. Particularly about the methods they use, such as frequent tests mixed with new material. Textbooks tend to lack puzzles or solutions, the structure rarely suggests where to take a break, and varies from book to book, while in courses there usually is a plan that includes both timing and exercises. Maybe it would be better if the courses were in LaTeX (or programming languages and theorem provers when appropriate) instead of videos, while preserving the useful parts. Though there are textbooks that are like that, basically containing courses.

This note grew into a collection of links and notes on self-study, along with a software setup for that.

"Learning how to learn"

After seeing "Ask HN: How to learn new things better?", I decided to try the "Learning How to Learn" course on Coursera (which is apparently blocked in Russia via TSPU, based on DPI, as of 2024). Before that, I thought that the courses are restricted in time (with start/end dates), but apparently not all of them are: one can just jump into it and go through a course anytime.

That particular course was quite interesting; the somewhat scary 4 weeks took a day to complete, though that's the opposite of what that course suggests doing (i.e., not cramming the material, spacing, interleaving, etc).

But the expected unpleasant bits are also there: sound level varies among videos, it's rather hard to find a particular part of it if one would want to review it later, Coursera UI is broken because they are reinventing even hyperlinks and page loading. Some bits of that course are scripted, which apparently took more of the lecturer time than it should have, while in others you just watch a man being interviewed, trying to put his thoughts together: probably it would be less stressful for him, would take less of his time (assuming that the interview requires some preparation), and would lead to a better structured message if he just wrote it down instead of replying in real time.

Nevertheless, the course was also funny. And somewhat cute and sad in the end (there is a spoiler further in this sentence), where a man from a video record concludes the course with "We've learned from you as we hoped you've learned from us".

Calculus One

Inspired by that course, I decided to try something more serious, yet basic still – so it wouldn't take too much time. Chose Calculus One, and it turned out to be fun, though not without its quirks and errors. But the teacher there really tries to make it fun, and often succeeds; that seems to be useful for students to stay engaged. That's one of the aspects in which a video may be better than a book (although there are jokes in some textbooks and technical manuals as well).

The course includes plenty of nice examples (applications), which seems to be quite useful, but often not present in educational materials.

Its 16 "weeks" took me 11-12 days and about 2500 lines of LaTeX to complete, so apparently one could do a few of those courses simultaneously to stay on their intended schedules, or simply fit one into a schedule filled with other activities.

The separation of weeks, as well as the way it resembles a game by assigning internet points, requires less discipline to maintain perseverance, and to actually work through all the tasks.

Going through a calculus course now surprised me with an observation that the involved continuous functions and approximations point to a non-discrete, pre-digital age, bringing steampunk themes to mind.

Math notes

I like to do things using a computer, and some math problems can be worked on using a programming language: with symbolic computations, with dependent types for certain proofs, with handy functions for calculations in a particular domain, or pretty much any if it is about implementing algorithms. Or just by writing things down in a text file. But for some problems (for analysis in particular) a rather complex notation without much of computations is needed, and though it is just a convention, it is much easier to read it once one is used to it.

I used to assume that LaTeX would be cumbersome to use for actual problem solving, yet it turned out to be handy with preview-latex, at least while touch typing and having some previous experience with LaTeX. Later, with a newer org-mode version and on Debian, I only had to configure org-mode's built-in LaTeX preview and CDLaTeX mode for snippets. Org is also convenient for embedding executable code adn its results, particularly for solving equations numerically, calculating series, evaluating integrals with SymPy, Octave (and its symbolic package), or similar systems. The relevant org-mode configuration:

(setq org-preview-latex-default-process 'dvisvgm
    org-babel-python-command "python3")
(with-eval-after-load 'org
  (plist-put org-format-latex-options :scale 1.5)
  (require 'ob-python))

The result is captured in the screenshot of org-mode with LaTeX preview, SVG images, Python code.

Also had to install texlive-plain-generic, auctex, and texlive-latex-extra for preview-latex in latex-mode. Maybe it would have been faster with handwriting though. While SymPy and Octave can output LaTeX (and there are various other output options, including textual rendering similar to ASCII art), while also being usable for calculations and plotting.

I tried to use TikZ for drawings (which required to add \PreviewEnvironment{tikzpicture} into the preview-latex default preamble), which works, but seems to take too long to compose a drawing; Inkscape seems to be more practical and interactive.

There are asymptote, R, and others, which may draw images out of their descriptions, and org-mode can embed their results along with sources. But I have not tried to use those for such exercises yet.

A similar setup is described in the "How I'm able to take notes in mathematics lectures using LaTeX and Vim" article.

Linear algebra

A bit off-topic, but I've continued to re-learn and refresh maths basics with linear algebra, trying to apply what's described above; used a free (libre, even) Linear Algebra book (that provides exercises, answers to those, and even some kind of a plan), in combination with 3Blue1Brown's videos on essence of linear algebra (there are series on essence of calculus as well) and it seems to be useful to combine: the book lacks visualisations and geometric interpretations (which make much more sense than plain definitions, and make things clearer), while the videos lack exact definitions, proofs, etc, only aiming to provide insights, so they complement each other well. MIT OCW's Linear Algebra lectures by Gilbert Strang seem very nice too: for both building an intuition and learning some material. "Functions are Vectors" is just a single post on functional analysis, but still neat. Plenty of blogs and other resources with nice explanations around: e.g., Math is Fun (works well as a cheatsheet, too), The Palindrome.

I've noticed it in the past though, particularly with topology: the books are often bad in helping to get insights, but in that case it was harder to find helpful visualisations – though the few I did find were indeed helpful.

On the topic of libre books, there also are Abstract Algebra book, an Online Mathematics Textbooks collection, a Graphical Linear Algebra blog. Mathematics: Its Contents, Methods, and Meaning (original title: "Математика, ее содержание, методы и значение", 1956) may be worth highlighting as a nice and freely available book that covers multiple areas. And the Applied Category Theory Course, along with Seven Sketches in Compositionality: An Invitation to Applied Category Theory. Perhaps Linear Algebra Done Wrong, and Linear Algebra Done Right. An Introduction to Measure Theory, too.

Since I started collecting rather diverse learning materials here, here is another one: BetterExplained, brief and nicely written maths explanations. Mostly linear algebra and calculus. "Ask HN: Serious mathematics books that can replace a good teacher?" is an interesting collection of book references and a discussion, with more links. Calculus Made Easy looks like a nice (and perhaps indeed easy) calculus introduction, with exercises. While Elementary Calculus: An Infinitesimal Approach does not seem as easy, relying on the more rigorous nonstandard analysis, but it is also nice and freely available.

Other video courses

There's a youtube "crashcourse" channel with various not-quite-techy but fun mini-courses. MIT OpenCourseWare provides freely available (under a CC license, even) lecture videos and some additional materials (including problem sets) along with those. OSSU composes freely available materials into courses. And there's more resources like that around.

Physics

Since I collect assorted freely available learning materials in this note, here are some on physics as well: The Physics Classroom, Khan Academy (includes gamified online physics courses, and not just physics). OpenStax provides good textbooks on physics, on other sciences, as well as on mathematics, under the CC BY license, apparently mirroring good non-freely-available ones sometimes. They are handy as digital documents, though using the CNXML sources for printing may be tricky. And there are websites with problems and guides, like StickMan Physics, Science Notes and Projects, PhysicsLAB, The Physics Hypertextbook.

Statistics/ML

This section used to be a separate note, focused more on tools and application, but now it is merged into this one.

There are many books on statistics (including machine learning), but I'm not sure which ones are worth highlighting. Links to easily and freely accessible ones that I've collected either don't work anymore, or were paywalled, or are otherwise inaccessible. Though there are maintained lists of both papers and tools, such as awesome-machine-learning.

As for the tools (and personal opinions on those), Python and TensorFlow are popular for this, though TensorFlow seems to be useful for optimisation, not just for playing and learning: for that it's just very awkward, and basically a construction of AST of another language using a Python API. Scikit-learn is a nice and easily usable Python library. Though in order to get and poke arbitrary pre-trained models, or even some of the mentioned tools, one may have to grab and manually build/install software from untrusted sources: as specialised software in general, it tends to be quite messy.

Octave, R, and Julia are more specialised languages, with many specialised libraries, and are quite handy for these kinds of tasks. While reading books, one can simultaneously try/apply newly learned things with those languages.

Perhaps not exactly a course, but the Valerio Velardo - The Sound of AI YouTube channel contains nice explanations and sensible tips, particularly on applying ML to audio.

Numerical analysis software

Numerical analysis software can be useful for a hands-on experience: playing with plotted functions, trying out the bits you are learning, without spending time on calculating or plotting those manually. There are simpler graphing calculators for that, and plenty of software systems too: in addition to the aftorementioned Python (with matplotlib, NumPy, SciPy, SymPy, and many other handy libraries), Octave, R, and Julia, there are Euler, Maxima, and more.

Most of these systems (except for Python libraries) are basically a custom language and its infrastructure. While Python is a general-purpose language with relatively good libraries, though many of those still feel hacky: it seems that a Lisp family language would be a much better fit for many of those tasks. But as for now, Python looks like a good option.

Interactive textbooks

Interactive textbooks are an interesting subject. They can be written mostly as comments for source code, possibly with problems to solve that can be evaluated and checked at once (e.g., Software Foundations for Coq), but there also are efforts to make interactive textbooks without relation to computer programming, such as immersive linear algebra and Mathigon, though accessibility is usually rather poor on those. Words and Buttons is somewhat similar, with its interactive animations, and linking more websites along those lines.

Textbook collections

Further away from the topic, but there are nice general book collections around: apart from the aforementioned OpenStax, there are LibreTexts, Wikibooks. Then there is the Wikipedia article on open textbooks, with additional references, and one may try searching for textbook sources (e.g., "textbook language:TeX" search on GitHub, finding books such as Introductory Physics: Building Models to Describe Our World). Also plenty of pirated ones, but these are open/public/libre.

See also

Not (just) courses, but I'm also collecting interesting YouTube channels (physics, crafts, etc) on the links page.

Physics and Mathematics Self-Study Project, based on MIT Open Courseware. Haven't tried it myself. Another physics self-study curriculum (which I have not tried yet, but it looks interesting): "So You Want to Learn Physics…" by Susan Rigetti (with similar guides on maths and philosophy self-study). While looking into physics, I went through Wikipedia articles with the list of textbooks in electromagnetism, list of textbooks on classical mechanics and quantum mechanics, and there are other lists with nice and popular textbooks; those lists look similar to the ones from the self-study curriculum.