20
1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty [email protected] S-3-90

1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty [email protected] S-3-90

Embed Size (px)

Citation preview

Page 1: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

1

CS210Intermediate Computing

with Data Structures (Java)Saaid Baraty

[email protected]

S-3-90

Page 2: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

2

Outline of Today's Class

• Looking at the course syllabus and requirements.

• About this course.• Software Engineering and Software

Quality.• Data Structures and Their importance in

Software Engineering. • UML Diagram.

Page 3: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

3

Welcome to CS210

• What are the values of this course?– This course provides the knowledge for you to

understand and use data structures, especially the Java Collections API, for writing more effective and efficient computer programs.

– Also, you will write many programs in Java. This sharpens your Java programming skills.

Page 4: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

4

Software Engineering

• Software engineering is the study of techniques, theory and principles to develop high quality software.

• Software qualities:– Correctness– Reliability– Robustness– Usability– Maintainability– Re-usability/Extendability– Portability– Efficiency

Page 5: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

5

Software Development Methods

Edit and save source code

Build source codeto create program

Run program andevaluate results

Errors

Errors

• Classical “Waterfall” Development Steps

Page 6: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

6

Errors

• A program can have three types of errors:

• The IDE editor and/or compiler will find syntax errors and other basic problems (compile-time errors)

– If compile-time errors exist, an executable version of the program is not created

• A problem can occur during program execution, such as trying to divide by zero, which causes a program to terminate abnormally (run-time errors)

• A program may run, but produce incorrect results, perhaps using an incorrect formula (logical errors)

Page 7: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

7

Data Structures

• Data structures refer to the structures or organizations we use to store or retrieve data in memory.

Page 8: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

8

Data Structures and Program Efficiency

The choice of the data structure that we use in our program can dramatically affect the efficiency (in terms of running time ) of our program.

Page 9: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

9

Data Structure Example

We have a program that accepts a number as input and tells us if the number exists in the following set of numbers stored in memory:

{ 2, 10, 9, 11, 100, -6, 21 }

What data structure should we use to store the numbers for obtaining the highest efficiency?

Page 10: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

10

Option 1

An unordered list:

{ 2, 10, 9, 11, 100, -6, 21 }

10 9 112 100 -6 21

pros and cons

Page 11: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

11

Option 2

An ordered list:

{ 2, 10, 9, 11, 100, -6, 21 }

2 9 10-6 11 21 100

pros and cons

Page 12: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

12

Option 3

A binary tree

{ 2, 10, 9, 11, 100, -6, 21 }

9

100

2

21

10

11

-6

pros and cons

Page 13: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

13

Unified Modeling Language (UML)• UML is a graphical tool to visualize and

analyze the requirements and do design of an object-oriented solution to a problem.

• A good reference is UML Distilled, 3rd Ed., Martin Fowler, Addison-Wesley/Pearson

Page 14: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

14

Unified Modeling Language (UML)

• Advantage of UML – It is graphical– Allows you to visualize the problem / solution– Organizes your detailed information

• Disadvantage of UML – It is graphical– Can be done with pencil and paper – tedious!– Commercial UML S/W tools are expensive!

• Example: Rational ROSE (IBM acquired Rational)

Page 15: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

15

Class Diagrams

• Classify the Objects in the Use Cases• Define name of each class• Define each class’s attributes

– Constants– Variables

• Define each class’s behaviors– Methods

• Show relationships between classes– Depends on, Inherits, etc.

Page 16: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

16

UML Diagram for a Class

CreditCard

- myCardData : CardData

+ read( ) : CardData

• Class name: CreditCard

• Attribute name: myCardData

• Method name: read()

Page 17: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

17

Class Diagram Showing Inheritance

BankAccount

balance

getBalance()

CheckingAccount

monthlyFee

getFee()

SavingAccount

interest

getInterest()

Page 18: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

18

Software Development Tools

• Download/install the software development tools on your own PC if you wish to do your project assignments at home– Sun Software Development Kit (SDK)– Integrated Development Environment (IDE) or

you can use the command prompt (terminal)

• Use the PCs in the Healey Library labs as they already have these tools installed

Page 19: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

19

Using Sun Java SDK Alone

• Example DOS Commands and ParametersC:\ > edit HelloWorld.java

(Create/edit “source file” in an external window)

C:\ > javac HelloWorld.java (creates .class file)

C:\ > java -classpath … HelloWorld

Hello World

C:\ > exit

Page 20: 1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty sbaraty@cs.umb.edu S-3-90

20

Software Development Tools• We can use a combination of the an IDE and

the Sun Java SDK

SourceFile(s)(.java)

Programmer

Eclipse IDE

Compiler(javac)

ClassFile(s)(.class)

VirtualMachine

(java)

Edit Build Run

Programexecutes

Parts of Sun Java SDK

Graphical User Interface