Computer Fluency Assessment

How do we assess an individual’s fluency with computers? We’re gonna go a little deeper than ability to use Microsoft Word…

There’s a point, in knowledge and skill in the field of computer science, when programming languages mostly start to look and feel similar. “Learning a new language” is more like learning the peculiarities of a dialect of some language you already speak, than switching from English to Russian. When laypeople ask if you know a certain programming language, one which you do not already know, it occurs to you that answering in the negative would not be entirely correct. You can probably code passably in that language with only an afternoon on Stack Overflow.

This point is computer fluency. How can we assess individuals to determine their computer fluency?

The complexity of computer systems is enabled by being constructed of layers upon layers – user-interactive software executing in a user-mode interpreter, executing on an operating system, running on a hardware architecture implemented by processor microcode, which is all built on transistors turning on and off. Then there are network stacks, user interface stacks, operating system API stacks, hardware interface stacks… These all enable the overall computer system. Fluency in each layer and field is a precursor to “computer fluency”.

Too many variants of each layer and field exist to be enumerated, though. It’s unreasonable, and unnecessary, for one individual to be fluent or even aware of all of them. Well before an individual becomes acquainted with the breadth of technologies at any layer, one can form a deep understanding of the layer. That’s because most of these technologies implement the same functionality.

At what point is it possible to prove that an individual has a deep understanding of a layer? When they are capable of constructing, analyzing, and evaluating that layer, they demonstrate mastery over it.

This is demonstration of the higher levels of cognitive activity in Bloom’s Taxonomy. Computer science degrees, and the professional requirements for computer scientists/engineers, focus on skills applied at all layers of a computer system. Operating system courses are a grueling and excellent example of this, as are microprocessor courses. These courses typically include assessments via laboratory assignment, where students are graded on their ability to create things that meet a set of requirements. Often the requirements must be gleaned by analysis of adjacent, existing system layers. During the span of both OS and microprocessor classes, students typically demonstrate the ability to create multiple layers of computer system. This contrasts with networking and individual programming language courses, where one class demonstrating even the breadth of one layer is rare. Typically these courses are geared more towards providing an introduction to a topic, so students can build upon that in further courses. The courses are also typically encountered earlier-on.

To assess an individual’s computer fluency, we must require them to create and analyze a diverse set of computer system layers. Further, individuals must create and analyze systems that are not already familiar to them.

Some of the layers individuals must be assessed in, then:

  • Analog circuit design and analysis
  • Logic gate-level design and analysis
  • Electronic communication design and analysis
  • Computer architecture design and analysis
  • Microprocessor-level programming and analysis
  • Operating system-level programming and analysis
  • Network design and analysis at the internetwork and transport layers
  • Network design and analysis at the application layer
  • Functional language programming and analysis
  • Object-oriented language programming and analysis
  • High-level programming language programming and analysis
  • Distributed, diverse language and architecture, system design and analysis

That’s a very large set of knowledge required for full computer fluency. It’s daunting.

I assert that at least basic fluency with each layer is necessary and sufficient for understanding of all deterministic functioning of a computer.

Assessing ability at each of these layers requires a diverse set of exercises which involve constructing and analyzing the layers. Also critical is that assessment be performed using languages individuals are not already familiar with. This is not an assessment of ability in any one programming language, for instance… Computer fluency is language agnostic, by definition, and therefore the tests must be also.

Which layers am I missing? I’m sure there are a few. A knowledge of C, or a C-like language is part of operating system-level programming and analysis, or microprocessor-level programming and analysis. Assembly-languages are there at the microprocessor layer… I call those skills out because professionals often lament their absence in many modern computer science curricula. However, an assessment of ability at the OS and microprocessor layers must be programming language agnostic. Artificial intelligence concepts are missing here, as are mentions of data structures and algorithms, although the latter two would be critical for many of the layers. AI is a layer on top of the computer, and separate. The consciousness running on the underlying body.

Just some thoughts here – I would love to develop a set of tests which comprehensively demonstrate computer fluency. Tell me which other skills would have to be demonstrated to accomplish that.

Sourdough Part Trace

Time to make more sourdough! One week later, the last loaf is gone. It was great, so I’m going to try to do that again. Even though the dough was a bit too fluid for me, the result was great, so I’m going to measure with the weights again.

Evening, 17 May: did the pre-ferment.

All In

0810, 18 May: things are smelling great! I put the rest of the ingredients together and mixed them up. Got all measurements very close.

Ready to Start Bulk Rise

1040: Finished kneading.

Risen Enough

1530: Finished bulk rise, it’s between 1.5 and double the original size, I’d say. When putting it into the pan, it’s definitely more sticky and less solid that previous breads except the last one, which turned out so well. Should bake around 1930.

Starting to Rise in Pan
Ready to Bake

1900: it’s ready, let’s do this!

1940: Dis bread.

Yarp

This loaf is fantastic. The density is great, although even lighter would be amazing. The flavor is just awesome. I’ll have to see how far I can push the rise next time…

Sourdough Part Doughs

Gonna try to make it lighter this time by catching it at peak rise.

1900, 10 May: made pre-ferment. Measured by weight, which resulted in less ingredients by volume than he recommends.

0945, 11 May: added rest of flour and ingredients.

1145: finished stretching/folding.

1700: it still hasn’t risen as much as I’d hope for. It’s certainly risen, but it’s taking its time.

1900: the book recommends letting it increase by 50% by volume. Has this increased in volume by 50%? Maybe. Hard to say. Based on height compared to splatter in the bowl, I’d guess that it has. Time for the next step.

Has This Risen Enough?
In Da Pan – For Final Rise

It’s kindof a wet mess tonight. It has been moister than last time at each stretching, and now it’s quite sticky. It really didn’t take shaping. If I had any experience making bread, I would’ve added more flour I think. It just doesn’t seem like the right consistency, but I’m gonna let it go this time and see what I get.

And I got a taste of the dough – quite sour too! At least that’s right.

No time to final rise and bake tonight, anymore, will have to let it sit in the fridge until tomorrow.

Late afternoon, 12 May: took the bread out of the fridge, let it warm up, then baked it.

It has clearly risen a bit more

The dough still seemed too wet this afternoon, but everything seems to have baked well.

The result is… Pretty great! Nicely sour I think, light enough as shown by the great looking hole distribution in there… I really don’t have any negatives right now.

Sourdough Bread

I made a couple loaves of bread a couple weeks ago, based on a recipe in this book Sarah asked for, Josie Baker Bread. It was good, but actually not as good as when Sarah makes bread out of the book. Mine was not mixed uniformly (the two types of flour were a little noticeable in the end product), and it was saltier than it should have been. When Sarah makes bread from these recipes, it comes out amazing. Like, I’ve eaten half a loaf immediately and only stopped because sense eventually creeped into my head again. It’s great bread.

I’ve always been interested in the raise-your-own-yeast thing. Whether for bread, beer, or whiskey, yeast is the magical ingredient that invents flavors and alcohol and texture out of biological process and chemistry alone. That’s pretty awesome.

So, my goal by reading this guy’s book was to make good sourdough. Besides being interested in growing yeast, I also love sourdough. Like, strong sourdough. When you move around frequently, it’s not easy to keep finding a good sourdough source. Trader Joe’s is pretty great though…

Anyway, I’m making sourdough in this post.

I started a starter a couple weeks ago. Basically, mix 1/2 cup whole wheat flour (all flour here is King Arthur brand) and 1/2 cup cool water together in a jar with lid askew on your counter. Let it sit. Every two days throw out all but about 1 Tbsp, then mix in that same flour and water. After a day we had bacterial and yeast growth, evidenced by the growth of the mix. After a week the mix stopped smelling like fart fruit. A little longer and it smelled like yeast-y acetone.

3 May, 0600: fed the starter in anticipation of doing pre-ferment this night.

1930: setup bread pre-ferment based on book’s first sourdough recipe.

4 May, 0800: mixed dough first step, using bread flour. The pre-ferment was acetone-smelling, which may mean I let it sit too long, and the yeast consumed all the food. Maybe this is fine though, and will produce a particularly strong sourdough. I was careful about mixing well, for uniformity. Also, I measured salt fairly carefully. Salt was just Morton’s iodized, though, we’re out of sea salt. We gotta get more sea salt from Costco.

0845: did the dough folding technique. Will do four more times or so, at 30 minute increments. Dough smelled good this first time.

1015: did fourth and last folding. Now will let it sit for several hours doing bulk rise. In the meantime we’re going to walk the dog, then go hiking near DC.

1530: put it in the bread pan!

2010: put it in the oven… It’s not as risen as it should be. I think I missed the peak of rising and it fell while we were out.

2110: it wasn’t as risen as it should be. The result was a little too dense, but still good. The sour-ness was not quite where I wanted it, but pretty good still…

I think next time I need to watch the rises and catch them at the peak. Still tasty bread.