Business of Online Education in USA

advertisement
Latest trends in
Global Software Industry
Dr. Jeyakesavan Veerasamy
jeyak7@gmail.com
jeyv@utdallas.edu
Agenda
• Introduce myself
•
•
•
•
•
•
Software: Then & Now
SW development environment options
SW Efficiency – does it matter?
Latest buzz
Trends in CS education
Open Q&A
Dr. V. Jeyakesavan:
Academia, Industry & Personal
• Dad was a school teacher
• B.E. (ECE) in CEG Guindy, Anna University –
1986-90
• UNIX System Software Engineer, HCL Limited,
Chennai, 1990-91
• MS Computer Science, University of Texas at
Dallas (UTD), 1991-94
Dr. V. Jeyakesavan:
Academia, Industry & Personal …
• Telecom Software Engineer, Northern Telecom,
Dallas, 1994-97
• Ph.D. Computer Science (part-time), University of
Texas at Dallas (UTD), 1994-99
• Technical Lead, Samsung Telecom, 1997-2010
• Got married in 1998
• Adjunct Faculty, UTD CS department, 1999-2002
• Online Adjunct Faculty in several online
universities from 2000
Dr. V. Jeyakesavan:
Academia, Industry & Personal …
• Adjunct Faculty, Southern Methodist
University, 2010
• Sr. Lecturer (full-time), UTD Computer Science,
2010-present
• 2 daughters: Nila (8) and Chinmayee (4)
• Passionate about teaching – happy to share
ideas to improve teaching quality in colleges
Dr. V. Jeyakesavan: Summary
• 18 years experience as Software
Engineer
• 12 years of teaching experience
Fun way to learn programming & OOP
•
•
•
•
•
•
•
•
Alice, a visual programming language
Download from www.alice.org
Whole world can be characterized by OOP
How many meaningful objects in this room?
What is a class?
Alice program demo
Great stepping stone to serious programming
Share it with your friends & family
Software: Then & Now
Note: Almost all the content is based
on observations & 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: PP, 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
Follow-up Q: Any disadvantages?
Commercial libraries
for industry segment
Open source
components
Questions
• Expert programmer: what does it mean?
• Future projects: No code? Just integration?
• Knowledge of Java/C++/… down the drain?
Application Specific Programming
script
script
script
…
Intrepreter
M2
M3
…
M1
Mn
Example: Casio FX100 calculator in PC
Language
Source Code
Executable Size
Assembly
language
C/C++
~40,000
~10 Kbytes
~4000
~50 Kbytes
Visual Basic
< 1000
~250 Kbytes
Cloud Computing
• SW bundles inefficient for small companies
• Too much IT equipment & staff overhead
• Cloud resource provider provides the SW over
the web and stores data too – SaaS model
• Each client needs only web browser and
internet access.
Analogy: making food
•
•
•
•
•
Make Sambar from scratch
Make Sambar using powder
Make Maggie Noodles
Microwave frozen sambar / Tetrapack
Inefficient for singles – make food in one place
& get it delivered?
Data Exchange
A2
A1
A4
A3
Data Exchange
A2
A1
A4
A3
• Binary or text data 
XML or JSON …
• Independent data
checkers tools available.
Software Outsourcing
• Goal: reduce cost
• Projects need to fit certain criteria
– Bit formal & clear requirements
– Interfaces well defined/understood
– should be of reasonable size
• Not a good idea for small/poorly defined/timecritical/security-sensitive projects
• Opinion: may stay at current level or go down
• Industry not conducive for more outsourcing
• With increased cost, Indian SW companies under
pressure
Design decisons
• Purchase modules or use open-source?
• .NET or Java?
Running time of a program?
•
•
•
•
size of input (n)
CPU speed
memory size & speed
actual processing, time complexity of
algorithm
• compiler optimization, dev execution
environment
• …
Compare these algorithms
Algorithm
When n goes
up by 1
When n
doubles
O(log n)
O(n)
O(n2)
O(2n)
Time complexity – our goal
Running time improvements
If a program takes 1 week to complete, how will
you approach to reduce running time?
Software efficiency: Do we really care?
• Goal is to make software work & meet
deadline for most industry projects. Let us
consider a few examples:
• Game console: Algorithm takes longer to run
 requires higher-end CPU to keep realism 
higher price  product fails amid competition
Software Efficiency: Web server
• Consider 2 algorithms A1 and A2 that take 5
seconds & 20 seconds per transaction.
Internet
A1
User1
• web-user experience?
• web server capacity?
A2
Internet
User2
Daily data crunching:
What if it takes >1 day?
• 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 = c1. n + d1
• Time complexity is
O(n)
Data crunching pseudocode
• Equation for running
time = c2. n + d2
open db connection
• Time complexity is still
loop
O(n), but the constants
– read one tuple
are different.
– send request to db
– get response from db • c2 < c1
• d2> d1
close db
post-processing
• initial setup
•
•
•
•
Wireless node capacity
•
•
•
•
BHCA capacity: 10 lakhs calls per hour
Each call requires (1 hour * 70%/(10 lakhs))
= 2.5 milliseconds.
If that 2.5 msec becomes 3.0 msec due to
additional processing, new capacity will be
• 10 * 2.5 = x * 3.0  x = 8.3 lakhs BHCA
• 17% capacity reduction
Data download & processing
open web browser
loop
click & download next file
process file
done!
• Let us say both steps take
5 minutes each & we
have 10 files to process.
• What is the total
processing time?
• How can we optimize?
• Hint: download uses I/O
and processing uses CPU.
Data download & processing
open web browser
loop
click & download next file
process file
until all files are processed
• Let us say both steps take 5
minutes each & we have 10
files to process.
• What is the total processing
time?
• > 10 * 10 = 100 minutes
• How can we optimize?
• Hint: download uses I/O
and processing uses CPU.
• Real-world example?
• Making chappathis?
Data download & processing
open web browser
click & download next file
loop
click & start to download
next file
process previous file
until all files are processed
• Download & processing in
parallel.
• What is the total
processing time now?
• > 5 * 10 = 50 minutes
• More complex algorithm 
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 
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 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 applications
Dallas-Ft. Worth metroplex
Advertisement:
University of Texas at Dallas
• Erik Jonsson School of Engineering and
Computer Science
• Computer Science: ~500 MS students and
~150 PhD students
• Surrounded by 100s of companies in DallasFort Worth metroplex
• Students can get internships right after 2
semesters and continue studies in parallel
• Flyers available – see me after the lecture
Questions & Answers
Thanks for attending!
Dr. Jeyakesavan Veerasamy
jeyak7@gmail.com
jeyv@utdallas.edu
Download