Nature of Computer Science
ES 26 Introduction to Computer Programming
Computer Science ●
What's the fuzz?
"Computer science is as much about computers as astronomy is about telescopes." - Edsger Dijkstra ➢
More than just programming
➢
More than just creating computer games
➢
More than just hacking
➢
➢
Not about literally fighting viruses by typing incredibly fast! Not about learning MS Word(TM)!
Computer Science ●
So what's the sad/happy truth? Computer Science is the systematic study of algorithmic processes that describe and transform information: their theory, analysis, design, efficiency, implementation, and application.
●
It incorporates the paradigms of ➢
Theory (Mathematics, analysis)
➢
Abstraction
➢
Engineering (Design)
Computer Engineering ●
●
Computer engineering (CEN) is the design and prototyping of computing devices and systems. concentrates its effort on the ways in which computing ideas are mapped into working physical systems.
Computer Scientist slash Painter The inspiration.
●
Problems!According to the Computer Sciences Accreditation Board (CSAB) the ff. fields are considered to be crucial to the discipline: ➢
➢
➢
➢
Theory of Computation – Can we compute this? Can we compute this better? Algorithms and Data Structures – How do we solve problems? How do we represent data? Programming Methodology and Languages – How do we represent solutions? Computer Elements and Architecture – How do we implement representations?
Other Notable Fields ●
software engineering
●
artificial intelligence
●
computer networking and communication
●
database systems
●
parallel computation
●
distributed computation
●
computer-human interaction
●
computer graphics
●
operating systems
●
numerical and symbolic computation
Computer Scientist slash Painter ●
The idea. An algorithm is a finite sequence of steps that solves a problem.
●
The brush and canvas. A computer is an electronic machine that can process information according to a set of instructions (an algorithm). Harvard Architecture vs von Neumann Architecture
Computer Scientist slash Painter ●
The paint. A programming language e.g. C, Pascal, Java.
●
The drawing. A program is a sequence of instructions for a computer. An algorithm's implementation.
Binary Tree SMS Alert ●
Wow! Class list!
●
Wow! Alert!
●
i = parent, 2i = left child, 2i+1 = right child
●
Sulit!