Goals
You should be able to :
- Describe the layers of a computer system
- Describe the concept of abstraction and its relationship to computing
- Describe the history of computer hardware and software
- Describe the changing role of the computer user
- Distinguish between systems programmers and application programmers
- Distinguish between computing as a tool and as a discipline
Computing Systems
- Some definitions
- Computer- a programmable electronic device that can store,
retrieve and process information.
- Computer Hardware - the physical elements that make up a computer
- Computer Software - a collection of programs that provide
instructions that a computer executes
- Data - information in a form that the computer can use.
- Computing System - Hardware, Software, and data which interact to
solve problems.
- Note all three pieces are important.
- Our authors would really like us to
- Gain a broad understanding of how computing systems work
- Develop an understanding of the evolution of modern computing systems
- Give you sufficient information to decide if computing is for you.
- Layers of a computing system
- Computing Systems, say our authors, are like onions (and ogres)
- They have layers
-
- You don't eat entire onions, you eat individual layers
- They propose to do the same thing with a computing system
- Study each of the different levels one at a time
- There are some basic principles at each layer
- When we bring them together, we get the big picture
- Information
- At one level a collection of 0 and 1
- or Binary Digits (BITS)
- We will study binary, and two other number systems as well (Chapter 2)
- These digits are used to encode data, or information
- We will discuss how this is done in Chapter 3
- Hardware
- The bits of junk that make up the computer
- Starting with a transistor and gates
- Circuits, and components
- Chapters 4 and 5
- Computer Architecture, Engineering, Physics
- Programming Layer
- A superlayer (multiple smaller layers)
- Machine Language (Ch 7)
- Assembly Language (Ch 7)
- Higher Level Languages (Ch 8)
- Problem Solving (Ch 6)
- Data Structures (Ch 9)
- Classes
- Assembly
- Principles of Programming (I,II)
- VB
- Compilers
- Data Structures and Algorithms
- OS Layer
- Windows, Linux, VMS, ...
- What makes it so we can use the hardware
- a program that manages the resources of a computer
- Chapters 10, 11
- Operating Systems, Principles of Computer Operations
- The Application Layer
- The programs that we use
- Spreadsheets, Databases, Games, ...
- Simulations - weather prediction models
- Many classes in many disciplines
- Chapters 12, 13, 14
- The Communications Layer
- Networking
- The hardware and protocols (ch 15)
- And the applications (ch 16)
- Web Development, Networking
- And finally, what Can't computers do
- Details
- There are lots of them.
- This is a lifetime study?
- A merry-go-round
- Abstraction
- What is it?
- A model that removes complex details
- Model - moving into a new apartment, how do you plan this.
- Bunch of big people to pick stuff up and move it around?
- Paper cutout?
- ???
- What works
- What doesn't
- The ability to think abstractly and to form abstractions
- Apparently we can have 7 +/- 2 bits of information in our short term memory at one time
- If we can't abstract, we get "lost in the details"
- This is important
- When using a program, we don't care about how it is run/written
- When writing a program we don't care how the data is stored
- When ...
- Next A history of computing
- Please read Chapter 1
- Please read the Ethical issues on page 27-29