The Department of Computer Science & Engineering
cse@buffalo
STUART C. SHAPIRO: CSE 115 C

CSE 115
Introduction To Computer Science for Majors I
Lecture C
Lecture Notes #2
Stuart C. Shapiro
Fall, 2007


Computer Science

What is Computer Science?
See

Two key terms:
Procedure:
1. A manner of proceeding; a way of performing or effecting something. 2. A series of steps taken to accomplish an end.
[The American Heritage Dictionary of The English Language, Third Edition Electronic Version, Houghton Mifflin, 1992]

Algorithm (for a problem):
A procedure for solving the problem that is unambiguous and effective (finite and correct).

Example: To determine if a number (decimal, integer) is divisible by 3, add its digits. If the result is divisible by 3, so is the original number.

The Church-Turing Thesis
"Church's thesis is the assertion that any process that is effective or algorithmic in nature defines a mathematical function belonging to a specific well-defined class, known variously as the recursive, the λ-definable, or the Turing computable functions... the notion of computation includes far more than numerical calculation; indeed, it encompasses everything expressible as an effective process" [Martin Davis, Church's Thesis. In Stuart C. Shapiro, Editor-in-Chief. Encyclopedia of Artificial Intelligence, Second Edition John Wiley \& Sons, Inc., New York, 1992, 163-4.]

The Halting Problem
An example of a non-computable procedure: An algorithm that, for any program and any input data for that program, will, in a finite amount of time determine whether or not that program will terminate when given that input data.

Some Sub-fields of Computer Science
Theory of Computation
Includes the study of the computational complexity of various procedures. Examples:
  • It takes twice as long to put stamps on 20 envelopes as it does to put stamps on 10 envelopes: O(n).
  • It takes four times as long to write a table of the distances between each of 20 cities as it does to write a table of the distances between each of 10 cities: O(n2).
  • Sorting takes O(n log n).

Database Systems
How to organize, store, and extract information from huge amounts of data. (For example, searchable material on the world-wide-web.)

Artificial Intelligence
A field concerned with the computational understanding of what is commonly called intelligent behavior, and with the creation of artifacts that exhibit such behavior.

Programming Languages
The theory and development of languages for expressing procedures that are both implementable on computers and easy for people to write so that the computer carries out the procedure that the person intended.

Böhm-Jacopini Theorem [Corrado Böhm and Giuseppe Jacopini (CACM, 1966)]: Any procedure can be written with the following control structures:

  1. Sequence: Do one action, and then another, and then another, etc.
  2. Selection: Do one action or another, based on some condition.
  3. Loop: Repeatedly do an action as long as some condition holds.

Other Computer Science & Engineering Subfields
For examples, see the list of CSE 400-level courses.

First Previous Next

Copyright © 2001, 2007 by Stuart C. Shapiro. All rights reserved.

Last modified: Wed Aug 29 10:19:31 EDT 2007
Stuart C. Shapiro <shapiro@cse.buffalo.edu>