I’m returning to the full-adder logic circuit modeling to present the code for a version that tries to capture the timing of the signals.
The goal is to take a closer look at the intermediate states of the adder as signals trickle through it.
14 Tuesday May 2019
Posted in CS101
I’m returning to the full-adder logic circuit modeling to present the code for a version that tries to capture the timing of the signals.
The goal is to take a closer look at the intermediate states of the adder as signals trickle through it.
10 Friday May 2019
Posted in Fun
Lately I’ve been exploring the idea of a vector space with a large number of dimensions (but few degrees of freedom). A model was presented with five degrees of freedom in 500 dimensions (neurons, as it happens).
The question is, given the axes are bit-level, does normal vector manipulation semantics make sense. My contention is it has severe problems.
08 Wednesday May 2019
Posted in CS101
This is the third post in the Full Adder series. The first post explored ways to code the abstract model of a full-adder. The second post explored one way to code a simulation of a physical system (where the models are of the components of the system).
This post explores another gate-based model, but one with only one type of gate. This simulation is close to being transistor-level.
07 Tuesday May 2019
Posted in CS101
In the last post, I explored different ways to model the logic of a full-adder. In this post I’ll explore a model of a physical instance of a full-adder — a model that simulates physical reality.
Because a full-adder is, at root, a mathematical expression, various software models can accomplish the same results. Models are abstractions, so the only thing a model can simulate perfectly is another model.
05 Sunday May 2019
Posted in CS101
Tags
finite state machine, FSA, FSM, full adder, half adder, Python code, state engine, state table, truth table
I was involved in a debate recently about whether a full adder logic circuit is a computer. The computer science answer is: “No, not as we define a computer.”
I plan to address that answer in detail on my main blog. Here I wanted to show some of the different ways a full adder can be modeled and implemented.
22 Friday Mar 2019
This is a companion post to the Math Games #1 post on my main blog.
Here I present some code (Python, of course) for exploring the first two games, multiplicative persistence and the Collatz conjecture.
01 Tuesday Jan 2019
Tags
To ring in the new year, I thought I’d play around with an old friend from my earliest programming days, a random text generator. Back then (over 30 years ago), but a little bit always, a good way to practice programming is by working on small, relatively easy, but still fun, programs.
Simple games are common choice, but not the only one. (I’ve probably written a version of Mastermind in every programming language I know.) Another fun choice is various image or text generators (or processors). Random text generators, in particular, offer a range of complexity depending on your taste and time.
14 Friday Sep 2018
Posted in Opinion
Tags
computer code, computer programmer, computer programming, real programmers, software design, software development, software industry
There’s a general ethic these days — that anyone can code — and like a lot of things, there’s some truth to it, but also some silliness. As usual, it really depends on what we mean by “anyone can code.”
If we mean it in the same way we might say, “anyone can drive,” I think it’s silly. But if we mean in the same way we might say, “anyone can doctor (or lawyer),” well, then I still think it’s silly.
11 Saturday Aug 2018
Tags
computer programming, computer science, program, software, software design, software development, software industry, xkcd
I cracked up when I saw this recent xkcd cartoon. Randall Munroe rarely fails to deliver, but this one especially caught my eye. It’s painfully on-point and quite dismaying on at least two points:
Firstly, that it should still be this bad given all the time, money, and attention, it has received is reason alone for dismay. Part of the problem here may be that we haven’t admitted how hard software is to get right.
But, secondly, software is central to our lives now — far more than airplanes, and even more likely than elevator rides. You might ride an elevator, at most, a dozen times a day, but software enters your life more times than that.
Especially if you use a mobile computing device!
02 Wednesday Aug 2017
Sometimes ya gotta laugh. I just spent nearly an hour chasing one of those bugs that “can’t be happening” because “the code looks absolutely correct (as far as I can tell).” Of course, the bug, once you find it, was always hiding in plain view.
This time the fix involved adding just two characters and incidentally improving the program semantics, and very much reminded me of the old joke about the huge cargo ship that breaks down at sea…
You must be logged in to post a comment.