A High Flying Overview CS139 Fall 2006 How far we have come.

34
A High Flying A High Flying Overview Overview CS139 – Fall 2006 CS139 – Fall 2006 How far we have come How far we have come

description

Algorithm A step by step process for solving a problem in a finite amount of time given a finite amount of data.

Transcript of A High Flying Overview CS139 Fall 2006 How far we have come.

Page 1: A High Flying Overview CS139  Fall 2006 How far we have come.

A High Flying OverviewA High Flying Overview

CS139 – Fall 2006 CS139 – Fall 2006 How far we have comeHow far we have come

Page 2: A High Flying Overview CS139  Fall 2006 How far we have come.

We started with the notion of an We started with the notion of an algorithmalgorithm

Page 3: A High Flying Overview CS139  Fall 2006 How far we have come.

AlgorithmAlgorithm

• A step by step process for solving a problem in a finite amount of time given a finite amount of data.

Page 4: A High Flying Overview CS139  Fall 2006 How far we have come.

Good algorithmsGood algorithms• Require thought – and reading all of the words• And are:

– Simple– Precise– Correct– Complete– Have levels of abstraction

Page 5: A High Flying Overview CS139  Fall 2006 How far we have come.

Algorithm structuresAlgorithm structures

• Sequencing• Decisions• Loops• Abstraction (separate procedures)

Page 6: A High Flying Overview CS139  Fall 2006 How far we have come.

We learned about our lab We learned about our lab environmentenvironment

stu – Linux?

Lab 250

Lab 248

Novell – n-drivem-drive???

mount-n

submit

Page 7: A High Flying Overview CS139  Fall 2006 How far we have come.

We made containersWe made containers

And learned that there were different kinds that held different data

numbers

letters

Strings (why is thiscapital?)

simple (value)

complex (several values)

Variable

Constant

literal

Page 8: A High Flying Overview CS139  Fall 2006 How far we have come.

And performed operations on themAnd performed operations on them

addition

assignment

subtraction

multiplication

Page 9: A High Flying Overview CS139  Fall 2006 How far we have come.

And then we were ready to build And then we were ready to build our first programour first program

public class Hello{

public static void main(String args[]) {

System.out.println(“Hello World”);}

} But what does it mean???

Page 10: A High Flying Overview CS139  Fall 2006 How far we have come.
Page 11: A High Flying Overview CS139  Fall 2006 How far we have come.

But that was just the startBut that was just the start

• Containers became variable, literals, and constants

• Operations became expressions• Our programs began to really do

something.• Remember me? TripCalculator.java

Page 12: A High Flying Overview CS139  Fall 2006 How far we have come.

Of course that is when we also Of course that is when we also learned aboutlearned about

• documentation• and the dreaded submit• and of course we had to relearn division• 3 / 6 is not .5• 3 % 6 is not something to do with percentages.• compile time errors• run time errors• logic errors

Page 13: A High Flying Overview CS139  Fall 2006 How far we have come.

We got to know and love ScannerWe got to know and love Scanner

• and output• and printf (%s, %f, %d, %c)

Page 14: A High Flying Overview CS139  Fall 2006 How far we have come.

Then we added decisionsThen we added decisionsif(boolean expression) else

{ }

JMmooDairyBar.java:56: 'else' without 'if'

switch & case

break;

&&, ||, ==

and new error messagesand new error messages

Page 15: A High Flying Overview CS139  Fall 2006 How far we have come.

And yes, the JMooDairy Bar

Page 16: A High Flying Overview CS139  Fall 2006 How far we have come.

Then came abstractionThen came abstraction

• We learned that we can break code up and refer to a segment of code by a single name.

• Functions provided a way to reuse code; write once use any number of times.

• We also learned that we can create an application with multiple classes.

• Qualified names let us link all of these pieces together.

Page 17: A High Flying Overview CS139  Fall 2006 How far we have come.

We also began to explore object We also began to explore object oriented programmingoriented programming

• We began to use “classes” in a more purposeful way.

• We began to look at the “services” provided by java classes.– Scanner– System.out– Random– Math

Page 18: A High Flying Overview CS139  Fall 2006 How far we have come.

variable = new ObjectName()variable = new ObjectName()

Scanner(System.in)keyboard =

constructor

instantiation

new

Page 19: A High Flying Overview CS139  Fall 2006 How far we have come.

Passing 5 to the Passing 5 to the displayValuedisplayValue MethodMethod

displayValue(5);

public static void displayValue(int num){

System.out.println(“The value is “ + num);

}

The argument 5 is copied into the parameter variable num.

The method will display The value is 5

Page 20: A High Flying Overview CS139  Fall 2006 How far we have come.

And of courseAnd of course

• we had a PA to go along with functions

• Conversions.java

Page 21: A High Flying Overview CS139  Fall 2006 How far we have come.

and we learned lots of new and we learned lots of new termsterms

parameterargument

visibility modifyer

static

qualified namereturn statement

return type

Page 22: A High Flying Overview CS139  Fall 2006 How far we have come.

On to the last of our On to the last of our “procedural” structures“procedural” structures

• But of course not least…bring on the loops.

infinite loop

loop control variableoff by one error

4

pre

post

for

do/while

while

Page 23: A High Flying Overview CS139  Fall 2006 How far we have come.

And yet another PAAnd yet another PA

Page 24: A High Flying Overview CS139  Fall 2006 How far we have come.

and Starsand Stars

****

************

*************************

**********************************************

* ** *** **** ***** ****** ******* ******** *******************

Page 25: A High Flying Overview CS139  Fall 2006 How far we have come.

ObjectsObjects

• class – blueprint• object – specific house

Page 26: A High Flying Overview CS139  Fall 2006 How far we have come.

and more termsand more terms

• members• attribute• method• visibility modifiers

again• this• static

• instantiation• constructor• overloading• mutator• accessor• immutable• mutable

Page 27: A High Flying Overview CS139  Fall 2006 How far we have come.

We learned to hand trace We learned to hand trace methods and objectsmethods and objects

• Back to containers on a desk.• Each container holds its current value.• We must change the value as it changes

during program execution• Each container must be identified with its

scope.• And about scope….

Page 28: A High Flying Overview CS139  Fall 2006 How far we have come.

block scopeblock scope

• inside {}• local - inside method { }• global – inside class { }

• visibility is controlled by the scope of declaration

Page 29: A High Flying Overview CS139  Fall 2006 How far we have come.

And even further “scope”And even further “scope”

• static – belongs to the class• non-static – belongs to individual objects

of the class

• static = 1 container• non-static = 1 container per object

Page 30: A High Flying Overview CS139  Fall 2006 How far we have come.

And another paAnd another pa

Page 31: A High Flying Overview CS139  Fall 2006 How far we have come.

and finally arraysand finally arrays

• subscripted variable• reference type• arr1[3]• elements are individual elements of array

type.• loops – for each loop• index

Page 32: A High Flying Overview CS139  Fall 2006 How far we have come.

and the last paand the last pa

Page 33: A High Flying Overview CS139  Fall 2006 How far we have come.

Think about how far we have Think about how far we have comecome

• And how much you have learned.• What was hard is now easy.• What is now hard will continue to be easy.

• Preview of 239

Page 34: A High Flying Overview CS139  Fall 2006 How far we have come.

Next SemesterNext Semester

• Objects and objects• Inheritance• Input and output• Exceptions• Enumerated Types• Polymorphism• Abstract Classes• Interfaces• Recursion• and much much more…