Comp201: Principles of Object-Oriented Programming I
Spring 2008 -- Lec 02: Data Abstraction   


Introduction

Abstraction is the process of hiding the details and exposing only the essential features of a particular concept or object. 
Computer
scientists use abstraction to understand and solve problems and communicate their solutions with the computer.  The way we communicate with the computer is fashioned after the way we communicate with humans: that is we use "languages."    The languages that computers "understand" are called computer languages. They use specific symbols and have specific rules, called syntax rules, on how these symbols should be put together.  There are also rules that prescribe what each specific syntactic construct means; they are called semantic rules.

There are many computer languages, each of which is designed to use for some specific problem domain.  The language we will learn and use in this course is called Java.  It was introduced to the computing community in 1995 as language for programming the computers across the Internet. 

Computers were originally designed to perform calculations and they've come a long way: Computers of Yore   But if computers were built to perform only very specific calculations, e.g. what is Pi to 10 million decimal places, then they wouldn't be very useful once that calculation was completed.  That is, in order to really be useful, computers must be able to perform more than one calculation.  But computers run on programs, so how do you write a program that is capable of doing more than one calculation?    That is, do we write programs to do specific calculations, or do we write programs that will do a variety of calculations, that is, the calculations that fall within the bounds of some defined set of calculations?    This is the notion of abstraction and it is the key to writing useful programs. 

We may appear to be beating a simple notion over the head, but it will pay us to take a closer look at what abstraction is all about.

This lecture continues on the Connexions site: http://cnx.org/content/m11785/latest/

 


Last Revised Thursday, 03-Jun-2010 09:50:29 CDT

©2005 Stephen Wong and Dung Nguyen


Last Revised Thursday, 03-Jun-2010 09:50:29 CDT

©2008 Stephen Wong and Dung Nguyen