23
ALGORITHMS ALGORITHMS CSC 171 LECTURE 1

ALGORITHMS

Embed Size (px)

DESCRIPTION

ALGORITHMS. CSC 171 LECTURE 1. What is “Computer Science”?. What is “Science”? What is a “Computer”? What is “Computation”?. Computer Science. Is Computer Science, “science”? Is computation part of nature? Is information part of nature? How do we study computation?. SCIENCE. - PowerPoint PPT Presentation

Citation preview

ALGORITHMSALGORITHMS

CSC 171

LECTURE 1

What is “Computer Science”?What is “Computer Science”?

What is “Science”?What is a “Computer”?What is “Computation”?

Computer ScienceComputer Science

Is Computer Science, “science”?Is computation part of nature?Is information part of nature?How do we study computation?

SCIENCESCIENCE

HistoryHistory

Muhammad ibn Musa Al'Khowarizmi (ca. 825)

Described rules to be followed for arithmetic using Hindu numerals.

A written process to be followed to achieve some goal

Translated into Latin in 1202 by Leonardo Fibonacci

Al’Khowarazimi -> “Algorithmus”

More Recent HistoryMore Recent HistoryCharles Babbage (1791-1871)

– The father of computing– Difference Engine & Analytical Engine

Ada Lovelace (1815-1852)– First programmer

John Atanasoff – First electronic digital computer 1937-42

Maucly & Eckert – 1943-45 - ENIAC – First all electronic computer

COMPUTER ARCHITECTURECOMPUTER ARCHITECTURE

ALGORITHMALGORITHM

An algorithm is a procedure for solving problems in terms of :1. The actions to be executed (statements)2. The order in which these actions are executed

Algorithms are independent of any specific computer language which may be used to for their implementation.– Often expressed informally as pseudocode.

Some AlgorithmsSome Algorithms

How do I get to the pit?– Your classmate– Your parents– A robot

Move forward x meters Turn right y radians

StatementsStatements

What do we need for “Statements”Syntax

– the form in which statements may be written

Semantics– “meaning” attached to syntactic constructs

ExampleExample

Syntax– F = (9/5) * C + 32 – 2 F 3=+)C 9 * / 5(

Semantics1. Take the Celsius temperature2. Multiply it by 1.83. Add 324. The result is the Fahrenheit temperature

How do Computers represent How do Computers represent information?information?

Computers are switches

Switches are “on” or “off”

Suppose we want to represent number

We can decide to interpret (semantics)

an “on” switch as a “1”

and an “off” switch as a “0”

LanguageLanguage

What does language do?– Transfer information (describe)– Action oriented languages (directions)– Functional languages

Area = Pi * Radius * Radius

– Object oriented languages “model” the world around us

Programming LanguagesProgramming LanguagesThree levels of programming languages

– Low level Machine Languages (binary codes)– Assembly Languages (mid level)

Symbolic programming Requires an assembler to translate assembly

programs into machine program

– High Level Conceptual programming Requires a compiler to translate high-level

languages into assembly level languages

Computer LanguagesComputer Languages

To a human we might say:– Write: “Hello, CSC 171”

To a computer we might say– System.out.println(“Hello, CSC 171”);

JAVAJAVA

Java is a high-level object oriented language

Two types of Java programs are

Applets – run with web browsers

Applications – run “stand alone”

A Computer ProgramA Computer Program

public class myFirstProgram {

public static void main(String args[]){

System.out.println(“Hello, CSC171”);

}

}

The Containment PatternThe Containment Pattern

Starts with some “begin” symbol– {([“

Ends with some “end” symbol– “])}

General Pattern <begin>+<contents>+<end>

Named containmentNamed containment

<header> + <containment><header> + <begin>+<contents>+<end>

A Computer ProgramA Computer Program

public class myFirstProgram {

public static void main(String args[]){

System.out.println(“Hello, CSC171”);

}

}

SOFTWARE DEVELOPMENTSOFTWARE DEVELOPMENT

ERRORSERRORSSyntax errors

System.ouch.print("...");System.out.print("Hello); – Detected by the compiler

Logic errorsSystem.out.print("Hell"); – Detected (hopefully) through testing

EDIT-EDIT-COMPILE-COMPILE-

TESTTESTLOOPLOOP