A site that starts with explaining NAND gates and from that basic principle teaches you how to build a complete computer.
Many common and unusual algorithms, implemented in Python as learning exercises. If you want to get a sense of what, say, data structures or fuzzy logic would look like in Python, this is a good place to start.
How to solve the 3x3 Rubik's Cube. Go back a couple of pages and you'll find the algorithms for the other variants.
Migen is a Python-based tool that automates further the VLSI design process. The Migen FHDL library replaces the event-driven paradigm with the notions of combinatorial and synchronous statements, has arithmetic rules that make integers always behave like mathematical integers, and most importantly allows the design's logic to be constructed by a Python program. This last point enables hardware designers to take advantage of the richness of the Python language - object oriented programming, function parameters, generators, operator overloading, libraries, etc. - to build well organized, reusable and elegant designs.
The Nand Game will take you though building a working computer, starting from the most basic components. It does not require any prerequisites, in particular it does not require any previous knowledge about computer architecture or software, and does not require math skills beyond addition and subtraction. It does require some patience - some of the tasks may take a while to solve.
Tools for carrying out Bayesian inference with Python. Uses Bayesian networks. Aims to be as extensible as possible. Only implements conjugate-exponential inference at this time.
Not as mysterious as you might think..
A suite of open source electronic design tools. Uses a GUI for schematic capture. Also capable of analog and digital simulation, generation of parts lists and export of PCB designs for fabrication.
An explanation of how the logic being IP routing works in a nutshell. Recommended!