In various places on this blog, I’ve mentioned courses that I took as a non-degree student at UofT:

- Quantum Physics I (PHY356H1F), taught by Prof. Vatche Deyirmenjian, fall 2010.
- Relativistic Electrodynamics (PHY450H1S), taught by Prof. Erich Poppitz, spring 2011.
- Quantum Physics II (PHY456H1F), taught 2011 by Prof. John E. Sipe, fall 2011.
- Continuum Mechanics (PHY454H1S), taught by Prof. Kausik S. Das, spring 2012.
- Advanced Classical Optics (PHY485H1F), taught by Prof. Joseph H. Thywissen, fall 2012.
- Basic Statistical Mechanics (PHY452H1S), taught by Prof. Arun Paramekanti, spring 2013.
- Condensed Matter Physics (PHY487H1F), taught by Prof. Stephen Julian, fall 2013.

I was recently asked what a non-degree student was, which is a good question, because I think it is a fairly obscure educational path. Here is how UofT describes their non-degree option:

“Non-degree studies is for those with previous university experience who wish to upgrade their university record to qualify for graduate school, a professional program, or for personal interest. Non-degree students enrol in credit courses, for which they have the prerequisites, but are not proceeding towards a degree.”

There are limits of what you can take as a non-degree student. You cannot, for example, take graduate physics courses, nor any courses from engineering. The engineering restriction seems to be because engineering (and computer science, and a few other programs), have a higher price tag. The restriction against taking graduate physics courses as a non-degree student appeared to be arbitrary — I suspect that the grad physics administrator really didn’t want to be bothered, and was happy with the fact that somebody had once imposed that restriction. There also isn’t a large set of people that are clamoring to take grad physics courses just because they are interesting, which makes it easy not to care about removing that restriction.

When I started my non-degree courses, my work at IBM had started to become very routine, and I was seriously questioning my career choices. I’d started off with an interest in the sciences, especially physics, and somehow had ended up as a computer programmer!? At a point of reflection, it is easy to look back and say to your self “how the hell did that happen?” My work at IBM (DB2 LUW) was excellent work from a compensation point of view, and lots of it had been really fun, interesting, and challenging. However, the opportunities to learn on the job were limited, and I was generally feeling under utilized.

I ended up with an unexpected life change event, and took the opportunity to try to reset my career path. IBM offered a flex work program (i.e. 80% pay and hours), and I took used that program to go back to school part time. I ended up taking most of the interesting 4th year grad physics courses, except the two GR courses that I’d still like to take. I had put myself on the path for new employment in a scientific computing field (or perhaps PhD studies down the line. I figured that once I had filled in some of my knowledge gaps, I’d be able to find work that would allow me to both exploit my programming skills, work on a product that mattered, perhaps even learn (science) on the job.

Because I was aiming for scientific computing work, where I figured my 20 years of programming experience would be more relevant than an undergraduate physics degree, non-degree studies was an excellent fit for me. Like any other student in the classes I took, I attended lectures, did the problem sets and exams, and got a grade for each course.

What I didn’t get was any sort of credential for the courses I took. I did end up with 2500 pages of PDF notes for the classes that I took — in my eyes that’s as good as a 2nd degree, but if I did end up looking for that scientific computing work, I’d have to convince my employer of that.

I’m now done with my non-degree studies, and did a followup M.Eng degree so I could take some grad physics courses. This should be the time that I should be looking for that scientific computing work. Why didn’t I switch gears? Well, part way through my M.Eng, I got poached from IBM to work at LzLabs. My work at LzLabs has been way too much fun, and is going to be an awesome addition to our product once completed. A transition from a mega company like IBM to one with ~100 (?) employees wasn’t one that I expected, and perhaps I’ll still end up eventually with scientific computing work, but if that happens it will probably be in the far future. For now, I’m working at LzLabs full time, and not looking back.

I still have a strong affinity for physics, but my plan is to go back to unstructured recreational studies, on my own schedule, once again without any care of credentials.

]]>

Here’s an update of my old Condensed Matter Physics notes.

Along with a link to the notes, are instructions on building the PDF from the latex and the github clone commands required to make a copy of those sources. Mathematica notebooks are also available for some of the calculations and plots.

]]>Here’s an update of my old classical optics notes. Along with a link to the notes, are instructions on building the PDF from the latex and the github clone commands required to make a copy of those sources. Mathematica notebooks are also available for some of the calculations and plots.

Looks like most of the figures were hand drawn, but that was the only practical option, as this class was very visual.

]]>Look what I found for $2 at the public library in the no-longer-circulating discard bin

Can you believe that a book like this wasn’t flying off the shelves and ended up in the for sale box?!

So far I quite like it, as it has a number of examples of bad COBOL style, and what you should do instead. Example:

Ways to make COBOL source code burn your eyes less are much appreciated. The first sample above definitely mandates a trip to the eye wash station.

]]>I’ve posted a refreshed version of my old fluid mechanics course notes (aka Continuum mechanics). Also included are instructions to clone the git repositories, and make the pdf from the latex sources (which would allow customization if desired).

]]>I’ve posted a minor update to my old stat mech notes, plus instructions on how to clone the github repos and the latex, should somebody wish to attempt to fork these notes for their own purposes. Enjoy!

]]>This blog now has a copy of all my Mathematica notebooks (as of Feb 10, 2019), complete with a chronological index. I hadn’t updated that index since 2014, and it was quite stale.

I’ve also added an additional level of per-directory indexing. For example, you can now look at just the notebooks for my book, Geometric Algebra for Electrical Engineers. That was possible before, but you would have had to clone the entire git repository to be able to do so easily.

This update includes a new notebook written today, which has a Manipulate visualization of 3D bivector addition that is kind of fun.

Bivector addition, at least in 3D, can be done graphically almost like vector addition. Instead of trying to add the planes (which can be done, as in the neat illustration in Geometric Algebra for Computer Science), you can do the task more simply by connecting the normals head to tail, where each of the normals are scaled by the area of the bivector (i.e. it’s absolute magnitude). The resulting bivector has an area equal to the length of that sum of normals, and a “direction” perpendicular to that resulting normal. This fun little Manipulate lets you interactively visualize this process, by changing the radius of a set of summed bivectors, each oriented in a different direction, and observing the effects of doing so.

Of course, you can interpret this visualization as nothing more than a representation of addition of cross products, if you were to interpret the vector representing a cross product as an oriented area with a normal equal to that cross product (where the normal’s magnitude equals the area, as in this bivector addition visualization.) This works out nicely because of the duality relationship between the cross and wedge product, and the duality relationship between 3D bivectors and their normals.

]]>I’ve updated the pdf for my old phy450 notes (Relativistic Electrodynamics) from the current latex sources. Also included on that page are a contents listing, and instructions for forking the git repos. That should allow for building the pdf from the latex, so if somebody had changes they’d like to make, either for themselves or as feedback, they should be able to do so.

]]>The current draft of my book really ought to have some motivation in the preface. This is what I was thinking of.

When you first learned vector algebra you learned how to add and subtract vectors, and probably asked your instructor if it was possible to multiply vectors. Had you done so, you would have been told either “No”, or a qualified “No, but we can do multiplication like operations, the dot and cross products.” This book is based on a different answer, “Yes.” A set of rules that define a coherent multiplication operation are provided.

Were you ever bothered by the fact that the cross product was only defined in three dimensions, or had a nagging intuition that the dot and cross products were related somehow? The dot product and cross product seem to be complimentary, with the dot product encoding a projection operation (how much of a vector lies in the direction of another), and the magnitude of the cross product providing a rejection operation (how much of a vector is perpendicular to the direction of another). These projection and rejection operations should be perfectly well defined in 2, 4, or N dimemsions, not just 3. In this book you will see how to generalize the cross product to N dimensions, and how this more general product (the wedge product) is useful even in the two and three dimensional problems that are of interest for physical problems (like electromagnetism.) You will also see how the dot, cross (and wedge) products are all related to the vector multiplication operation of geometric algebra.

When you studied vector calculus, did the collection of Stokes’s, Green’s and Divergence operations available seem too random, like there ought to be a higher level structure that described all these similar operations? It turns out that such structure is available in the both the language of differential forms, and that of tensor calculus. We’d like a toolbox that doesn’t require expressing vectors as differentials, or resorting to coordinates. Not only does geometric calculus provides such a toolbox, it also provides the tools required to operate on functions of vector products, which has profound applications to electromagnetism.

Were you offended by the crazy mix of signs, dots and cross products in Maxwell’s equations? The geometric algebra form of Maxwells’s equation resolves that crazy mix, expressing Maxwell’s equations as a single equation. The formalism of tensor algebra and differential forms also provide simpler ways of expressing Maxwell’s equations, but are arguably harder to relate to the vector algebra formalism so familiar to electric engineers and physics practitioners. In this book, you will see how to work with the geometric algebra form of Maxwell’s equation, and how to relate these new techniques to familiar methods.

]]>Edition 0.1.14 of my first book, Geometric Algebra for Electrical Engineers is now available, in a variety of pricing options:

- in color, for $40 USD,
- in black and white, for $12 USD,
- an e-book from leanpub for $5+ (set your own price)
- or as a PDF, for $0,
- or as latex from github, for $0.

Both paper versions are softcover, and have a 6×9″ format, whereas the PDF is formatted as letter size. The leanpub version was made when I had the erroneous impression that it was a print on demand service like kindle-direct-publishing (aka createspace.) — it’s not, but the set your own price aspect of their service is kind of neat, so I’ve left it up.

If you download the free PDF or buy the black and white version, and feel undercharged, feel free to send some bitcoin my way.

]]>