Algorithms and Inheritance Dr Jeyakesavan Veerasamy University of

  • Slides: 33
Download presentation
Algorithms and Inheritance Dr. Jeyakesavan Veerasamy University of Texas at Dallas, USA jeyv@utdallas. edu

Algorithms and Inheritance Dr. Jeyakesavan Veerasamy University of Texas at Dallas, USA jeyv@utdallas. edu

Agenda • • • Software: Then & Now SW Efficiency – does it matter?

Agenda • • • Software: Then & Now SW Efficiency – does it matter? Latest buzz Trends in CS education Open Q&A Note: Almost all the content is based on my observations & my experience only.

Complexity of software projects: historical snippets • Ad-hoc development model • Waterfall model –

Complexity of software projects: historical snippets • Ad-hoc development model • Waterfall model – slow & unpredictable – heavy documentation effort – cost overruns & missed deadlines

My experience with huge SW projects (Waterfall model) • • Period of instability collisons

My experience with huge SW projects (Waterfall model) • • Period of instability collisons during merge product delays Is it good enough to release?

Agile process

Agile process

Agile methods • • • Limited documentation Better tracking of current status Frequent releases

Agile methods • • • Limited documentation Better tracking of current status Frequent releases Continuous interaction with the customer Several refinements: XP, SCRUM, …

A typical industry project in 1990 New code C standard library Home-grown library

A typical industry project in 1990 New code C standard library Home-grown library

Same industry project NOW New code Home-grown library IDE modules C++/Java standard library Commercial

Same industry project NOW New code Home-grown library IDE modules C++/Java standard library Commercial libraries for industry segment Open source components

Questions • Any disadvantages of the latest approach? • Expert programmer: what does it

Questions • Any disadvantages of the latest approach? • Expert programmer: what does it mean? • Future projects: No code? Just integration? Knowledge of Java/C++/… down the drain?

Application Specific Programming script … Intrepreter M 2 M 3 … M 1 Mn

Application Specific Programming script … Intrepreter M 2 M 3 … M 1 Mn

Data Exchange A 2 A 1 A 4 A 3

Data Exchange A 2 A 1 A 4 A 3

Data Exchange A 2 A 1 A 4 A 3 • Binary or text

Data Exchange A 2 A 1 A 4 A 3 • Binary or text data XML or JSON … • Independent data checkers tools available.

Design decisons • Purchase commercial modules or use opensource? • . NET or Java?

Design decisons • Purchase commercial modules or use opensource? • . NET or Java?

Running time of a program or transaction processing time • ? ?

Running time of a program or transaction processing time • ? ?

Running time of a program or transaction processing time • • • amount of

Running time of a program or transaction processing time • • • amount of input: n basic algorithm / actual processing memory access speed CPU/processor speed # of processors? compiler/linker optimization?

Running time of a program or transaction processing time • amount of input: n

Running time of a program or transaction processing time • amount of input: n min. linear increase • basic 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%

Compare 3 algorithms Algorithm O(log n) When n neglegible goes up by 1 When

Compare 3 algorithms Algorithm O(log n) When n neglegible goes up by 1 When n Goes up by doubles 1 unit O(n) Goes up by 1 unit Doubles O(2 n) Doubles! Goes up by 2 n

Software efficiency: Do we really care? • Goal is to make software work &

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.

Game Console • Inefficient algorithm takes longer to run requires higher-end CPU to keep

Game Console • Inefficient algorithm takes longer to run requires higher-end CPU to keep realism • Higher end CPU higher price for the console product fails amid competition

Web-server • Consider 2 web-server algorithm implementations that take 1 second and 5 second

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 4 x servers to improve the webserver capacity, but what can we do with the user’s wait-time?

Daily data crunching • Any network collects tons of data to measure operational efficiency.

Daily data crunching • Any 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.

Data crunching pseudocode • initial setup • loop – read one tuple – open

Data crunching pseudocode • initial setup • loop – read one tuple – open db connection – send request to db – get response from db – close db connection – do some processing • post-processing

Data crunching pseudocode • initial setup • loop – read one tuple – open

Data crunching pseudocode • initial setup • loop – read one tuple – open 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)

Data crunching pseudocode • initial setup • open db connection • loop – read

Data crunching pseudocode • initial setup • open db connection • loop – read one tuple – send request to db – get response from db • close db • post-processing

Data crunching pseudocode • initial setup • open db connection • loop – read

Data crunching pseudocode • initial setup • open db connection • loop – read one tuple – send 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 1

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

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.

A few more points … Standalone applications Enterprise bundles Local SW installation intranet based

A few more points … Standalone applications Enterprise bundles Local SW installation intranet based Build in-house Buy & customize Heavy text based coding visual programming (GUI builders & debuggers …) • Desktops Laptops Smartphones • •

SW projects: Multi-dimensional problem Companies want to complete Software Projects with • Smaller team

SW projects: Multi-dimensional problem Companies want to complete Software Projects with • Smaller team • Limited resources • Higher quality • Reduced cost • On-time delivery This is what each project manager tries to do

Cloud computing • Possible for a small company to have just employees, laptops &

Cloud computing • Possible 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.

Smart-phone development • My kids know/play games in Android phone • For me, email,

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 development

Game development • Lot of interest in real-time action games • Most games done

Game development • Lot of interest in real-time action games • Most games done in C/C++ in Los Angeles area • Algorithm optimization at work!

Latest trends in CS education in USA • Difficulty in attracting US students to

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 CS 1 & CS 2 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 applications

Questions & Answers Dr. Jeyakesavan Veerasamy jeyak 7@gmail. com jeyv@utdallas. edu

Questions & Answers Dr. Jeyakesavan Veerasamy jeyak 7@gmail. com jeyv@utdallas. edu