Demystifying Computers

How They Really Work

Osher Lifelong Learning Institute
University of Illinois, Urbana-Champaign

Scott Badman, Instructor


Session 5: The Central Processing Unit (CPU), Part 2
                  Programming, Part 1


October 14, 2013


This evening we will finish the Central Processing Unit (CPU), and then we will look at the four operations that comprise almost all programming programming. Concurrently, we will trace the historical progress of programming, especially how programs have isolated complexity. We will use and expand the Nickel Counter program we saw in the last session.


Core Concepts

Simple logic is the basis of all computing.

The isolation of complexity using layers of abstraction

The fundamental principles that computers use to operate are amazingly simple -- the complexity is only in the implementation.

The fundamentals of computing have stayed remarkably stable since the 1950's, even though computers have become incredibly complex and sophisticated.

The four operations that comprise almost all programming programming, plus the ways to programs isolate complexity

Topics

Programming


Resources

NICKEL.ASM - Assembly Language version.

Nickel1.bas - High Level Language version (early BASIC program, which is similar to FORTRAN, without input or output)

Nickel1a.bas - same program written the way it would have been written in the mid 1960's

Nickel2.bas - same program with input and output

Deliv123.bas - example of how complicated subroutines can get.

Nickel3.bas - Structured Programming version, much easier to understand as a human being

NickelCounter.java - same program as NICKEL3.BAS written in the Java Programming Language

ChangeCounter.java without procedures

ChangeCounter.java Procedural Programming version, now with the remove procedure

ChangeCounter.java Object Oriented Programming version

ChangeCounter.java Graphic User Interface added to Object Oriented version