380 likes | 507 Views
Whither Software Engineering Education?. Mary Shaw Institute for Software Research Carnegie Mellon University. Conference theme Ensuring that academic programs match actual real-world needs Today, consider stakeholders status quo what next?. Conference theme
E N D
Whither Software Engineering Education? Mary Shaw Institute for Software ResearchCarnegie Mellon University
Conference theme • Ensuring that academic programs match actual real-world needs • Today, consider stakeholders status quo what next?
Conference theme • Ensuring that academic programs match actual real-world needs • Today, consider Stakeholders: Students, users, developers, educators Status quo What next?
For current undergraduates … • …email is too slow, snail mail is irrelevant • …card catalogs have never been the way to find a book • …there has always been DNA fingerprinting & genome maps • …there has always been a World Wide Web • …avatars have nothing to do with Hindu deities • …cable TV has always provided phone service • …wars have always been broadcast on TV in real time • …dey r alws txtN 1 NothA • …books have always been readable on electronic screens • …electronic filing of tax returns has always been possible • …phones have always had caller ID • …Dilbert has always been ridiculing cubicle culture Beloit Mindset List, classes of 2011-2014
… as for the (American) adults … • ... 79% use the Internet • decreases with age • Increases with education, income • …85% have cellphones (95% of 18-34yo) • 28% have 4+ internet devices • …47% use cellphones/tablets for news/information • 42% weather, 37% local business, only 11% news via apps • mobile devices displacing laptops and desktops for access • …users increasingly manage reputation with search & social media • 57% of internet users monitor reputation with search engines • 46% of internet users have created profiles on social network sites • 18-29yos are more likely to limit personal information Pew Internet and American Life Project
Same Very similar
There are lots of end users … Using data from the Bureau of Labor Statistics, we estimate that over 90M Americans will use computers at work in 2012. Of these, only about 2.5M will be professional programmers; 40.5M will be managers and (non-software) professionals. This does not include home users or non-US users, so there will be many more than 90M total end users. Most of them will “program” in some way. Scaffidi et al. Estimating the Numbers of End Users and End User Programmers. VL/HCC'05.
… and they are not all alike Analysis of web-based survey of Information Week readers Scaffidi et al. Dimensions Characterizing Programming Feature Usage by Information Workers. VL/HCC'06
End users are normal people • End users lack robust mental models of computing • they fail to do backups, don’t understand storage models • they can not safely configure a network • End users put themselves at risk • they execute malware and open attachments • they do not understand privacy issues • they trust information without validating sources • SE responds by trying to “fix” the users • But there is ample evidence that most people do not reason in the linear, rational form that SE prefers
Computing, electronic communication, and the internet have penetrated deeply into American life • The public at large remains largely consumers … • …but increasingly producers of information • …with synthesis, fusion, and programming lagging • CS/SE has not served the public well … • … products are still often inscrutable • … system administration is not for the faint of heart • … programming tools are mostly still for geeks • … we educators don’t do much to help them
What about the faculty (in PhD-granting schools)? • Rank 2009-10 2001-02 %changeN % N % • Full 2204 40 1767 35 25 • Associate 1677 31 1184 24 42 • Assistant 892 16 1246 25 28 • Teaching Faculty 721 13 785 16 8 • Total Faculty 5494 498210 • PhD enrollment 15,038 10,021 50 • BS enrollment 58,784 94,461 38 • Growing slowly, but BS enrollments down • Limited capacity to teach nonmajors (the 90 million) • Getting more senior • Less likely to use computing as students do CRA Taulbee Survey 2001-2002 and 2009-2010
Conference theme • Ensuring that academic programs match actual real-world needs • Today, consider Stakeholders: Students, users, developers, educators Status quo: The world, research, curriculum What next?
The Ten Best Jobs of 2011 • CareerCast, May 2011 • Software Engineer • Mathematician • Actuary • Statistician • Computer Systems Analyst • Meterologist • Biologist • Historian • Audiologist • Dental Hygienist
“Red Hot: The Computer Science Job Market “ • From ACM TechNews, 5/23/2011 “Across the United States, new computer science graduates from strong programs are receiving extraordinary job offers, writes Ed Lazowska … 2011 CSE graduates at U Washington have reported starting salaries as high as $105,000 and signing bonuses as high as $30,000 …due to the recent tech industry boom … just about every field is starting to rely heavily on information technology …”
In other news … • Congressman wants FTC probe of iPhone tracking • Sony Hacked Again; 25 Million Entertainment Users' Info at Risk • Amazon Apologizes For Server Disaster • Apple kills App Store number growth, focuses on fairness, app quality • Tweets, Facebook welcome in Mass. courtroom • 'Do Not Track' Legislation Is On the Move • Oracle updates Business Intelligence with iPad in mind • Password-storing service may have been hacked • Control your home with your smartphone • Cisco rolls out data center pods • Raspberry Pi: Computer on a stick for only $25 • State Dept computer error halts immigration lottery • Amazon server may have been used in Sony attack
Internet resources • Information: unstructured text, formatted text, databases, live data feeds, images, maps, current status (e.g., inventory, location) • Calculation:reusable software components, applications that can be invoked remotely (e.g., services) • Communication:messages, social networking, streaming media, synchronous communication, agent systems, alert/notification services, highly distributed systems • Control:coordination for use of resources, access to registration and subscription services • Services:simulation, editorial selection, markets evaluation, secondary information, responsive experts,
Properties of internet resources • Autonomous:independently created and managed, may change structure or format without notice • Heterogeneous: different packagings, output often for viewing only, different business objectives, conditions of use • Open affordances: independent systems, not dependent components, incidental effects may be useful, humans integral to some resources • Undermines common assumptions: it’s all about programs; someone is “in charge” or “in control”
Here at CSEE&T … • Learning environments, tools, and eLearning • Education & training for “real-world” Software Engineering practices • Systems and Software Engineering • Curriculum and inter-disciplinary offerings • Training models in industry • Combining research and teaching • Industry-academia collaboration models • Student performance evaluation and assessment • Student projects and internships • Combining research and curriculum • Education theory and pedagogy
… and at ICSE … • Using Statistical Tests to Assess Randomized Algorithms • Impact of Fault Models on Software Robustness Evaluation • Refactoring Pipe-like Mashups for End-User Programmers • Mining Message Sequence Graphs • An Empirical Study of Build Maintenance Effort • Inferring Better Contracts • Coverage Guided Systematic Concurrency Testing • Frequency and Risks of Changes to Clones • Symbolic Model Checking of Software Product Lines • Program Abstractions for Behaviour Validation • Detecting Software Modularity Violations • Reverse Engineering Feature Models
Conference theme • Ensuring that academic programs match actual real-world needs • Today, consider Stakeholders: Students, users, developers, educators Status quo: The world, research, educators What next?: What to teach? To whom?
What should we teach? • Durable, fundamental ideas … • … in the context of current practice • To whom? • Future professional software developers • Practicing software engineers • Other computer scientists • Non-majors == future end users
Durable ideas • Abstraction (and the Hoare mapping) • Exponential growth • Divide & conquer (reductionistic vs emergent) • Design spaces • Tradeoffs – utility, costs, benefits • Models, programs as models • Algorithms/representations • Predicate logic • Not to have blind faith in analysis • Design as management of scarce resources • Correctness relative to specification vs in context
CMU’s approach to SE education • Distinctive nature of engineering for software • Software is design-intensive; manufacturing cost is small • Software is symbolic, abstract, more constrained by complexity than by physical laws • Software engineering rests on three foundations • Core computer science: technical conceptual foundation • Engineering knowledge: design and problem solving • Social and economic context: basis for fitness for use Software engineering is the branch of computer science that creates practical, cost-effective solutions to computation and information processing problems, preferentially applying scientific knowledge
Core Computer Science • Abstraction enables the control of complexity. • Imposing structure on problems often makes them more tractable, and a number of common structures are available. • Symbolic representations are necessary and sufficient for solving information-based problems. • Precise models support analysis and prediction. • Common problem structures lead to canonical solutions. • Exponential growth limits many solutions
CSTB: CS research … • … involves symbols and their manipulation • … involves the creation and manipulation of abstractions • … involves the creation and study of algorithms • … creates artificial constructs, unlimited by physical laws • … exploits and addresses exponential growth • … seeks fundamental limits on what can be computed • … addresses the complex, analytic, rational action that is associated with human intelligence CSTB: Computer Science: Reflections on the Field, Reflections from the Field, National Academies Press 2004
Engineering Knowledge • Engineering quality resides in engineering judgment • Quality of the software product depends on the engineer's faithfulness to the engineered artifact. • Engineering requires reconciling conflicting constraints • Engineering skills improve as a result of careful systematic reflection on experience. • Note: this views SE as an engineering discipline, notas a process and management discipline
Social and Economic Context • Costs and time constraints matter, not just capability. • Technology improves exponentially, but human capability does not • Successful software development depends on teamwork by creative people. • Business and policy objectives constrain software design and development decisions as do technical considerations. • Software functionality is embedded in institutional, social, and organizational structure; • Clients usually don’t know precisely what they want; the developer must facilitate discovery of requirements
Pedagogical principles • University education must provide knowledge of enduring value together with current competency • Tools and skills cannot replace engineering judgment • Hands-on, attentive time on task is critical to learning • much more important than format of presentation • Curriculum design is a resource allocation problem • Admissions should be selective, and we should make every effort to help admitted students succeed • Sampling is ok; we do not have to cover everything • The “Carnegie Plan” provides excellent guidance
Carnegie Plan A Carnegie Mellon education aims to prepare students for life and leadership. In a continually changing world, the most important qualities we can help our students develop are the ability to think independently and critically, the ability to learn, and the ability to change and grow. As future leaders they must have courage to act, be sensitive to the needs and feelings of others, understand and value diversity, and honor the responsibilities that come with specialized knowledge and power. • That is, teach students • to think critically and independently and • to act as responsible professionals in their disciplines • to be informed, engaged citizens in the world
What about the end users? • 80 million users are creating information/computing artifacts • mostly without thought of maintenance • Mostly without considering engineering issues • These artifacts only vaguely resemble software of the kind we teach • We are not giving them much help • For most, taking our courses is not what they need • For most, our level of detail and rigor is too high • They need simple, intuitive models • The models need to be good-enough (cf thermostats)
Software Engineering Software-Intensive socio-technical systems involving data, communications, … Closed-shopsoftware Software Developers People whose principal professional is not software, but who develop software Professional SW developers Software Education 80 million end users, mostly creating information artifacts 2.5 millionprofessionals