Algorithms and Inheritance Dr Jeyakesavan Veerasamy University of
- Slides: 33
Algorithms and Inheritance Dr. Jeyakesavan Veerasamy University of Texas at Dallas, USA jeyv@utdallas. edu
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 – slow & unpredictable – heavy documentation effort – cost overruns & missed deadlines
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 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
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 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
Data Exchange A 2 A 1 A 4 A 3
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?
Running time of a program or transaction processing time • ? ?
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 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 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 & 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 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 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. 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 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 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 one tuple – send request to db – get response from db • close db • post-processing
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? • 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 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 • 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 & 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, 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 in C/C++ in Los Angeles area • Algorithm optimization at work!
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
- Jeyakesavan veerasamy
- Jeyakesavan veerasamy
- Jeyakesavan veerasamy
- Dr veerasamy dallas
- Transovarial transmission คือ
- Advantages of inheritance
- Maternal effect and maternal inheritance
- Section 12-1 chromosomes and inheritance
- Chapter 11 complex inheritance and human heredity test
- Ic code
- Oop polymorphism inheritance encapsulation
- Reproduction and inheritance
- Family resemblance test
- Mendel's first and second law of inheritance
- Harry potter and the inheritance of sex
- The cellular basis of reproduction and inheritance
- Computational thinking algorithms and programming
- 1001 design
- Ajit diwan iit bombay
- Association analysis: basic concepts and algorithms
- Fftooo
- Kevin wayne princeton
- Data structures and algorithms tutorial
- Algorithms for select and join operations
- Algorithms and flowcharts
- Undecidable problems and unreasonable time algorithms.
- Information retrieval data structures and algorithms
- Data structures and algorithms bits pilani
- Cluster analysis basic concepts and algorithms
- Randomized algorithms and probabilistic analysis
- Design and analysis of algorithms introduction
- Algorithms for query processing and optimization
- Synchronization algorithms and concurrent programming
- Parallel and distributed algorithms