Lecture 1   computer structure

what is computation?
definition of computer
abstraction level of computer organisation
computer and language
computer language
computer and society

what is computation?

computation is a process of transforming from sensed data to affect the real world through effectors.  

sensors
effectors
computation

what is computer?

a computer is a machine that performs computation.

computer organisation

There are layers of abstraction,

applications
operating systems
computer language
instruction set
functional units
circuits

Another view:  

software
-------------   instruction set
hardware

computer language

syntax
semantic
primitives

Pascal, C, C++, Java, C#, Flash, Javascript
(my contribution, Som and Nut)

programming paradigm

procedural (imperative)
  is based on step-by-step instructions
functional
  is based on algebra
logical
  is based on classical logic
object
  is based on components
(aspect)
  is based on views

imperative paradigm is the origin of computer language.  It has limit on the reuse, especially the use of program library.
object paradigm solved the problem of program library by providing mechanism to "reuse" programs via inheritance and encapsulation.
functional paradigm promotes the model of program as algebra hence it is possible of reason about correctness of programs.  The use of function abstraction allows composing of functions.
logical paradigm lets programmers specify what to be computed and leaves how to compute to the computer system (via logical deduction).

language implementation

compiler -- the executable code is a static object, the object is preconstructed.
interpreter (virtual machine) -- dynamic executable object, can be created on the fly.

language design

machine efficiency
human efficiency