CSE 111, Fall 2000
 

Great Ideas in Computer Science

Lecture Notes #1

What is Computer Science?

    1.  Obvious answer:  The science of computers & computing

            - but:  a "computer" used to be a person!
            - See webpage on History of Computers

    2.  Also known as "informatics" (like "mathematics")

            - i.e., the study of information processing

                    *  how info-processing tasks can be automated

                            > i.e., done by machine
                            with or without human intervention

                    *  how they can be automated efficiently

                            > i.e., in least amount of time
                                       and/or using least amount of physical
                                 resources ("space")

                    *  what can/can't be automated
                        (e.g., artificial intelligence ("AI") =
                                can intelligence/thinking/cognition
                                be automated?)

                    *  algorithmic problem solving
 

3.  Key terms:

    a)  algorithm (for a problem)

            - best example to keep in mind:  rules for +, -, *, /
            - from:  Muhammed ibn-Musa al-Khuwarizmi
                            (Arab mathematician, ca. 780-850 A.D.)

            = a procedure (for solving the problem) that is:
                    - unambiguous :    - for computer or human
                                                    who will "execute" it;
                                                - all steps of procedure
                                                    must be clear &
                                                    well-defined
                                                   for the executor

               &   - effective :            - must eventually halt
                                                    (no infinite loop)
                                                        * e.g., shampoo "algorithm":
                                                                 lather, rinse, repeat
                                                        * but:  online interactive
                                                                  programs don't end!

                                                 - must be correct
                                                            * i.e., must solve the problem
                                                           they were designed for

            - e.g., the "How to Read" algorithm
            - e.g., rules for arithmetic:
                      very difficult to spell out precisely
                        * try it! -- try writing down the algorithm for
                                        adding columns of numbers
                                        with any amount of digits.

        So:  Computer Science can be viewed as the study of
                 which problems can be solved by algorithms:
                - what are those algorithms?
                - if there is more than one algorithm per problem,
                   which are "better" (more efficient)?

    b) program = an algorithm written in a special
                        language, usually one that a computer
                        can "understand"

    c) programming language =
                    a language for formally expressing
                    information-processing tasks
                    - usually an artificial language
                        that can be "understood" by computer
                            e.g., Basic, Fortran, Lisp, Cobol,
                                    Pascal, C, C++, Java, etc.
                    - but could be English
                        (& we humans could be the computer!)
                    - in fact, one goal of AI is to be able to
                        get computers to understand
                       natural language
                    - & one goal of programming is
                          "automatic programming":
                            * give computer description
                              of problem
                              (in English or formal language)
                              & let it do the programming!

    d) (digital) computer
            = general-purpose
               information-processing machine
               - capable of executing (i.e., carrying out)
                  any information-processing task that can be
                  formally expressed by an algorithm.
 

3 Great Insights of Computer Science

I.  There are only 2 objects
    that a computer has to deal with
    in order to represent "anything"

II.  There are only 5 actions
     that a computer has to perform
     in order to do "anything"

III.  There are only 3 ways of combining
      these actions (into more complex ones)
      that are needed in order for a computer
      to do "anything"


Copyright © 2000 by William J. Rapaport (rapaport@cse.buffalo.edu)

file: 111F00/lecturenotes1.12sp00.html