Communication systems and networks, key enablers for digitizing industry and society – opportunities and challenges
The combination of automation, machine intelligence and 5G networks will provide a wealth of opportunities that can improve productivity and speed up the delivery of services for industry and society. 5G technology with cloud computing technologies, big data analytics, high-quality wireless connectivity communication, and IT capabilities enable overall digital transformation in virtually all areas of the modern society, with high ability to fit the specific business needs. These new technologies and approaches introduce however new challenges on the communication systems, networks, and not least software development, which will be addressed by this talk.
Magnus Frodighr Magnus Frodigh is acting Head of Ericsson Research. Prior to taking up this position, Magnus was Research Area Director for Network Architecture and Protocols at Ericsson Research, he was responsible for research in network architecture and protocols covering radio networks, transport networks and core networks including network management. Magnus joined Ericsson in 1994 and has since held various key senior positions within Ericsson’s Research & Development and Product Management focusing on 2G, 3G, 4G and 5G technologies. He was born in Stockholm, Sweden, in 1964. Magnus holds a Master of Science degree from Linköping University of Technology, Sweden and a Ph.D. in Radio Communication Systems from Royal Institute of Technology in Stockholm, Sweden. Since 2013 Magnus is adjunct Professor at Royal Institute of Technology in Wireless Infrastructures.
Frederick P. Brooks, Jr.
Learning the Hard Way: A History of Software Engineering 1948-1980
First came the Program, 1948. Then the Program Product, a program designed to be distributed to others than the author-generalized, documented, tested, maintained, 1950. Then the Program System, a collection of programs designed to work together-defined interfaces, system-integrated, system-tested, 1956. Then the Program System Product, combining the features, labors, and complexities of both,1963. Many ambitious projects were undertaken; many failed. Over-optimistic goals and schedules abounded. Sometime in this sequence software builders each recognized that building a software system project was about an order of magnitude more effort than just writing the component programs. Process and management techniques had to be devised. Originally, they were borrowed from the electrical and civil engineering disciplines. The discipline as such was born and named at the 1968 NATO Conference on Software Engineering. We identify some of the milestones in the '50's, 60's, and 70's.
Frederick P. Brooks, Jr. is Kenan Professor of Computer Science, Emeritus, at the University of North Carolina at Chapel Hill. He was an architect of the IBM Stretch and Harvest supercomputers. He was Corporate Project Manager for the IBM System/360 mainframe family (now Zsystems), including development of the System/360 computers' hardware, and the Operating System/360 software. He founded the UNC-CH Department of Computer Science in 1964 and chaired it for 20 years. His research there has been in computer architecture, software engineering, and interactive 3-D computer graphics ("virtual reality"). His best-known books are *The Mythical Man-Month: Essays on Software Engineering *(1975, 1995); *The Design of Design (2010)*; and, with G.A.Blaauw, *Computer Architecture: Concepts and Evolution* (1997). Dr. Brooks has received the U.S. National Medal of Technology, the A.M. Turing Award of the ACM, and others. He is married (61 years) to Nancy Greenwood Brooks. They are joyous servants of Jesus Christ. They have three children and nine grandchildren. For more information see: https://www.cs.unc.edu/~brooks/.
The Language as a Software Engineer
It was 1959. We were building real-time systems for weather prediction, homeland security and space travel. The space mission software had to be man-rated. Not only did it have to work; it had to work the first time. Not only did the software, itself, have to be ultra-reliable, it needed to be able to perform error detection and recovery in real time. Our languages dared us to make the most subtle of errors. We were on our own to come up with rules for building software. What we learned from the errors was full of surprises. Classifying the errors led to a set of allowable patterns that led to a language together with its preventative paradigm. We have found that a system defined with such a language has properties that inherently support its own development, "before the fact"; including that which becomes no longer needed. We continue to discover new properties in these systems. Lessons learned throughout this process will be discussed in terms of both the earlier systems and the systems of today; and in terms of what is possible for systems of tomorrow.
Margaret H. Hamilton is CEO of Hamilton Technologies, Inc. Margaret H. Hamilton graduated in 1958 with a mathematics major and philosophy minor from Earlham College. To prepare for further studies in abstract math at Brandeis University, she took a "temporary" position at MIT, developing weather prediction software for Edward N. Lorenz in hexadecimal on the LGP-30. Hamilton then developed software on the XD-1 for the SAGE air defense system at Lincoln Laboratories. As soon as she heard MIT was looking for people to build software for "sending man to the moon", she joined NASA/MIT's project to build Apollo's on-board flight software, starting with the unmanned missions. To give their software “legitimacy”, so it (and those building it) would be given due respect; she made up the term “software engineering” to establish it as a form of engineering in its own right. For the manned missions, Hamilton was in charge of the team that developed the on-board flight software for the command and lunar modules (she was then the Director of the Software Engineering Division at MIT's Instrumentation Laboratory). With her Display Interface Routines error detection and recovery programs, she created new man-in-the-loop concepts that provided the ability for the on-board flight software to communicate asynchronously in real-time with the astronaut within a distributed system-of-systems environment. This allowed the software (running in parallel with the astronauts) to interrupt the astronauts and replace their normal displays with Priority Displays in case of an emergency (such as it was during Apollo 11's landing). She led an empirical study of Apollo and later efforts, resulting in her systems and software theory of control; based on lessons learned. From its axioms, the universal systems language was derived together with its automation and "development-before-the-fact" preventative software engineering paradigm. Hamilton received the NASA Exceptional Space Act Award (2003), and the Presidential Medal of Freedom awarded by Barack Obama (2016).
50 years of Software Engineering or The View from Garmisch (paper)
On several earlier anniversaries of the 1968-69 NATO Software Engineering conferences I have acceded to requests to provide some reminiscences. I repeat some extracts from these reminiscences here, as a backdrop to brief comments on subsequent developments, and in particular on the distinctions between developing off-the-shelf package software and large one-off bespoke software systems. The software package industry had yet to come into existence in 1968-69, but has proved very successful. But some large software projects in the latter bespoke category still suffer from problems that are all too reminiscent of those that, in 1968, gave rise to discussion of a “software crisis”.
Brian Randell graduated in Mathematics from Imperial College, London in 1957 and joined the English Electric Company where he and colleagues implemented the Whetstone KDF9 Algol compiler. From 1964 to 1969 he was with IBM in the United States, mainly at the IBM T.J. Watson Research Center, working on operating systems, the design of ultra-high speed computers and computing system design methodology. With first Peter Naur and then John Buxton he co-edited the two original NATO Software Engineering Reports. He then became Professor of Computing Science at Newcastle University, where in 1971 he set up the project that initiated research into the possibility of software fault tolerance. He has been Principal Investigator on a succession of research projects in reliability and security funded by EPSRC, MoD, and the EU. Another, continuing, research interest has been the history of computing. He has published over three hundred technical papers and reports, and is co-author or editor of seven books. He is now Emeritus Professor of Computing Science, and Senior Research Investigator, at Newcastle University, working on failure analysis of complex evolving systems. He is a Fellow of the BCS and the ACM, and was a Member of the Conseil Scientifique of the CNRS, France (2001-5), Chairman of the IEEE John von Neumann Medal Committee (2003-5), and a Member and then Chairman of the ACM A.M. Turing Award Committee (2005-9). He has received a D.Sc. from the University of London, and Honorary Doctorates from the University of Rennes, and the Institut National Polytechnique of Toulouse, France.
ACM SIGSOFT Research Award
Relevance, Simplicity, and Innovation: Stories and Takeaways from Software Engineering Research
The year is 1993, and I give my very first talk at a big software engineering conference. Right in the middle of my example, a professor stands up and exclaims with a mocking smile “To me, this looks like a solution looking for a problem!”. The audience erupts in laughter, and my advisor sits in the first row, grinning. How would I get out of there? And why would this experience shape all of my career from now? Telling three stories around three conference events, I unfold lessons on impact in software engineering research: Do relevant work – strive for simplicity – keep on innovating.
Andreas Zeller is Faculty at the Center for IT-Security, Privacy, and Accountability (CISPA), and professor for Software Engineering at Saarland University, both in Saarbrücken, Germany. His research concerns the analysis of large software systems and their development process. In 2010, Zeller was inducted as Fellow of the ACM for his contributions to automated debugging and mining software archives, for which he also was awarded 10-year impact awards from ACM SIGSOFT and ICSE. In 2011, he received an ERC Advanced Grant, Europe's highest and most prestigious individual research grant, for work on specification mining and test case generation.
50 years of SE
50 years of software engineering, so now what?
“This is not the end, it is not even the beginning of the end, maybe it is the end of the beginning” (Winston Churchill). We are more than 20 million software developers on the planet, with a large number of methods to develop software. However, the most successful recipe for success is a method that focuses on hiring the most brilliant people in the world and empowering them to create wonders. 50 years ago, Ericsson in Sweden did that. Now Apple, Google, Amazon, etc. do that. What about the rest of the world? – banks, insurance, airlines, defense, telecom, automotive, etc. How can we get these industries to be more innovative and develop better software, faster, cheaper and with happier customers? How can we do that given that the state of the art of our discipline is in such a chaos, characterized by the multitude of competing methods out there? It starts with education, but it doesn’t end there. It goes on to dramatically change the way we work with methods, how we teach, learn, change, and in particular use them. I will introduce Essence: a new way of thinking that promises many things, never before known to software engineering, but already being adopted by for instance Scrum.
Ivar Jacobson was born in Ystad, Sweden, graduated from Chalmers as an electrical engineer, got his Ph.D. from KTH Royal Institute of Technology, was rewarded the Gustaf Dalén medal from Chalmers in 2003, and made an honorary doctor at San Martin de Porres University, Peru, in 2009. Ivar has both an academic and an industrial career. He has authored 10 books in software, system and business development, most of them best-selling. He has written more than hundred papers, and in the last couple of years had seven papers published in CACM and ACM Queue. He is a frequent keynote speaker at conferences around the world. After graduation from Chalmers he started to work at Ericsson. His major contribution there was the creation of a new way of developing software, component-based development, which was adopted in the development of the AXE system. This system was the greatest commercial success story ever in the history of Sweden, and it still is. Later he founded the company Objectory, which was acquired by Rational Software, now part of IBM. In 2004 he founded his current company Ivar Jacobson International, now an international leader in software development methods. Ivar Jacobson is a father of components and component architecture, use cases, the Unified Modelling Language and the Rational Unified Process. However, all this is history. Lately he has been working on how to deal with methods and tools in a smart, superlight and agile way. He has developed a practice concept that is now being adopted by both developers and tool vendors. Now he is one of the leaders of a worldwide network SEMAT, which has the mission to revolutionize software development. And this is happening as we speak.
Industry Forum Keynote Speakers
Robotics, Software and Artificial Intelligence: State of the art and future challenges
The integral ability of any robot is to act in the environment, interact and collaborate with people and other robots. The current trend in computer vision is development of data-driven approaches where the use of large amounts of data tries to compensate for the complexity of the world captured by cameras. Are these approaches also viable solutions in robotics? Apart from 'seeing', a robot is capable of acting, thus purposively change what and how it sees the world around it. There is a need for an interplay between processes such as attention, segmentation, object detection, recognition and categorization in order to interact with the environment. In addition, the parameterization of these is inevitably guided by the task or the goal a robot is supposed to achieve. In this talk, I will present the current state of the art in the area of robot vision and discuss open problems in the area. I will also show how visual input can be integrated with proprioception, tactile and force-torque feedback in order to plan, guide and assess robot's action and interaction with the environment.
Danica Kragic is a Professor at the School of Computer Science and Communication at the Royal Institute of Technology, KTH. She received MSc in Mechanical Engineering from the Technical University of Rijeka, Croatia in 1995 and PhD in Computer Science from KTH in 2001. She has been a visiting researcher at Columbia University, Johns Hopkins University and INRIA Rennes. She is the Director of the Centre for Autonomous Systems. Danica received the 2007 IEEE Robotics and Automation Society Early Academic Career Award. She is a member of the Royal Swedish Academy of Sciences, Royal Swedish Academy of Engineering Sciences and Young Academy of Sweden. She holds a Honorary Doctorate from the Lappeenranta University of Technology. She chaired IEEE RAS Technical Committee on Computer and Robot Vision and served as an IEEE RAS AdCom member. Her research is in the area of robotics, computer vision and machine learning. In 2012, she received an ERC Starting Grant. Her research is supported by the EU, Knut and Alice Wallenberg Foundation, Swedish Foundation for Strategic Research and Swedish Research Council. She is an IEEE Fellow. Danica Kragic is leading the AI part of Wallenberg Autonomous Systems and Software Program.
Why Digitalization Will Kill Your (Software) Company Too
Incumbent companies in many industries have optimized themselves for traditional business models and are, for a variety of reasons, notoriously slow to change and adjust themselves to new market realities. At the same time, connectivity, data and services (in short: digitalization) enable new business models, new ecosystem engagements and new forms of value delivery to customers. As a consequence, many mature companies will be disrupted by new entrants and faster moving competitors. As evidenced by the ever-shortening tenure of companies on the Fortune 500 (now down to 10 years), this has already become a reality. In this keynote, I first provide more detail and insight into the specifics of the digitalization challenge and then outline how companies should act to maintain their competitiveness. This requires building new organizational capabilities around speed and continuous value delivery, transitioning from opinion-based to data-driven decision making, engaging with the ecosystems surrounding the company in new ways and finally transitioning from traditional hierarchical organizational models to empowered organizations with autonomous teams. The keynote uses examples from industry as well as results from research conducted in Software Center, a research collaboration with 11 companies, including Ericsson, Volvo Cars, AB Volvo, Saab Defense, Siemens, Bosch and Tetra Pak.
Jan Bosch is professor of software engineering at Chalmers University Technology in Gothenburg, Sweden. He is director of the Software Center (http://www.software-center.se), a strategic partner-funded collaboration between 11 large European companies and five universities focused on software engineering excellence. Earlier, he worked as Vice President Engineering Process at Intuit Inc where he also led Intuit's Open Innovation efforts and headed the central mobile technologies team. Before Intuit, he was head of the Software and Application Technologies Laboratory at Nokia Research Center, Finland. Prior to joining Nokia, he headed the software engineering research group at the University of Groningen, The Netherlands. His research activities include evidence-based development, software architecture, innovation experiment systems, compositional software engineering, software ecosystems, software product families and software variability management. He is the author of several books including "Design and Use of Software Architectures: Adopting and Evolving a Product Line Approach" and “Speed, Data and Ecosystems: Excelling in a Software-Driven World” , editor of several books and volumes and author of a significant number of research articles. He is editor for Journal of Systems and Software as well as Science of Computer Programming, chaired several conferences as general and program chair, served on numerous program committees and organized countless workshops. In the startup space, Jan is chairman of the board of Auqtus AB and, until recently, Fidesmo in Stockholm, Remente, in Gothenburg, Sweden. He serves on the advisory board of Assia Inc. in Redwood City, CA, Peltarion AB in Stockholm and Burt AB in Gothenburg, Sweden. Jan also runs a boutique consulting firm, Boschonian AB, that offers its clients support around the implications of digitalization including the management of R&D and innovation. For more information see his website: www.janbosch.com.
The software industry is not industrialised
In 1968, Douglas McIlroy made the observation that "the software industry is not industrialised." Today, 50 years (and many noble attempts) later, a mass-produced software components industry has yet to emerge. For us to achieve industrialisation, it must be possible for a developer to specialise, to earn a living selling their software 'component.' What prevents a developer from creating a business around a single component, from continually honing that component, and repeatedly selling that component? What does it take to unlock the viability of software specialisation for developers? And what should the world expect from a Software Industry that is industrialised?
Noel Lovisa is CEO and founder of Code Valley, a software development tools company that allows developers to utilise Emergent Coding to create software. Emergent Coding relies upon a decentralised platform for competitive compilation, where program requirements are given in language-agnostic form, and where each developer-owned node in the system receives payment every time it contributes compiled bytes to a new build. Noel Lovisa graduated in 1994 with a degree in Electrical and Electronic Engineering and a Masters in Computer Systems Engineering from JCU. It was during this time that he became fascinated by McIlroy's 1968 observation that "the software industry is not industralised." Noel set out to rectify this situation, founding Code Valley in 2000.
SEIP Keynote Speakers
Modern Trends through an Architecture Lens
The landscape of software-enabled systems has changed dramatically over the last ten years in terms of ubiquity, scale, and complexity. The resultant proliferation of data has given rise to the need for data analytics and data scientists. The availability of machine learning technology has exploded, creating many opportunities to explore its use in unprecedented areas. Autonomous and semi-autonomous systems have arrived. Humans have moved inside the system boundary resulting in cyber-physical-social systems. Open source libraries, frameworks, microservices, continuous development supported by tool chains, and agile approaches all aim to satisfy the appetite for accelerated capability from these systems. This talk will survey these trends and their impact on today’s software engineering. Of particular focus will be their impact on the software architecture of these systems: how universal and timeless is attention to architecture and does that attention still scale to the world we now inhabit?
Linda Northrop has over 45 years of experience in the software development field as a practitioner, researcher, manager, consultant, author, speaker, and educator. She is a Fellow at Carnegie Mellon University's Software Engineering Institute (SEI) where she is currently a part-time employee working for the CTO on strategic technical activities. During her tenure at the SEI, she held a number of leadership positions and collaborated with academic and industrial researchers and works with federal, energy, healthcare, and computational science agencies as well as commercial organizations. Under her leadership, the SEI developed software architecture and product line methods and a series of highly acclaimed books and courses that are used worldwide. Northrop also coauthored Software Product Lines: Practices and Patterns. She led a cross-disciplinary research group on ultra-large-scale systems that resulted in the book Ultra-Large-Scale Systems: The Software Challenge of the Future, which has motivated research at the SEI and around the world. Her main professional interests are software architecture, software product lines, ultra-large-scale systems, and software innovations to aid children with different abilities. Find Linda Northrop at: http://www.sei.cmu.edu/about/people/profile.cfm?id=northrop_13182.
Industrial-grade DevOps - Balancing Agility and Speed with Extreme Quality
DevOps is an adopted culture and practice in Enterprise and Consumer IT. Establishing DevOps in Industry, specifically for operations and control systems, is still a challenge. Stringent requirements, such as real-time performance and highest availability, regulatory compliance for safety and security, and the huge complexity of cloud to edge operations environments cannot be fully addressed with Enterprise DevOps methods, technologies, and environments. On the Dev side, for instance, it is essential to frontload quality assurance without degrading the speed of agile development. Novel methods and tools are required, such as for a knowledge-based application design, adaptive continuous testing, formal verification, and for application versioning and release management. Highest automation of all development and quality assurance tasks is success-critical. On the Ops side, for example, concepts and architectures for deployment are required that enable an update of features in run without degrading system availability. Similarly, new methods and infrastructures for continuous testing of deployed functions during operations are needed that do not interfere with the system under test. This talk introduces to the challenges of leveraging DevOps for Industry systems and provides deep dives into selected aspects of current research and state of practice.
Frank Buschmann works at Siemens Corporate Technology in Munich, Germany, where he is a key expert and technical leader in the research on software and systems architecture and software development technologies. Frank also advises development organizations in applying these technologies to realize innovative software products. Frank's current research interests include DevOps in Industry Environments as well as architecture paradigms, styles and patterns for Cyber-Physical (Production) systems, Edge computing, and the IoT. In his development work, Frank has lead the design and implementation of several large-scale industrial software projects, including business information, industrial automation, and telecommunication systems. Frank is co-author of four volumes of the "Pattern-Oriented Software Architecture" published by John Wiley & Sons.
The Car as a Computer On Wheels
The automotive industry is shifting more and more value from mechanics to software, and software is creating the customer experience. This means we are deploying software business models as well as software methods and practices. The customers are able to get cars that improve over their lifetime and the new approaches offer many opportunities, but also pose challenges to the established automotive eco system. This talk will address some of those opportunities and challenges and how car companies may think about the impact..
Ödgärd Andersson is Vice President of Vehicle Software and Electronics at Volvo Cars, passionate about making great car software that is a growing part of the content of the modern connected cars in everything from user experience, digital information and entertainment to autonomous, self-driving cars. Prior to the current position at Volvo Cars Ödgärd has a background of 20 years in telecommunications in Ericsson in Sweden and Silicon Valley, in positions ranging from design to leading large scale software development organisations. Ödgärd holds a Master of Science Degree from Chalmers University of Technology and is a member of Royal Swedish Academy of Engineering Sciences (IVA).
SEET Keynote Speaker
Using MOOCs to Teach Software Engineering
UBC’s introductory course has been MOOC based for 5 years. In that time, more than 5,000 UBC students have taken the course, spread across 40+ sections with more than a dozen instructors. Meanwhile hundreds of thousands of learners have participated in the public version of the courses. The MOOC has enabled us to invest significant resources in content and infrastructure development, and this has had a significant impact on the course, our teaching, and students learning experience. This talk will explore the effect our MOOC based course has had on lectures, labs, office hours, student feedback, and the instructor experience. Particular attention will be given to the way the MOOC has allowed us to leverage the expertise of a small software engineering group to deliver an SE based introductory course. We will also discuss the kinds of work that has been required to reach this point, implications for other parts of the program, and our rationale for our current development of MOOCs for the second and third software engineering courses.
Gregor Kiczales is Professor of Computer Science and Senior Advisor to the Provost on Digital Learning Strategy at the University of British Columbia. His longest line of research is directed at enabling programmers to write programs that, as much as possible, look like their design. In this line, he has worked on a number of projects in object-oriented programming, metaobject protocols, aspect-oriented programming and fluid aspect-oriented programming. His more recent work is on introductory programming methodology, online learning systems like MOOCs, as well strategic implications for universities in the face of rapid growth in students and innovation in online learning.
SEIS Keynote Speaker
Roberto Di Cosmo
Software Heritage: why and how we collect, preserve and share all the software source code.
Software is at the heart of our digital society and embodies a growing part of our scientific, technical and organisational knowledge. Software Heritage is an open non-profit initiative whose mission is to ensure that this precious body of knowledge will be preserved over time and made available to all.We do this for multiple reasons. To preserve the scientific and technological knowledge embedded in software source code. To allow better software development and reuse for society and industry. To foster better science, preserving research software, a stepping stone for reproducibility, and assembling the largest curated archive for software research. We do this now, because we are at a turning point: the founding fathers are still around, and willing to contribute their knowledge, but only for a limited time. And we face the risk of massive lose of source code developed by the Free and Open Source community, with code hosting sites that shut down when their popularity decreases. Software Heritage archives already more than 4 billion unique source code files, spanning more than 70 million projects, with their full development history.
Roberto Di Cosmo holds a PhD from the University of Pisa, and is full professor of Computer Science at University Paris Diderot since 1999, after a decade spent at Ecole Normale Superieure in Paris. He is currently on leave at Inria. He has been actively involved in research in theoretical computing, specifically in functional programming, parallel and distributed programming, the semantics of programming languages, type systems, rewriting and linear logic. His main focus is now on the new scientific problems posed by the general adoption of Free Software, with a particular focus on static analysis of large software collections, that were at the core of the European research project Mancoosi. Following the evolution of our society under the impact of IT with great interest, he is a long term Free Software advocate, contributing to its adoption since 1998 with the best-seller book "Hijacking the world", seminars, articles and software. He created the Free Software thematic group of Systematic in October 2007, and since 2010 he is director of IRILL, a research structure dedicated to Free and Open Source Software quality. In 2015, he founded Software Heritage, to build the universal archive of all the source code publicly available.
Most Influential Paper Award
Andrew J. Ko and Brad A. Myers
Debugging reinvented: asking and answering why and why not questions about program behavior
Andrew J. Ko is an Associate Professor at the University of Washington Information School and an Adjunct Associate Professor in Computer Science and Engineering. He directs the Code & Cognition Lab, where he invents and evaluates interactions between people and code, spanning the areas of human-computer interaction, computing education, and software engineering. He is the author of over 90 peer-reviewed publications, 9 receiving best paper awards and 3 receiving most influential paper awards. In 2013, he co-founded AnswerDash, a SaaS company offering instant answers on websites using a selection-based search technology invented in his lab. In 2010, he was awarded an NSF CAREER award for research on evidence-based bug triage. He received his Ph.D. at the Human-Computer Interaction Institute at Carnegie Mellon University in 2008. He received degrees in Computer Science and Psychology with Honors from Oregon State University in 2002.
Brad A. Myers is a Professor in the Human-Computer Interaction Institute in the School of Computer Science at Carnegie Mellon University. He was chosen to receive the ACM SIGCHI Lifetime Achievement Award in Research in 2017, for outstanding fundamental and influential research contributions to the study of human-computer interaction. He is an IEEE Fellow, ACM Fellow, member of the CHI Academy, and winner of 12 Best Paper type awards and 5 Most Influential Paper Awards. He is the author or editor of over 475 publications, and he has been on the editorial board of six journals. Myers received a PhD in computer science at the University of Toronto, and MS and BSc degrees from MIT during which time he was a research intern at Xerox PARC.