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
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.
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