introduction to programming initial slides developed by dr. doman

36
Introduction to Programming Initial Slides developed by Dr. Doman

Upload: ethelbert-harper

Post on 29-Dec-2015

224 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Introduction to Programming Initial Slides developed by Dr. Doman

Introduction to Programming

Initial Slides developed by Dr. Doman

Page 2: Introduction to Programming Initial Slides developed by Dr. Doman

A deep understanding of programming, in particular the notions of successive decomposition as a mode of analysis and debugging of trial solutions, results in significant educational benefits in many domains of discourse, including those unrelated to computers and information technology per se.

(Seymour Papert, in "Mindstorms")

What is programming?

Page 3: Introduction to Programming Initial Slides developed by Dr. Doman

Programming is a creative process done by programmers to instruct a computer on how to do a task. (http://cplus.about.com)

Writing an original program that performs a particular task that meets all stated constraints (Think Like a Programmer, V.Anton Spraul, No Starch Press, Inc. 2012)

What is programming?

Page 4: Introduction to Programming Initial Slides developed by Dr. Doman

The major resource for this information is the book

Think Like a Programmer,By V.Anton Spraul,

No Starch Press, Inc. 2012

What is programming?

Page 5: Introduction to Programming Initial Slides developed by Dr. Doman

Method or interface to do this:

PROGRAMMING LANGUAGESExample: Java:

Public class helloWorld {Public static void main ( ) {

system.out.println(“Hello World”) }}

Instruct a computer

Page 6: Introduction to Programming Initial Slides developed by Dr. Doman

Example: C++

#include<iostream>using namespace std;

int main(){

cout << “Hello World” << endl;}

Instruct a computer

Page 7: Introduction to Programming Initial Slides developed by Dr. Doman

Example: html

<!DOCTYPE html><html><body><p> Hello World </p></body></html>

Instruct a computer

Page 8: Introduction to Programming Initial Slides developed by Dr. Doman

GAMEMAKER

Drag and drop structured language

Uses icons, text…. Made to be easier than any of the previous languages.Easily used by non-programmers.

Instruct a computer

Page 9: Introduction to Programming Initial Slides developed by Dr. Doman

Programming is a creative process done by programmers to instruct a computer on how to do a task. (http://cplus.about.com)

Writing an original program that performs a particular task that meets all stated constraints (Think Like a Programmer, V.Anton Spraul, No Starch Press, Inc. 2012)

What is programming?

Page 10: Introduction to Programming Initial Slides developed by Dr. Doman

Puzzles

Problem solving

What is programming?Programming Involves

Page 11: Introduction to Programming Initial Slides developed by Dr. Doman

Your car has blue smoke coming from the tailpipe, is idling roughly and has lost fuel efficiency.

How do you solve this puzzle?

Problem Solving

Page 12: Introduction to Programming Initial Slides developed by Dr. Doman

Unbreakable rules about problems or the way in which problems must be solved.

Car problem constraints: Maximum amount you can pay for repair Time you can wait before you need it fixed Can not require new tools to be purchased

Constraints

Page 13: Introduction to Programming Initial Slides developed by Dr. Doman

Must use a particular programming language (Java, C++)

Specific Platform (Windows, Mac), (IPad, Nexus) Have a certain performance/speed (page refresh in 1.5

seconds) Amount of memory the program uses while running,

memory footprint

User/customer specific constraints Design constraints

Common Programming Constraints

Page 14: Introduction to Programming Initial Slides developed by Dr. Doman

Figure out the steps needed to solve the problem

Be able to list the steps Be able to repeat the steps

You can NOT change the rules (constraints) to get something solved!

Problem solving

Page 15: Introduction to Programming Initial Slides developed by Dr. Doman

PROBLEM: HOW TO CROSS THE RIVER?

A farmer with a fox, a goose and a sack of corn needs to cross a river. The farmer has a rowboat, but there is only room for the farmer and one of his three items. Unfortunately, both the fox and the goose are hungry. The fox cannot be left alone with the goose; the goose cannot be left alone with the grain. How does the farmer get everything across the river?

Puzzle: Fox, goose, grain

Page 16: Introduction to Programming Initial Slides developed by Dr. Doman

Constraints Only one item at a time in the boat Can’t leave fox with goose Can’t leave goose with grain

Operations Carry the fox to the far side of the river Carry the goose to the far side of the river Carry the grain to the far side of the river

Puzzle: Fox, goose, grain

Page 17: Introduction to Programming Initial Slides developed by Dr. Doman

Puzzle: Fox, goose, grain

Page 18: Introduction to Programming Initial Slides developed by Dr. Doman

Abstract the problem Be more general in describing the way we

will solve the problem

Concept: VariableItems are fox, goose or grainLet item vary between fox, goose or grain

Rephrase the problem

Page 19: Introduction to Programming Initial Slides developed by Dr. Doman

Constraints Only one item at a time in the boat Can’t leave fox with goose Can’t leave goose with grain

Operations Row the boat from one shore to the other If the boat is empty, load an item on the boat If the boat is full, take the item off the boat

Puzzle: Fox, goose, grain

Page 20: Introduction to Programming Initial Slides developed by Dr. Doman

Puzzle: Fox, goose, grain

Page 21: Introduction to Programming Initial Slides developed by Dr. Doman

Puzzle: Sudoku

3 4 7

8 1

6 2 5

5 8

4 7

1 9

7 3

3 4 7

8 9 1

6 2 5

Page 22: Introduction to Programming Initial Slides developed by Dr. Doman

PROBLEM: THE SLIDING EIGHT

A 3x3 grid is filled with eight tiles, numbered 1 through 8 with one empty space. The grid is jumbled. A tile can be slid into an adjacent empty space, leaving its previous location empty. Slide the tiles so that they are in numerical order

Puzzle: Sliding Tile

Page 23: Introduction to Programming Initial Slides developed by Dr. Doman

1 2 3

4 5 6

7 8

Puzzle: Sliding TileSolution

Page 24: Introduction to Programming Initial Slides developed by Dr. Doman

4 7 2

8 6 1

3 5

Puzzle: Sliding Tile

Page 25: Introduction to Programming Initial Slides developed by Dr. Doman

Technique: the train

A circuit of tile positions that include an empty slot forms a train of tiles that can be rotated anywhere along the circuit, preserving the relative order of the tiles.

Puzzle: Sliding Tile

Page 26: Introduction to Programming Initial Slides developed by Dr. Doman

Puzzle: Sliding Tile

1

2 3

2 1

3

3 2

1

3

1 2

Page 27: Introduction to Programming Initial Slides developed by Dr. Doman

Look at the problem in subsets PROBLEM: THE SLIDING FIVE

Puzzle: Sliding Tile

6 8

5 4 7

Page 28: Introduction to Programming Initial Slides developed by Dr. Doman

Puzzle: Sliding Tile

6 8

5 4 7

5 6 8

4 7

4 5 6

7 8

4 5 6

7 8

Page 29: Introduction to Programming Initial Slides developed by Dr. Doman

Use this technique to generalize the solution to any sliding puzzle…..

Puzzle: Sliding tile

4 7 2

8 6 1

3 5

Page 30: Introduction to Programming Initial Slides developed by Dr. Doman

Use this technique to generalize the solution to any sliding puzzle…..

Puzzle: Sliding tile

4 7 2

8 6 1

3 5

Page 31: Introduction to Programming Initial Slides developed by Dr. Doman

Use this technique to generalize the solution to any sliding puzzle…..

Puzzle: Sliding tile

4 5 6

8 1

3 2 7

Page 32: Introduction to Programming Initial Slides developed by Dr. Doman

Use this technique to generalize the solution to any sliding puzzle…..

Puzzle: Sliding tile

4 5 6

8 1

3 2 7

Page 33: Introduction to Programming Initial Slides developed by Dr. Doman

Use this technique to generalize the solution to any sliding puzzle…..

Puzzle: Sliding tile

1 2 3

6 8

5 4 7

Page 34: Introduction to Programming Initial Slides developed by Dr. Doman

Use this technique to generalize the solution to any sliding puzzle…..

Puzzle: Sliding tile

1 2 3

6 8

5 4 7

Page 35: Introduction to Programming Initial Slides developed by Dr. Doman

Problem Solving Have a plan Generalize the problem

Restate the problem Start with what you know Divide the problem Look for analogies or patterns Experiment!!!

THINK like a programmer!

Page 36: Introduction to Programming Initial Slides developed by Dr. Doman

Creation of Software