/
Algorithms and Inheritance Algorithms and Inheritance

Algorithms and Inheritance - PowerPoint Presentation

liane-varnes
liane-varnes . @liane-varnes
Follow
367 views
Uploaded On 2016-03-12

Algorithms and Inheritance - PPT Presentation

Dr Jeyakesavan Veerasamy University of Texas at Dallas USA jeyvutdallasedu Agenda Software Then amp Now SW Efficiency does it matter Latest buzz Trends in CS education Open QampA ID: 253097

time data processing amp data time amp processing algorithm projects web industry crunching project process transaction applications initial software running pseudocode network

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Algorithms and Inheritance" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Algorithms and Inheritance

Dr.

Jeyakesavan Veerasamy

University of Texas at Dallas, USA

jeyv@utdallas.eduSlide2

Agenda

Software: Then & Now

SW Efficiency – does it matter?

Latest buzzTrends in CS educationOpen Q&A

Note:

Almost all the content is based on

my observations

&

my experience

only. Slide3

Complexity of software projects: historical snippets

Ad-hoc development model

Waterfall model

slow & unpredictableheavy documentation effortcost overruns & missed deadlinesSlide4

My experience with huge SW projects(Waterfall model)

Period of instability

collisons during merge

product delaysIs it good enough to release?Slide5

Agile processSlide6

Agile methodsLimited documentation

Better tracking of current status

Frequent releases

Continuous interaction with the customerSeveral refinements: XP, SCRUM, …Slide7

A typical industry project in 1990

C standard library

Home-grown library

New codeSlide8

Same industry project NOW

C++/Java standard library

Home-grown library

Open source components

Commercial libraries for industry segment

IDE modules

New codeSlide9

QuestionsAny disadvantages of the latest approach?

Expert programmer: what does it mean?

Future projects: No code? Just integration? Knowledge of Java/C++/… down the drain?Slide10

Application Specific Programming

M1

M2

M3

Intrepreter

Mn

script

script

script

…Slide11

Data Exchange

A1

A3

A2

A4Slide12

Data Exchange

Binary or text data

 XML or JSON …

Independent data checkers tools available.

A1

A3

A2

A4Slide13

Design decisonsPurchase commercial modules or use open-source?

.NET or Java?Slide14

Running time of a program or transaction processing time

????Slide15

Running time of a program or transaction processing time

amount of input: n

basic algorithm / actual processing

memory access speedCPU/processor speed# of processors?compiler/linker optimization? Slide16

Running time of a program or transaction processing time

amount of input: n

 min. linear increasebasic algorithm / actual processing

 depends on algorithm!

memory access speed

 by a factor

CPU/processor speed

by a

factor

# of processors?

yes, if multi-threading or multiple processes are used.

compiler/linker optimization?

~20%Slide17

Compare 3 algorithms

Algorithm

O(log

n)

O(n)

O(2

n

)

When n goes up by 1

neglegible

Goes up

by 1 unit

Doubles!

When n doubles

Goes up by 1 unit

Doubles

Goes up by 2

nSlide18

Software efficiency: Do we really care?

Goal is to make software work & meet deadline for most industry projects.

For example, an intranet application may take 5 seconds to process a transaction, while hand-coded optimized version may take 4 seconds. Is this ok?

However there are exceptions. Let us consider a few such scenarios.Slide19

Game ConsoleInefficient algorithm

takes

longer to run  requires higher-end CPU to keep realismHigher end CPU  higher

price

for the console 

product fails amid competitionSlide20

Web-server

Consider 2 web-server algorithm implementations that take 1 second and 5 second respectively to process a transaction.

Issues:

algorithm #2 tests web-users’

patience

2

nd

web server capacity is low.

We can add 4x servers to improve the web-server capacity, but what can we do with the user’s wait-time?Slide21

Daily data crunchingAny network collects tons of data to measure operational efficiency. Telecom network is no exception.

Daily data crunching (post-processing) is used to generate daily reports for management.

Issue:

# of network nodes increased  more data process  Scripts started to take >1 day to run.Slide22

Data crunching pseudocode

initial setup

loop

read one tupleopen db connection

send request to db

get response from db

close

db connection

do some processing

post-processingSlide23

Data crunching pseudocode

initial setup

loop

read one tupleopen db connection

send request to db

get response from db

close db

post-processing

Equation

for running time = c

1

. n + d

1

Time

complexity is O(n)Slide24

Data crunching pseudocode

initial setup

open db connection

loopread one tuplesend request to db

get response from db

close db

post-processingSlide25

Data crunching pseudocode

initial setup

open db connection

loopread one tuplesend request to db

get response from db

close db

post-processing

Equation

for running time = c

2

. n + d

2

Time complexity is still O(n), but the constants are different.

c

2

< c

1

d

2

> d

1Slide26

Reasons for original design?Why the initial script implementation was so inefficient?

Designed for small network – “get it done” mentality – works for now!

Not much thought process went into it.

It is an internal project.Clearly it was not of “commercial” grade project.Slide27

A few more points …Standalone applications

 Enterprise bundles

Local SW installation  intranet based

Build in-house  Buy & customizeHeavy text based coding  visual programming (GUI builders & debuggers …)

Desktops  Laptops  SmartphonesSlide28

SW projects: Multi-dimensional problem

Companies want to complete Software Projects with

Smaller team

Limited resourcesHigher quality

Reduced cost

On-time delivery

This is what each project manager tries to do

Slide29

Cloud computing

P

ossible for a small company to have just employees, laptops & web connectivity to do business!

Enables company data access from anywhere!Even large companies move specific applications to the cloud - supports multiple locations naturally!Example for personal cloud usage: Google Docs

Example for commercial cloud usage: Electronic medical records

Security concerns remain, but industry is gaining confidence.Slide30

Smart-phone development

My kids know/play games in Android phone

For me, email, calendar and contacts are in sync with company data

Question: can we do more with them?Industry trend is to port several meaningful business applications to smartphones.

Example for cross-platform developmentSlide31

Game developmentLot of interest in real-time action games

Most games done in C/C++ in Los Angeles area

Algorithm optimization at work!Slide32

Latest trends in

CS education in USA

Difficulty in attracting US students to CS

Introduction to Programming : going visual

Alice, Scratch

, GUI games, …

Java dominates in CS1 & CS2 courses

Industry

projects in the final year

Online courses becoming popular, augmenting education landscape

Lots of online multimedia lectures in the web

Game

design

programs & Smart-phone applications

Augmenting open-source applicationsSlide33

Questions & Answers

Dr. Jeyakesavan Veerasamy

jeyak7@gmail.com

jeyv@utdallas.edu