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