Demystifying Computers

How They Really Work

Osher Lifelong Learning Institute
University of Illinois, Urbana-Champaign

Scott Badman, Instructor


Session 6: Programming, Part 2
                  Algorithms
                  The Logical Equivalence of Hardware and Software


October 21, 2013


This evening we will look at three related topics, programming, algorithms and how hardware can be replaced by software and software can be replaced by hardware.


Core Concepts

The isolation of complexity

Maintaining compatibility whenever possible, especially backwards compatibility

The logical equivalence of hardware and software

The importance of a good algorithm

The relationship of the structure of a program to it's algorithm, which is usually independent of the programming language

Virtual Machines can create a complete computer, in software, on a hardware computer.

Any software program can (in theory at least) be implemented directly on a hardware chip.

Topics


Algorithms

Logical Equivalence of Hardware and Software


Resources

Pseudocode - Selection Sort and Bubble Sort

Java demonstrations of sorting algorithms from www.sorting-algorithms.com

Selection Sort in multiple languages

Another good source of examples: http://rosettacode.org/wiki/Sorting_algorithms/Selection_sort

Bubble Sort in multiple languages

Another good source of examples: http://rosettacode.org/wiki/Sorting_algorithms/Bubble_sort

Good source of sort programs with a range of algorithms in a range of languages: http://en.wikibooks.org/wiki/Algorithm_Implementation/Sorting


Logical Equivalence of Hardware and Software (Power Point)

Logical Equivalence of Hardware and Software (pdf file)