Download presentation
Presentation is loading. Please wait.
Published byDiane Bradley Modified over 9 years ago
1
- Some Thoughts on Computing Jeff Gray, Ph.D. - Associate Professor Alabama Professor of the Year UAB – CIS Department gray@cis.uab.edu http://www.cis.uab.edu/gray
2
What hooked me on computing… New form to express creativity Science Fairs 8 th grade Bulletin Board Software High School Tic-Tac-Toe Learner “Wargames”
3
My Collaborations with ASFA 2004 – Matthew Ferguson 2005 – Sally Tao, Jia Zhang, and Pratik Talati Others: 2008 – David Kneynsberg 2009 – Kheri Dunkins Justin Harrison Since 2007 – Josh Swank 2009 – Jemale, Omar, Wisdom Jemale captivating his audience
4
ASFA at UAB 2005 - Peilong Cong (Top 3)2006 HSPC Team 2007 HSPC Team 2008 – Josh (First Place) 2009 HSPC Team
5
Number of schools passing AP CS audit Computer Science in Alabama ASFA Leading the Way StateNumber of Schools Alabama3 (out of > 460) Tennessee16 South Carolina18 North Carolina28 Florida69 Georgia78 New Jersey133 California165 Texas271
7
Number of students taking AP CS exams Georgia’s Success Story State200120072008 Georgia69 CS A exams 422 CS A exams 585 CS A exams 15 CS AB exams107 CS AB exams105 CS AB exams Alabama22 CS A exams 27 CS A exams 41 CS A exams 12 CS AB exams7 CS AB exams11 CS AB exams
8
Careers in Computing
9
The Benefits of a Diverse Education You don’t need to be a Pulitzer Prize winning novelist to appreciate an English class… …nor a world-renowned scientist or mathematician to understand the wonders of our world. We believe that understanding computational thinking also offers skills useful for your future. Your Photo Here
10
Software is Everywhere Think of some of the things that entertain and enrich your daily life All of the above are driven by software Software developers equipped with a computer science degree have opportunities to work on exciting and cutting-edge projects
11
Software is Everywhere 98% of all microprocessors control devices other than desktop computers –Automobiles, airplanes, televisions, copiers, razors… These devices also need software and often require strong technical skills to develop >10Mb embedded software 15-20Kb 1-1.5Mb > 1M SLOC
12
Meteoric Opportunities February 15, 2005: Domain registered (youtube.com) Jawed Karim, Chad Hurley, and Steve Chen Around 25 years old at this time November 2005: Official Debut 100 Million Clips viewed daily; 65,000 uploads per day 20 Million visitors each month October 2006: Time Magazine Invention of the Year Great Talk: From Concept to HyperGrowth http://www.youtube.com/watch?v=nssfmTo7SZg October 6, 2006: Google purchased for $1.65B
13
Alabama Technology Leaders Jimmy Wales Wikipedia Founder Huntsville Native The biggest multilingual free-content encyclopedia on the Internet. Since its creation in 2001, nearly 10 million articles in over 250 languages. Over 680 million visitors each year; 75,000 active contributors.
14
“… the software industry is going to make more breakthroughs in these next 10 years than it's made in the last 30 … software is really going to transform not just what we think about as the computer industry, but the way that everything is done …” Intellectual Opportunities Re-architecting the Internet Harnessing parallelism Quantum computing Transforming all fields of science and engineering Wreckless driving Prosthetics / augmentation / access Transforming the nation’s defense
15
The Demand for Computer Scientists Offshore hysteria: Many companies with high paying jobs within the US are unable to fill positions with computer scientists. Source: http://money.cnn.com/magazines/moneymag/bestjobs/top50/index.html
16
The Demand for Computer Scientists Computer Science occupations are projected to grow twice as fast as the average for all occupations. Source: http://www.bls.gov/opub/ooq/2007/fall/art02.pdf Between 2006-2016 a projected 822,000 new jobs will be available in Computer Science occupation areas in the United States alone.
17
The Demand for Computer Scientists Source: IEEE Spectrum, August 2008 Computer science has the highest engineering salary and the fastest growing salary increase.
18
Communications of the ACM, July 2008, pg. 32.
19
The Demand for Computer Scientists According to the Bureau of Labor and Statistics, 5 of the top-10 growing jobs have a computer science focus. (Reprinted with Permission from onInvesting)
20
The Demand for Computer Scientists National Job Outlook –$61,407 is the average starting salary for computer science degrees in the class of 2009 (among top 3 highest starting salaries); 9.7% increase over 2007 offers –1000s of openings each at Microsoft Game Studios, Electronic Arts, Epic Games, Google –Epic Games President: “We do not hire anyone under $100k”
22
The Demand for Computer Scientists Local Job Outlook –In Birmingham, there was a recent need for 200 Java programmers; exceeded university’s ability to deliver employees –CTS hiring several new developers each month –Summary of recent openings in Birmingham: JAVA/J2EE/EJB ($60/hr), Peoplesoft ($95/hr), SAP Technical ($85/hr), SAP Functional ($95/hr), Corba ($55/hr), Oracle DBA ($70/hr), DB2 DBA ($70/hr), Sybase DBA ($75/hr),.Net,vb.net,C#,asp.net ($60/hr), C/C++ ($55/hr), Cobol ($55/hr) Recent Birmingham Software Success –UAB CIS Graduates –Dr. Stephen Brossette (Founder) Dr. Daisy Wong (Dir. IT) –Estimated $100M –179% growth – tops among Birmingham companies
23
The Potential for Alabama Per capita, Huntsville is one of the top five cities in the US with concentration of software developers, and #1 in terms of total engineers. Cummings Research Park is the second largest in the United States and the fourth largest in the World. Huntsville
24
Myth of Computer Science According to the Alabama Learning Exchange (ALEX) 1, computing is equated to learning Microsoft Word and various mechanical tasks; this is not Computer Science! 1 http://alex.state.al.us/standardAll.php?grade=9&subject=TC&summary=2
25
High School Outreach at UAB CIS Mentoring for Science Fair CompetitionsSummer Camps Weekly mentoring at UAB throughout academic year; students treated like a PhD student with office space www.cis.uab.edu/gray/Pubs/jerrod-sutton.pdf www.cis.uab.edu/progams/camps www.cis.uab.edu/heritage www.cis.uab.edu/progams/hspc www.cis.uab.edu/progams/alice-festival Programming Contest and Alice Festival 6 weeks High School; 1 weeks Middle School Tuition Scholarships Available Taught by UAB Faculty Topics include Java, robotics, graphics, game programming, scientific computing In 2009, over 65 students attended May 2010 Over 150 students and parents from across Alabama Prizes: Laptop, Xbox, software, books, gift certificates Alice Film Festival!
26
ASFA Example Projects Robotics Examples from Past Summer Camps Cool Alice Video Game –Justin Harrison Recent Science Fair Projects: –Omar and Jemale –Wisdom –Josh
27
Examples in CS Research
28
Model Transformation Toolsuite Model Transformation Engine Transformation Testing Framework Model Transformation Debugger Model Version Control Model-Driven Program Transformation Evolution of large legacy apps from models Transformed Bold Stroke C++ code Common/Project Library of Bold Stroke C++ Source Code DMS Transform ation Rules DMS void BM__PushPullComponentImpl::Update (const UUEventSet& events) { BM__ComponentInstrumentation::EventConsumer(Ge tId(), "Update", events); unsigned int tempData1 = GetId().GetGroupId(); unsigned int tempData2 = GetId().GetItemId(); std::vector ::iterator devIter = void BM__PushPullComponentImpl::Update (const UUEventSet& events) { UM__GUARD_EXTERNAL_REGIO N(GetExternalPushLock()); BM__ComponentInstrumentation::EventConsumer(GetI d(), "Update", events); default base domain Cpp~VisualCpp6. pattern UM_GUARD_EXTERNAL_REGION_as_ identifier_or_template_id(): identifier_or_template_id = "UM__GUARD_EXTERNAL_REGION". pattern GetExternalPushLock_as_identifier_or_te mplate_id(): identifier_or_template_id = "GetExternalPushLock". pattern ExternalLockStmt(): expression_statement = "\ default base domain Cpp~VisualCpp6. pattern UM_GUARD_EXTERNAL_REGION_as_ identifier_or_template_id(): identifier_or_template_id = "UM__GUARD_EXTERNAL_REGION". pattern GetExternalPushLock_as_identifier_or_te mplate_id(): identifier_or_template_id = "GetExternalPushLock". pattern ExternalLockStmt(): expression_statement = "\ ESML Models Jing Zhang and Jane Lin www.cis.uab.edu/gray/Research/C-SAW/ Software Composition and Modeling Laboratory http://www.cis.uab.edu/softcom/ Hui Wu www.cis.uab.edu/wuh/DDF Eclipse DSL Debugging Framework Supported by: Eclipse Innovation Grant Framework for building debuggers and testing engines for different categories of domain-specific languages AspectG is an aspect weaver for grammars
29
Speech Enabled Software Development Assistive technology for disabled programmers Integrates open source speech recognition with a popular open IDE Videos and papers available at: www.cis.uab.edu/info/Eclipse/SpeechClipse SpeechClipse Language Independent Refactoring and Aspect Weaving Suman Roychoudhurry www.cis.uab.edu/softcom/GenAWeave Software Composition and Modeling Laboratory http://www.cis.uab.edu/softcom/ Clone Analysis and Visualization Robert Tairas www.cis.uab.edu/tairasr/clones Visualization and analysis of clone detection results from CloneDR as an Eclipse plug-in
30
Synopsis of my Research Area Techniques that enable software developers to automate common tasks Improved modularity to enable adaptive changes to large-scale software Supporting end-users with notations and languages that are appropriate for their domain, rather than computer programming languages
31
The “Twisted Plot” Metaphor The Problem of Keeping Track of Things in Your Head The interactions among characters and overlapping events makes a good novel (“thickness” of plot as a complexity metric) The author must take care in preserving, throughout the entire novel, internal consistency within plot e.g., a change in the conclusion of the plot may necessitate global changes in all chapters Keeping track of all the twists can be difficult because the various concerns of the plot are distributed across multiple chapters but…Software development is MANY orders of magnitude more difficult! Logically Consistent? … Chapter 2 Conclusion Chapter 1 …
32
Poor Engineering leads to ad-hoc structure! The result of continuous building without any thought toward design. Result: Stairs leading to ceiling; Windows in the middle of room; Doors opening to wall; Non-intuitive floor plan!. Winchester Mystery House: http://www.winchestermysteryhouse.com/
33
Poor Engineering leads to ad-hoc structure! The result of continuous building without any thought toward design. Problems: How would you maintain this if something went wrong? How would you extend this to add more connections or features?
34
Poor Engineering Has Disastrous Consequences! Aerodynamic phenomena in suspension bridges were not adequately understood in the profession nor had they been addressed in this design. New research was necessary to understand and predict these forces. The remains, located on the bottom of the Sound, are a permanent record of man's capacity to build structures without fully understanding the implications of the design. http://www.nwrain.net/~newtsuit/recoveries/narrows/narrows.htm
35
Poor Engineering Has Disastrous Consequences! $7 Billion Fire Works – One Bug, One Crash On 4 June 1996, the maiden flight of the Ariane 5 launcher ended in a failure. Only about 40 seconds after initiation of the flight sequence, at an altitude of about 3700 m, the launcher veered off its flight path, broke up and exploded. The failure of the Ariane 501 was caused by the complete loss of guidance and attitude information 37 seconds after start of the main engine ignition sequence (30 seconds after lift- off). This loss of information was due to specification and design errors in the software of the inertial reference system. http://java.sun.com/people/jag/Ariane5.html http://www.around.com/ariane.html http://archive.eiffel.com/doc/manuals/technology/contract/ariane/page.htm l The launcher started to disintegrate at about H0 + 39 seconds because of high aerodynamic loads due to an angle of attack of more than 20 degrees that led to separation of the boosters from the main stage, in turn triggering the self-destruct system of the launcher. This angle of attack was caused by full nozzle deflections of the solid boosters and the Vulcain main engine. These nozzle deflections were commanded by the On-Board Computer (OBC) software on the basis of data transmitted by the active Inertial Reference System (SRI 2). Part of these data at that time did not contain proper flight data, but showed a diagnostic bit pattern of the computer of the SRI 2, which was interpreted as flight data. The reason why the active SRI 2 did not send correct attitude data was that the unit had declared a failure due to a software exception. The OBC could not switch to the back-up SRI 1 because that unit had already ceased to function during the previous data cycle (72 milliseconds period) for the same reason as SRI 2. The internal SRI software exception was caused during execution of a data conversion from 64-bit floating point to 16-bit signed integer value. The floating point number which was converted had a value greater than what could be represented by a 16-bit signed integer. This resulted in an Operand Error. The data conversion instructions (in Ada code) were not protected from causing an Operand Error, although other conversions of comparable variables in the same place in the code were protected. The error occurred in a part of the software that only performs alignment of the strap-down inertial platform. This software module computes meaningful results only before lift-off. As soon as the launcher lifts off, this function serves no purpose. The alignment function is operative for 50 seconds after starting of the Flight Mode of the SRIs which occurs at H0 - 3 seconds for Ariane 5. Consequently, when lift-off occurs, the function continues for approx. 40 seconds of flight. This time sequence is based on a requirement of Ariane 4 and is not required for Ariane 5. The Operand Error occurred due to an unexpected high value of an internal alignment function result called BH, Horizontal Bias, related to the horizontal velocity sensed by the platform. This value is calculated as an indicator for alignment precision over time. The value of BH was much higher than expected because the early part of the trajectory of Ariane 5 differs from that of Ariane 4 and results in considerably higher horizontal velocity values.
36
Even building a dog house takes some engineering and design… From http://www.ttyler.8m.com/Dog%20House.htmhttp://www.ttyler.8m.com/Dog%20House.htm Initially started as a "basic" dog house but soon turned into a masterpiece of quality workmanship. Total time spent was 8 hours at a cost of $110 US. Start with a piece of paper and a idea: Design your dog house to the size and quantity of your dogs. A perfectly built home is worthless if its to small to properly accommodate your dog. Framing: The framing process should be constructed with 2x4's or rip them in half for smaller homes. A removable roof should be incorporated in assisting the future cleaning and maintenance. Wall Covering: Should be tong & grove for a tight fit, no warping, and to cut down on cross drafts. For large homes, plywood is a economical material that can be used. Roof: 30 year home shingles cut down to the proper size. As for this house, an oriental piece was constructed then topped of with a copper fence post top. An additional hours work and $15 cost was needed Trim & Finishing Touches: Trim can add a lot to the astidics of your dog house. Trim can be bought with may different variations or with some craftsmanshipcan can be made with the use of a router. Sanding & Paint: Sink all nails below the surface and cover with wood filler. Prepare surface for painting by sanding wood filler, rough spots, and blemishes.
37
Code Clone Refactoring: Removing Redundancy in your Code
38
38 Code Clones Code clone: a sequence of statements that are duplicated at multiple locations in a program Research shows that 6-8% of large-scale application code are clones (Jiang, 2007) Source Code Cloned Code
39
39 int func1() { int x = 1; int y = x + 5; return y; } int func2() { int p = 1; int q = p + 5; return q; } int main() { int x = 1; int y = x + 5; return y; } int func3() { int s = 1; int t = s + 5; s++; return t; } Types of Clones Exact match Exact match with differing variable names Near exact match Original code int func1() { int x = 1; int y = x + 5; return y; } int func2() { int p = 1; int q = p + 5; return q; } int main() { int x = 1; int y = x + 5; return y; } int func3() { int s = 1; int t = s + 5; s++; return t; } int func1() { int x = 1; int y = x + 5; return y; } int func2() { int p = 1; int q = p + 5; return q; } int main() { int x = 1; int y = x + 5; return y; } int func3() { int s = 1; int t = s + 5; s++; return t; } int func1() { int x = 1; int y = x + 5; return y; } int func2() { int p = 1; int q = p + 5; return q; } int main() { int x = 1; int y = x + 5; return y; } int func3() { int s = 1; int t = s + 5; s++; return t; }
40
Scientific Method in CS Research
41
Model-Driven Engineering: Customized Languages with Domain-Specific Modeling
42
Categories of End-Users Admin Assistants Businessperson Auto Factory Worker Scientist Spreadsheet Business Query Systems Modeling Language DSL for Physics
43
Domain-Specific Modeling
44
44 Model-Driven Engineering (MDE) MDE: specifies and generates software systems based on high-level models Domain-Specific Modeling (DSM): a paradigm of MDE that uses notations and rules from an application domain Metamodel: defines a Domain- specific Modeling language (DSML) by specifying the entities and their relationships in an application domain Model: an instance of the metamodel Model Transformation: a process that converts one or more models to various levels of software artifacts (e.g., other models, source code)
45
Question But what is a model?
46
A very popular model: geographical maps Models repOf System 2000 Census Map Aerial Map Model Road Map 1777 City Plan The System
47
Every map has a legend legend = metamodel Model c2 Metamodel
48
Another Notation (DSL) Model Metamodel c2 Music notation Sheet music Executable Model Power Tab Editor Two Views: Traditional notes Guitar tab
49
Characteristics of Modeling Languages Each model conforms to its metamodel A model is a representation of a system satisfying substitutability For each question that can be asked of the system, the model produces the same answer Not true for me and road maps! (from Jean Bezivin)
50
Core Focus: Ability to evolve models The size of system models will continue to grow Models containing several hundreds or even thousands of modeling elements Others have reported similarly (multiple thousands of nodes) A key benefit of modeling Ability to explore various design alternatives (i.e., “knobs”) E.g., understanding tradeoff between battery consumption and memory size of an embedded device E.g., scaling a model to 800 nodes to examine performance implications; reduce to 500 nodes with same analysis… Reducing complexities of the modeling activity Limit the amount of mouse clicking and typing required within a modeling tool to describe a change Improves productivity and reduces potential manual errors A general metric for determining the effectiveness of a modeling toolsuite comprises the degree of effort required to make a correct change to a set of models.
51
51 Challenges in Software Evolution: 1. Model Evolution ∆ M : The changes made to the models As the size of system models grows, techniques and tools are needed to automate complex change evolution
52
52 Is it easy to evolve a model manually? 1.Select the model element icon and drag it to the editor window 2.Build the connections 3.Set the values of the properties
53
53 Deep hierarchy ! Growing size ! Model scaling concerns ! Crosscutting concerns ! Challenge 1: Solved with Aspect-Oriented Modeling Crosscutting Constraints in Real-Time/Embedded Models
54
54 Challenges in Software Evolution: 2. Legacy Evolution ∆ S : The changes made to the legacy source A small modification in the high-level requirements may trigger drastic manual changes in large portions of the low-level legacy source code
55
55 Challenges in Software Evolution: 3. Model/Code Co-Evolution ∆ M : The changes made to the models ∆ S : The changes reflected in the source code Conformity between the models and underlying source code needs to be established in order to maintain the fidelity of the whole system
56
Evolution of legacy models and code ∆ MM : The changes made to the meta-models ∆ M : The changes reflected in the domain models ∆ I : The changes reflected in the legacy source Legacy Source 1 Model 1 Metamodel 1 Define Interpret Legacy Source n Model n Metamodel n Define Interpret Legacy Source 0 Model 0 Metamodel 0 Define Interpret ∆ M 1 ∆ MM 1 ∆ I 1 ∆ M 2 ∆ MM 2 ∆ I 2 ∆ M n ∆ MM n ∆ I n …… Based on What about other artifacts of the modeling process during metamodel evolution? Interpreters, constraints, model transformations…
57
For more information… www.uab.edu UAB Main Web SiteUAB CIS Web Site www.cis.uab.edu You all are invited to come take a tour and visit our department! Summary of K-12 Outreach Activities (videos and photos) www.cis.uab.edu/gray/outreach/outreach.html
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.