- Projects
- NotesLogic, the natural numbers and computabilityAlgebraReal analysis, complex analysis, variational calculus and functionalsGeometryNon-relativistic field theoryRigid body physicsComputer science, integer RISC instructions (RV64I) and building a hex and macro assemblerAlgorithms for integer multiplication and division, and floating point arithmeticFreestanding C, and building C compiler in assembly then CData structures and algorithmsUnivariate probabilityMultivariate probabilityMultivariate probability discriminative including machine learningFully-connected neural networksUnivariate time seriesMultivariate time seriesMultivariate probability inferenceProbabilistic Turing machines and algorithms, and encryptionStatistical mechanicsRelativistic field theoryQuantum mechanics and quantum computingChemistry and geologyBiologyEngineeringElectronicsManufacturing RV64I CPUs, boot ROMS/firmware (mask ROM/diode matrix), punch cards, memory mapped IO for LEDs, volatile RAM (SRAM and DRAM) and micro-architecture including cache, prefetching, instruction pipelines, branch prediction, out-of-order execution and speculative executionControl additions (RV64I_Zicsr_Zifencei) Integer multiplication (RV64IM_Zicsr_Zifencei) Floating Point Units (FPUs) (RV64IMFDQ_Zicsr_Zifencei), Single Instruction, Multiple Data (SIMD) (RV64IMFDQV_Zicsr_Zifencei) and BLASOther Reduced Instruction Set Computers (RISC) and Complex Instruction Set Computers (CISC)2D graphics, keyboards, terminals, printers and controllersNon-volatile editable memory: bootloaders and computer storage including magnetic memory (magnetic core memory, magnetic tape, floppy disks, hard drives), Semiconductor memory incuding SSD (EPROM/EEPROM/flash memory), optical memory (CD/DVD etc)NetworksAudio3D graphicsMultithreading and multi-core CPUs (RV64IMFDQVA_Zicsr_Zifencei aka RV64GQV)Graphics Processing Units (GPUs) and Tensor Processing Units (TPUs)RV64GQV_S, Memory Mapping Units (MMUs), Address Generation Units (AGUs), protection rings CPU interrupts and GNU/Linux/SystemdHosted C and compiling C code with LinuxSecuring the system and boot process: Including encrypting systems, Logical Volume Management (LVM), trusted execution environment, secure enclave, Supervisor Mode Access PreventionNetworks on LinuxAudio and video output in Linux, and sandboxing applicationsSerialisation, single-node databases, Structured Query Language (SQL) and Extract-Transform-Load/Extract-Load-TransformOther imperative languages: Fortran, Algol, PascalC++, objects, generic programming functional programming and clang/LLVMOther C-family languages: Rust, ZigScheme and Common Lisp (compiled natively), and dynamic typingOther compiled languages: Objective-C, Nim, Forth, COBOL, Smalltalk and SimulaCommunicating sequential processes (CSP) and actor model concurrent languages: Swift, GoC\#, F\#, VB.NET and monoJava, garbage collection, process virtual machines and KotlinOther Lisp-family languages, and compiling them to VM: Racket, Clojure and ScalaCommunicating sequential processes (CSP) and actor model concurrent languages with virual machines: The BEAM VM and Erlang, ElixerFunctional languages: Meta Language (ML), Caml, OCaml and HaskellPythonPython: DataPython: Internet packagesOther interpreted languages: STATA, Lua, Perl, Ruby, Julia, Octave, PHP and FreeBASICHyperText Markup Language (HTML), Cascading Style Sheets (CSS) and the World Wide Web (WWW)JavaScript, Just-In-Time compilation (JIT) and WebAssembly (Wasm)Server-side javascript and javascript frameworks and librariesRSpecific packages for RValidating code and compilers: Coq (ocaml), compcert, hol (ocaml), isabelle, agda (haskell)Logical programming languages including ada and prologReverse engineering hardware, backing up ROMs, hardware emulation, and emulation of retro video game systemsReverse engineering softwareStatistics text, including large language modelsStatistics for audio with text, and multi-modal modelsComputer visionWorking with specific datasets, and models including Llama and Stable DiffusionSpecific Linux distributions, system virtual machines, RV64GQVH_S, hardware-assisted virtualisation and OS-level virtualisation with DockerDistributed computingIntegrated Development Environments (IDEs)AndroidMicrosoft Disk Operating System (MS-DOS) and other non-multitasking operating systems including ZX BASIC, Classic MacOS, PC88, PC98, MSX, Machine Operating System for BBC Micro, Commadore 64FreeBSD and OpenBSDWindows 3.x, Windows 9x and Windows NTmacOS and iOSDecision and game theoryGeneral equilibriumIndustrial organisationMoney, banking and financeMicroeconomicsMacroeconomicsPublic choiceLanguages and packages for economics: Dynare for Octave, QuantEcon for Python/Julia; NetLogo; Mesa for PythonHistoryEpistemology and ontologyPolitical science and philosophy

Events, the probability function and the Kolgomorov axioms

Conditional probability and Bayes' theorem

Expected value, conditional expectation and Jensen's inequality

Markov's inequality and Chebyshev's inequality

Degenerate, Bernoulli and categorical distributions

Simple continuous distributions

Independent and identically distributed variables

The central limit theorem and the gaussian/normal distribution

Totals of independent draws: Binominal and Poisson distributions

Time between draws: geometric and exponential distributions

Latent class analysis and the expectation-maximisation algorithm

Summary statistics and visualisation for one variable

Testing population means with Z-tests and T-tests

Non-parametric estimation of probability distributions

Point estimates of probability distributions

The score, Fisher information and orthogonality

Maximum Likelihood Estimation (MLE)

Maximum A-Priori (MAP) estimation

Testing generative parameter estimates with Z-tests and T-tests