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
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)