Skip to content

Term Paper Computer Design Language Tim

Tevfik Bultan, Professor, Computer Science (interviewed Winter 2016)


About Professor Bultan:

  • Undergraduate Degree: B.Sc. Middle East Technical University/Electrical and Electronics Engineering, 1989
  • M.S. Degree: Bilkent University/Computer Engineering and Information Science, 1993
  • Ph.D. Degree: University of Maryland, College Park/Computer Science, 1998
  • Ph.D. Advisor: Richard Gerber
  • How long have you been at UCSB? Since 1998

 

UCSB Info:

  • CS Department Profile
  • Lab / Group: VerificationLaboratory (VLab)
  • Top Publication: "Automata-based Model Counting for String Constraints"
  • Research Areas: Software Verification, Program Analysis, Software Engineering, Computer Security
  • Courses: CMPSC 160 Translation of Programming Languages, CMPSC 16 Problem Solving with Computers, CMPSC 267 Automated Verification, CMPSC 272 Software Engineering
  • Awards and Honors: ACM SIGSOFT distinguished paper award, 2005, 2014; ASE 2005 best paper award, NSF CAREER award

Tell Us About Your Research:

My research focuses on automated verification techniques and their application to software. As computer systems become more pervasive, their dependability becomes increasingly important. As a result, there is an ongoing shift in focus, both in academia and industry, from performance to dependability. The size and complexity of the software systems nowadays inevitably lead to errors during both design and implementation phases. The goal of our research at VLab is to develop verification techniques that will help developers in identifying errors in software. Recently, we have developed a novel approach for finding data model bugs in software applications written using the Ruby-on-Rails framework, where programming errors could lead to loss of data or unauthorized access to data.

One positive advancement in modern application development has been the adoption of the Model-View-Controller (MVC) architecture which facilitates the separation of the data model (Model) from the user interface logic (View) and the control flow logic (Controller). The modularity and separation of concerns principles imposed by the MVC pattern provide opportunities for developing customized verification and analysis techniques. We developed an approach for automated verification of data models that 1) extracts a formal data model from a given application, 2) converts verification queries about the data model to queries about the satisfiability of formulas in a decidable theory, and 3) uses a decision procedure to check the satisfiability of the resulting formulas. We implemented this approach and applied it to open-source Rails applications, discovering data model errors in existing applications and demonstrating the feasibility of our approach.

Another area we have been working on is called "string analysis." Web applications provide critical services over the Internet and frequently handle sensitive data. Unfortunately, web application development is error prone and results in applications that are vulnerable to attacks by malicious users. The global accessibility of critical web applications make this an extremely serious problem. Most critical web application vulnerabilities such as Cross Site Scripting and SQL command injection are due to improper checking and validation of user input. User inputs are typically provided in text format and represented using "string" variables in programs. We have developed string analysis techniques that automatically 1) identify if a web application is vulnerable to attacks due to string manipulation errors, 2) generate characterization of user inputs that might exploit a vulnerability (vulnerability signatures), and 3) generate patches that repair the vulnerability. We implemented our techniques as software tools for analyzing PHP, Java and JavaScript programs, and experimentally demonstrated that our tools can identify and patch vulnerabilities in real-world web applications.

How and Why Did You Get Into Your Area of Research and Why UCSB?:

During the first year of my PhD at the University of Maryland I took a bunch of courses and attended as many talks and seminars as possible. Some faculty there were focusing on system building, and some faculty were doing pure theory. I wanted to do a mix of theory and tool building. Automated verification area seemed like a great blend of theory and application. I learned about the model checking area and it seemed very interesting to me with its blend of mathematical logic and program analysis. The quality of the papers and the results in that area were very high which inspired me.

One of the reasons I chose to join UCSB is, when I interviewed at the CS department, it felt like a department on the rise with a lot of energy and a very collaborative environment. It also helped that my significant other is a UCSB graduate and she told me that Santa Barbara is one of the best places to live. And, she was right.

What do you Find Particularly Rewarding about your Research?:

Computing is a young field. It has changed the world already, but this is just the beginning. For years to come, human civilization will be heavily influenced by the advancements in the field of computing. Conducting scientific research in computing is a very fulfilling way to contribute to this future. I am particularly interested in research problems about analyzing software. The core of computing discipline is programming, in other words, writing software. By focusing on software analysis, I get to work on one of the core problems in the field of computing.

Where Will Your Research Take You Next:

There are many future research directions. In the short term, I would like to extend our work on software analysis, verification and security to Internet-of-Things (IoT) and autonomous devices. As computing becomes part of every device around us we will need to make sure that they work properly. It is one thing if your desktop or smart phone software crashes, it is another thing if the software on the device that monitors your health crashes, or the software on your self-driving car crashes. So, dependability of software in these domains is an important and urgent problem to work on. As a longer term research goal, since programming is becoming a skill that everyone needs to learn, I plan to investigate new software development approaches that will enable everyone to write dependable programs.

More on Tevfik's Research and Collaborations:

  • Do you collaborate with Industry or other groups outside of UCSB? Currently I have a large collaborative project that involves Vanderbilt University and CMU. It is both challenging and rewarding to work with a big group of people. Some projects require big collaborations due to their scope. The project we are working on with Vanderbilt and CMU is about detecting vulnerabilities in Java bytecode. In particular, we are interested in automatically finding worst-case behavior and information leakage in programs. These are very hard problems, and they are also extremely interesting. Having a big group of people working on the same project enables us to tackle these hard problems.


  • Do you collaborate with other UCSB faculty/departments? I have had collaborations with many faculty members at UCSB. Jianwen Su and I have worked on verification and analysis of service oriented systems and we co-supervised a PhD student (Xaing Fu, who is currently an Associate Professor at the Hofstra University). This was a very fruitful collaboration. Our results on analysis of interactions of web services have become seminal papers in the choreography analysis area. I have also collaborated with Oscar Ibarra on application of automata theory to automated verification problems which led to many interesting results. CS department at UCSB has a very collegial atmosphere which makes collaboration among faculty very easy and enjoyable.

Bultan's Research Group and Thoughts on Working with Graduate Students

VLab is a very active lab that consistently produces high quality research. This is due to the fact that I have excellent graduate students! I have always been very lucky in finding talented graduate students, and I consider graduate advising to be one of the best things about my job. Let me brag about my former PhD students a little bit: Six of my former PhD students have tenure track appointments and four of them are tenured. One of them, Fang Yu, received the UCSB Computer Science Outstanding Dissertation Award in 2010. This award is given annually to the best PhD dissertation in our department. Currently, Fang Yu is a tenured Associate Professor at the National Chenchi University in Taiwan. Another former PhD student of mine, Muath Alkhalaf, received the 2015 ACM SIGSOFT Outstanding Doctoral Dissertation Award. The ACM SIGSOFT Outstanding Dissertation Award is an annual international award that recognizes the top dissertation in the area of software engineering. This award is not only a great recognition for my Lab, but it is also a wonderful recognition of the software engineering research at UCSB. Muath Alkhalaf is currently a tenure-track assistant professor at the King Saud University in Riyadh, Saudi Arabia. The current group of students at VLab are especially talented. They are making excellent contributions to the software verification and sofware security areas. I am really enjoying working with them. And, I am always looking for new talented students to join VLab!

Rich Wolski, Professor, Computer Science (interviewed Spring 2015)


About Professor Wolski:

  • Undergraduate Degree: B.Sc. Cal Poly San Luis Obispo
  • M.S. and Ph.D. Degrees: UC Davis — M.S. 1989 and Ph.D. 1994
  • Industry Employment: Co-founder Eucalyptus Systems (now part of HP)



UCSB Info:

Tell Us About Your Research:

We investigate the use of open source software technologies to build scalable systems. Cloud computing and large-scale high-performance computing depend on software innovations that enable the computational, communication, and storage capabilities of many computers and networks to be used together. Our group studies the system-building principles needed to create such amalgamations empirically, by building experimental software systems that can be tested and studied in a scientific context.

How and Why Did You Get Into Your Area of Research and Why UCSB?:

I have always been fascinated by the idea of building large systems that can perform ever more powerful computations. The emergence of Internet Search as a key societal technology demonstrates how very large scale computation can lead to important new capabilities. UCSB is remarkable in its support of empirical research (that has impact in the "real world") and cross-disciplinary collaborative research. I was drawn to it because there did not seem to be boundaries or impediments to how and what I could study in this exciting field.

What you do Find Particularly Rewarding about your Research?:

Working with students to investigate new answers and solutions to pressing and difficult problems is by far the most rewarding part of research for me.

Where Will Your Research Take You Next:

Scalable computing will continue to change the world by making what human kind can know, broader and more accessible. I'm looking forward to the research that accelerates this process.

More on Rich's Research and Collaborations:

  • Do you collaborate with Industry or other groups outside of UCSB?We are collaborating with companies such as Pow Wow Energy that are focused on improving the use and stewardship of natural resources. Working with Pow Wow and Vine Rangers, a start-up dedicated to improving local viticulture, we have been studying water usage and wildlife activity in the Santa Barbara county area.


  • Do you collaborate with other UCSB faculty/departments? We collaborate with Frank Doyle's group in Chemical Engineering on developing innovative therapies for individuals with Diabetes. Using a combination of process control and machine learning based analytics we are studying how activity monitoring using consumer "wearables" can be used to improve therapeutic outcomes.

Wolski's Research Group and Thoughts on Working with Graduate Students

Our lab hosts between five and 15 graduate students and undergraduates working on research. We encourage students to work collaboratively on high-impact research problems and to interact as colleagues with the wider academic and technology communities.

Tim Cheng, Professor of ECE and UCSB Associate Vice Chancellor for Research (interviewed Fall 2013)


About Professor Cheng:

  • Hometown: Taipei, Taiwan
  • Undergrad Degree: National Taiwan University, EE Dept, 1983
  • Ph.D. Degree: University of California, Berkeley, EECS Dept, 1988
  • Ph.D. Advisor: Professor Ernest Kuh
  • Industry Employment: Bell Labs, Murray Hill, NJ - Technical Staff Member

UCSB Info:

  • Tim's College of Engineering Profile
  • Labs: SoC Design and Test Lab and Learning-Based Multimedia Lab
  • Publications: Google Scholar
  • Research Interests: Design Validation, Verification,Testing, and Reliability for Circuits and Systems; Mobile Embedded Systems; Multimedia Computing
  • Courses: Mobile Embedded Systems/Smartphones (ECE 150/250), VLSI Test Techniques (255A), Digital Design Methodologies (152B)
  • Awards and Honors: IEEE Fellow, received 10 best paper awards in various IEEE conferences and journals, UCSB College of Engineering's Outstanding Teaching Faculty Award 2004-2005

Tell Us About Your Research: My research encompasses two major areas: (1) Design automation and test for electronic systems and (2) Mobile computer vision and embedded systems. In the first area, the research addresses challenges of ensuring correctness and reliability of complex integrated systems. Throughout my career, I've developed a number of techniques that have led to the availability of low-cost and high-quality solutions for validation and testing of high-performance and robust silicon integrated circuits as well as of flexible electronics. In the second area, my group developed a number of solutions for fast and accurate content analysis in images and videos, with an increasing focus on mobile applications that have limited hardware and energy resources. 

How and Why Did You Get Into Your Area of Research?: Electronic design automation (EDA) and test are critical areas for the semiconductor industry and their research involves hardware and software, as well as algorithms and methodologies, and has strong "systems" components. These attributes are very attractive to me and thus helped provide me a long-lasting research career in this field. Mobile embedded systems, which have a broad spectrum of applications and are technically sophisticated, is multidisciplinary in nature and also interests me.

Why UCSB?: UCSB has a great reputation for nurturing multidisciplinary research which was the main reason I chose to leave Bell Labs. Over the past 20 years, UCSB's research culture and environment have helped me tremendously by expanding my research to cover a spectrum of topics - such as devices, systems, software, and applications - while still enabling me to have a great amount of depth for each research project.

What you do Find Particularly Rewarding about your Research?: I have been offering a course on mobile embedded systems, cross-listed for both undergraduate and graduate students, which I found particularly rewarding. The course covers the latest smartphone and tablet technologies including hardware platforms, operating systems, emerging apps, and low-power design techniques. The growth of smartphone and tablet functionalities, and advances in their technologies, have come about far more rapidly than most people’s ability to comprehend. There is not a textbook or any publicly available teaching materials for a comprehensive coverage of this fast-moving technical area. I have spent a significant amount of time and efforts developing the course materials to help students, as well as myself, gain a broad and sufficiently deep knowledge of the key technologies behind these devices. Due to the timeliness of the course materials, many students taking the course successfully land an internship or a full-time job in the smartphone/Android industry right after receiving their B.S. or M.S. degrees and I have found this very rewarding.

Where Will Your Research Take You Next?: I constantly look for new topics that will excite me and help train graduate students. I am now growing my research in the general area of microsystems for mobile healthcare, which I believe has rich research opportunities and new applications.

More on Tim's Research and Collaborations:

  • Do you collaborate with industry or other groups outside of UCSB? I collaborate with industry and international research partners, including companies like Intel, Texas Instruments, Broadcom, Mediatek, Freescale, ITRI, etc. They sponsor our research, provide industrial data, host our graduate students for summer internships, offer critical input to our research, and adopt our solutions for some successful research results. I also spent my sabbatical at National TsingHua University, Taiwan (1999), University of Tokyo, Japan (2008), Hong Kong University of Science and Technology HKUST (2012) to establish collaborative projects.
  • Do you collaborate with other UCSB faculty/departments? I have been working closely with several other faculty members at UCSB (in ECE and Materials) and three other universities on a multidisciplinary research project to develop enabling technologies and applications for monolithically 3D-integrated, hybrid CMOS/nano-memristor circuits. This multidisciplinary research team for the AFOSR-MURI HyNano project consists of researchers from four campuses (UCSB, SUNY Stony Brook, Michigan, and UMass) and nine research groups (including physicists, materials scientists, device engineers, circuit designers, and computer architects) with the sponsorship from Department of Defense (DoD) and Air Force Office of Scientific Research (AFOSR) under the Multidisciplinary University Research Initiative (MURI) program.

Tim's Research Group:

  • Tell us about your research group: I manage two research labs — the SoC Design and Test Lab and the Learning-based Multimedia Lab. The SoC Design and Test Lab focuses on developing methodologies, algorithms, techniques, and tools for validating, verifying, testing, and analyzing system-on-chip (SoC), flexible electronics, and 3D devices. The Learning-Based Multimedia (LBMM) Lab has wide interests in various algorithms and techniques for multimedia applications but its current focus is mobile computer vision, mobile augmented reality, and medical image viewing.  Our research addresses the main challenges for achieving the required real-time performance of vision and medical image viewing tasks with minimum energy consumption in a mobile, embedded environment, including designing a new energy-efficient parallel architecture for these tasks.
  • Thoughts on working with graduate students: Graduate students spend a very precious period of their life in my lab so my ultimate goal is to make sure their time investment in the lab is worthwhile and can help them develop a successful and long-lasting career. My objective is to train my students to become both deep thinkers and solid doers. I don't do micro-management but have one-on-one meeting with each graduate student at least 1-2 hours per week in addition to group meetings. I pay special attention to students' thesis directions, which must be innovative, useful, and interesting. In addition to research content, it’s equally important to provide abundant opportunities for students to improve their writing and presentation skills.

Tim Sherwood, Associate Professor, Computer Science (interviewed Spring 2012)


About Professor Sherwood:

  • Hometown: San Diego, CA
  • Ph.D.: UC San Diego (Go Tritons!), CSE, 2003
  • M.S. Degree: UC San Diego, Computer Science and Engineering
  • Undergrad Degree: UC Davis (Go Aggies!), CSE, 1998
  • Ph.D. Advisor: Professor Brad Calder, UCSD
  • Industry Employment: Microsoft Research (Visiting Researcher)

UCSB Info:

  • Tim's Personal Website
  • Lab / Group: ArchLab
  • Research Interests: computer architecture, secure processors, embedded systems, program analysis and characterization
  • Courses: Computer Architecture (CMPCS 154); Advanced Computer Architecture (CMPCS 254); Translation of Programming Languages / Compilers (CMPCS 160) ; Trustworthiness in Embedded Systems (Special Topic / CMPCS 290E); and Senior Capstone (CMPCS 189B)
  • Awards and Honors: IEEE Micro Top Pick 2003, 2006, 2009, 2010; Best Paper PACT and CGO; Northrop Grumman Teaching Award; 2012 UCSB Academic Senate Distinguished Teaching Award and more

Tell Us About Your Research:

My current research focus is on hardware/software system design under strict efficiency, safety, or security requirements. Systems responsible for controlling aircraft, regulating access to very sensitive data, and implanted in our medical devices, all deserve a level of assurance far beyond the norm. Creating these systems today is an incredibly expensive operation both in terms of time and money; and even assessing the assurance of the resulting system can cost upwards of $10,000 per line of code.

Building upon my groups experience developing novel security methods for FPGAs, we have developed a new method for building embedded systems that allow us to verify the integrity or secrecy of all information executing in that system -- from the highest levels of abstraction down to gate-level details of the digital logic implementation. While not addressing physical or analog attacks, it does include safety from covert channels, information flows introduced during refinement, implicit flows, and even timing channels. While common case performance is a powerful tool, this basic research is exploring an orthogonal direction for computer architecture: making it easier to build systems with provable properties. To demonstrate that this is really possible for non-trivial systems we developed a new hardware logic discipline for security, Gate-Level Information-Flow Tracking (GLIFT) logic, and show its effectiveness by creating a full system including: a new Instruction Set Architecture, a domain specific language and compiler, and a fully synthesizable prototype CPU all around this discipline. We recently demonstrated how such a technique can be incorporated directly into the hardware design language, and how by using our method as a static analysis technique we can support even general purpose programs with almost negligible overhead.

How and Why Did You Get Into Your Area of Research and Why UCSB? What you do Find Particularly Rewarding about your Research?: Originally I fell into research by accident. I was an undergraduate looking for something productive to do over the summer and I started working with Fred Chong long before we were able to steal him away to UCSB. From that earliest experience I was hooked, it was so exciting to be at the cutting edge of technology. As an undergraduate you learn the best a field has to offer distilled down into it's purest form, as a masters student you start to see the edge of human knowledge about a subject. As a Ph.D. student you find exactly where that edge is and blast through it. When you get to those questions where the right answer is "nobody knows" and then you set off to answer them for the first time -- well that is a pretty special thing. I think that is part of the reason that going to school with both absolutely top research and a deep dedication to the students, like UCSB Engineering, is so important. You want to learn from people passionate about the field, and you want them to help guide you to that edge. I think that is what I find so rewarding about my job, bringing students to the edge of human understanding in science and engineering, and then pushing on that edge until we can move it forward.

Where Will Your Research Take You Next?: I think the biggest challenge facing computer engineering today is the fact that, for all the time, effort, and money that goes into building hardware and software systems, the fact of the matter is that they are still incredibly brittle. When build a automobile today you engineer it from the ground up. You build on years of experience and a deep understanding of the materials used and how and when they fail. The fact of the matter is that the computer that sits in your laptop today was first designed decades ago when the world was a very different place -- we used to use floppy disks to move data around for goodness sake! The fact that this same old design can be patched and retooled and supercharged for so many years is really an impressive feat, but its age is really starting to show. There is only so much horsepower you can add to a model-T before you realize that something entirely new might be needed as the things that we care about change over time (like fuel efficiency!). One of the most important set of questions my lab is looking at now is how computer systems might be designed in to future to be far less brittle, to support provable notions of security, reliability, and safety, and to use orders of magnitude less power.

More on Tim's Research and Collaborations:

I just got back from a year at Microsoft and it was quite informative. It is wonderful to see first hand the role that research can play in a company, and recently we published two papers together -- the first one on allocating power effectively when making use of resistive memory technologies, and the second one on using ideas from cryptography to address problems encountered in designing secure microprocessor key storage when attackers can dismantle your chips. The best collaborations are when you have many people from different disciplines and backgrounds all learning from each other -- for example I have recently been learning about memristor physics from Dmitri Strukov and formal semantics from Ben Hardekopf while I have been teaching them about modern processor design. The biggest advances happen when we are able to make new connections between two fields that no one has ever found before.

Sherwood's Research Group and Thoughts on Working with Graduate Students

At UCSB, I co-direct the CS Computer Architecture Lab (ArchLab), where my students and I work on all manner of computer architecture problems, from circuits to systems to the applications that run on them. Computer architecture is a great field in that you can use theory, algorithms, languages, and circuits all together to attack interesting problems. My primary interest is in techniques that allow for the composition of systems with strict properties of safety, security, scalability. To tackle these types of problems we have to build the whole thing, from the logic gates, to functional units, to microprocessors, to compilers, to operating systems, all the way up to applications -- and I am really lucky to work with students that can do it all!


Forrest Brewer, Professor, Electrical & Computer Engineering (interviewed Winter 2011)


About Professor Brewer:

  • Hometown: Arvada, Colorado
  • Ph.D.: University of Illinois, Computer Science, 1988
  • M.S. Degree: University of Illinois, Computer Science, 1985
  • Undergrad Degree: Caltech, Physics (honors), 1980
  • Industry Employment: Northrop Corporation, 1981-1985

UCSB Info:

  • Lab / Group: High Level Design/Synthesis
  • Research Interests: VLSI Design and Architecture, System Level Tools and Specification
  • Courses: VLSI Architecture and Design / Advanced VLSI Architecture and Design (ECE 124D / 256C), Hardware - Software Interface / Embedded System Design (ECE 153A / 253), VLSI Project Design / Testing (ECE 224),Logic Design Automation / Algorithmic Logic Synthesis (ECE 256B/D)

Tell Us About Your Research:

My research is in system level design automation of mixed analog/digital and hardware/software systems. Low power, high-performance control system implementations in FPGA/ASIC. Formal logic based optimization and design at the system level. Digital systems engineering in highly constrained environments such as very low power digital, radiation hardened digital and analog interface design. Communication network automated protocol synthesis, system level machine identification (with Li.C. Wang) and mixed digital/analog integrated control for chemical and bio-inspired in-vitro chip design (with L. Theogarajan).

How and Why Did You Get Into Your Area of Research and Why UCSB?: I decided against a career in theoretical physics largely because I desired the possibility of more real-world impact. Turning to engineering, I spent several years in industry designing very high performance signal processing and multi-dimensional control systems at the dawn of the computer integration in those fields. My graduate work ended up in Design Automation which merged the physics, software tools and modeling aspects and hardware system design that was my interest. UCSB was clearly an up-and-coming school in ECE where there was potential to grow into a unique locale.

What do you Find Particularly Rewarding about your Research?: I am happiest when a idea pans out with a graduate student — every couple years, you get to a point or concept that is completely new. There is also the very personal rewards when a student manages to finish a difficult thesis or lands a dream job.

Where Will Your Research Take You Next?: I am looking into the practicality of automated synthesis of 1-bit sigma-delta designs in FPGAs and ASIC. This presents a serious challenge as the SNR of the 1-bit signals is typically 1 part in 50. The upshot is that many classical techniques have massive noise and aliasing problems. We are looking at formal digital induction and game-theoretic techniques to verify correct operation.

More on Forrest's Research

  • Do you collaborate with industry? Other groups outside of UCSB?: I consult in the area of Integrated Circuit design and more recently in low-power embedded system design. I am on the technical advisory board of Atrenta Corp. and have served on technical start-up teams for two other companies. I am currently involved in a mobile embedded system startup and a technical consulting contractor (radiation engineering and software tools and modeling).
  • Do you collaborate with other UCSB faculty and departments?: I am in a joint effort with Kim Turner of Mechanical Engineering,a MEMS-based accelerometer using quantum-tunneling was successfully placed under closed-loop control with a 40kHz+ loop rate.

Forrest's Research Group and Thoughts on Working with Graduate Students

My lab consists of five graduate and three undergraduate students with two students in system level hardware/software synthesis, one student in constrained environment digital and analog engineering, two students in control system low power and 1-bit sigma-delta design, and two joint students with CE faculty in the areas of digital system test-based identification and constrained network protocol synthesis. The two system level students work in transaction-based synthesis of hardware/software systems in concert with an SRC/NSF program. The constrained digital student is working on analog/digital synthesis for the Rad-Hard environment of the CERN LHC experiments. Last but not least, the undergraduate students are working on what is now a Capstone Project consisting of an inexpensive FPGA based control appliance with versions aimed at research in MEMS and Chemical/Physical process and experimentation and another aimed at the controls lab teaching needs.


Chandra Krintz, Professor, Computer Science (interviewed Summer 2011)


About Professor Krintz:

  • Hometown: Morocco, Indiana
  • Ph.D.: U. of California, San Diego, Computer Science, 2001
  • M.S. Degree: U. of California, San Diego, Computer Science, 1998
  • Industry Employment: Microsoft Research (Intern), IBM Research (Intern), Locus/Platinum Computing (Software Engineer)

UCSB Info:

  • Chandra's Personal Website
  • Lab / Group: Lab for Research on Adaptive Computing Environments (RACELab)
  • Research Interests: Runtime Systems and Programming Support for Cloud Computing, High-level Languages, and Mobile Computing; Dynamic and Adaptive Optimization, Monitoring, Customization of Software and Systems
  • Courses: Programming Language Implementations, Hardware/Software Interfaces, OO Computing, Cloud Computing, SWE
  • Publications: Krintz's Publication List
  • Top Publication: Cross-Language, Type-Safe, and Transparent Object Sharing For Co-Located Managed Runtimes
  • Honors and Awards: NSF CAREER, CRA-W Anita Borg Early Career Award, UCSB Distinguished Teaching Award, COE Teaching Award, ACM & IEEE Senior member

Tell Us About Your Research:

I'm interested in improving the performance, energy efficiency, and ease of use of software systems and applications. In particular, my group focuses on techniques that help us understand the behavior of and to optimize programs written in high-level languages (Java, Python, Ruby, and others) that execute over the internet and/or distributed computer systems. Our techniques efficiently monitor and predict the behavior of programs as they run, and use this information to optimize all layers of the software stack.

My group recently has developed a new computing platform for cloud systems called AppScale. AppScale facilitates cloud computing research and implements the Google App Engine (GAE) APIs (emulating the GAE cloud). AppScale implements a number of different database back-ends, a map-reduce interface, support for computational and data-intensive workloads, as well as performance and resource monitoring for automatic scaling. My group employs AppScale to investigate the next-generation of distributed programming systems.

How and Why Did You Get Into Your Area of Research?: I found my area of interest the way many students find theirs: by trying out different things. When pursuing my PhD, I started out in Artificial Intelligence (because the group gave away free pizza — all right, I was a starving student). I investigated information theory and cryptography because I found an amazing professor with whom I liked working. I then realized that my true calling was programming systems (because I wrote programs to implement the theory instead of coming up with the theory myself :) — and because the potential of Internet computing and related technologies was so compelling). My interests in this area have evolved but have not waned; my particular foci over time have included mobile computing, sensor network systems, managed runtime systems (Java/.Net virtual machines), hand-held and microcontroller-based systems, interpreted language runtimes (Python, Ruby), distributed/Internet computing, and cloud systems.

What do you Find Particularly Rewarding about your Research?: I love being able to work on hard problems that are important to industry, researchers and developers, and to the world around us. Programming technologies and devices change rapidly so there are always interesting directions to pursue and learn about. I never get bored. In addition, I love the intellectual autonomy and challenges that research enables. Finally, I get to work on these problems with amazingly bright colleagues and students who constantly inspire and energize me.

Where Will Your Research Take You Next?: My group and I are on the bleeding edge of cloud computing and programming systems — and, the two are intertwined. I plan to investigate how to make writing efficient programs for cloud systems easier so that doing so can be done by a broader user base (scientists, data analysts, students, artists, ...) so that we all can more easily take advantage of the vast resources and potential that cloud systems offer. I also plan to continue investigating clever and useful ways of making the programs that we write more energy efficient, performant, and scalable.

More on Chandra's Research

  • Do you collaborate with industry? Other groups outside of UCSB?: I collaborate (and have collaborated in the past) with researchers at Microsoft Research, IBM Research, Google, Intel, and other companies. Our collaborations have targeted high-level language virtual machine technologies (profiling, dynamic and adaptive optimization of programs, and garbage collection).
  • Do you collaborate with other UCSB faculty and departments?: I collaborate with multiple faculty at UCSB as well. We combine our expertise, experiences and interests to pursue research in systems and software (e.g. in the areas of cloud computing, sensor networking, hardware/software interoperation, and static and dynamic program analysis).

Chandra's Research Group and Thoughts on Working with Graduate Students

My research group typically consists of 4-5 PhD students, 4-5 MS students, and multiple undergraduates. My students work together or on their own depending on their interests, work styles, and experience. We have both group meetings and individual meetings depending on the needs of the students.


This article presents a list of individuals who made transformative breakthroughs in the creation, development and imagining of what computers and electronics could do.

Pioneers[edit]

Ach. DatePersonAchievement
0830~Al-KhwarizmI[1][2][3]The term "algorithm" is derived from the algorism, the technique of performing arithmetic with Arabic numerals developed by al-Khwarizmi.
1944Howard AikenConceived and codesigned the Harvard Mark I.
1970
1989
Frances E. AllenDeveloped bit vector notation and program control flow graphs. Became the first female IBM Fellow in 1989. In 2006, she became the first female recipient of the ACM's Turing Award.
1939John AtanasoffBuilt the first electronic digital computer, the Atanasoff–Berry Computer, though it was neither programmable nor Turing-complete.
1822
1837
Charles BabbageOriginated the concept of a programmable general-purpose computer. Designed the Analytical Engine and built a prototype for a less powerful mechanical calculator.
1954
1963
John BackusLed the team that created FORTRAN (Formula Translation), the first practical high-level programming language, and he formulated the Backus–Naur form that described the formal language syntax.
1989
1990
Tim Berners-LeeInvented World Wide Web. With Robert Cailliau, sent first HTTP communication between client and server.
1966Corrado BöhmTheorized of the concept of structured programming.
1847
1854
George BooleFormalized Boolean algebra, the basis for digital logic and computer science.
1947Kathleen BoothInvented the first assembly language.
1969
1978
Per Brinch HansenDeveloped the RC 4000 multiprogramming system which introduced the concept of an operating system kernel and the separation of policy and mechanism, effectively the first microkernel architecture.[4] Co-developed the monitor with Tony Hoare, and created the first monitor implementation.[5] Implemented the first form of remote procedure call in the RC 4000,[4] and was first to propose remote procedure calls as a structuring concept for distributed computing.[6]
1959
1995
Fred BrooksManager of IBM System/360 and OS/360 projects; author of The Mythical Man-Month.
1930Vannevar BushAnalogue computing pioneer. Originator of the Memex concept, which led to the development of Hypertext.
1951David Caminer[undue weight?– discuss]With John Pinkerton, developed the LEO computer, the first business computer, for J. Lyons and Co
1978Vint CerfWith Bob Kahn, designed the Transmission Control Protocol and Internet Protocol (TCP/IP), the primary data communication protocols of the Internet and other computer networks.
1956Noam ChomskyMade contributions to computer science with his work in linguistics. He developed Chomsky hierarchy, a discovery which has directly impacted programming language theory and other branches of computer science.
1936Alonzo ChurchFounded contributions to theoretical computer science, specifically for the development of the lambda calculus and the discovery of the undecidability problem within it.
1962Wesley A. ClarkDesigned LINC, the first functional computer scaled down and priced for the individual user. Put in service in 1963, many of its features are seen as prototypes of what were to be essential elements of personal computers.
1981Edmund M. ClarkeDeveloped model checking and formal verification of software and hardware together with E. Allen Emerson.
1970Edgar F. CoddProposed and formalized the relational model of data management, the theoretical basis of relational databases.
1971Stephen CookFormalized the notion of NP-completeness, inspiring a great deal of research in computational complexity theory.
1965James CooleyWith John W. Tukey, created the fast Fourier transform.
1962Ole-Johan DahlWith Kristen Nygaard, invented the proto-object oriented language SIMULA.
1968Edsger DijkstraMade advances in algorithms, pioneered and coined the term structured programming, invented the semaphore, and famously suggested that the GOTO statement should be considered harmful.
1943
1951
J. Presper EckertWith John Mauchly, designed and built the ENIAC, the first modern (all electronic, Turing-complete) computer, and the UNIVAC I, the first commercially available computer.
1981E. Allen EmersonDeveloped model checking and formal verification of software and hardware together with Edmund M. Clarke.
1963Douglas EngelbartBest known for inventing the computer mouse (in a joint effort with Bill English); as a pioneer of human-computer interaction whose Augment team developed hypertext, networked computers, and precursors to GUIs.
1974Elizabeth FeinlerHer team defined a simple text file format for Internet host names.[29] The list evolved into the Domain Name System and her group became the naming authority for the top-level domains of .mil, .gov, .edu, .org, and .com.
1943Tommy FlowersDesigned and built the Mark 1 and the ten improved Mark 2 Colossus computers, the world's first programmable, digital, electronic, computing devices.
1994Sally FloydIs known for her work on Transmission Control Protocol.
1879Gottlob FregeDeveloped first-order predicate calculus, which was a crucial precursor requirement to developing computation theory.
1958
1961
1967
Seymour GinsburgProved "don't-care" circuit minimization does not necessarily yield optimal results, proved that the ALGOL programming language is context-free (thus linking formal language theory to the problem of compiler writing), and invented AFL Theory.
1931Kurt GödelProved that Peano axiomatized arithmetic could not be both logically consistent and complete in first-order predicate calculus. Church, Kleene, and Turing developed the foundations of computation theory based on corollaries to Gödel's work.
2011Susan L. Graham[undue weight?– discuss]Awarded the 2009 IEEE John von Neumann Medal for "contributions to programming language design and implementation and for exemplary service to the discipline of computer science".
1974
2005
Jim GrayInnovator in database systems and transaction processing implementation.
1986
1990
Barbara Grosz[undue weight?– discuss]Created the first computational model of discourse, which established the field of research and influenced language-processing technologies. Also developed SharedPlans model for collaboration in multi-agent systems.
1971Margaret HamiltonCredited with coining the phrase "Software engineering"[dubious– discuss] and developed the concepts of asynchronous software, priority scheduling, end-to-end testing, and human-in-the-loop decision capability, such as priority displays which then became the foundation for ultra reliable software design.
1950Richard HammingCreated the mathematical field of error-correcting code, Hamming code, Hamming matrix, the Hamming window, Hamming numbers, sphere-packing (or Hamming bound), and the Hamming distance. He established concept of perfect code.
1972 1973André Truong Trong Thi and François Gernelle[undue weight?– discuss]Invention of the Micral N, the earliest commercial, non-kit personal computer based on a microprocessor.
1960
1978
C.A.R. HoareDeveloped the formal language communicating sequential processes (CSP), Hoare logic for verifying program correctness and Quicksort.
1968Betty HolbertonWrote the first mainframe sort merge on the Univac
1889Herman HollerithWidely regarded as the father of modern machine data processing. His invention of the punched card tabulating machine marks the beginning of the era of semiautomatic data processing systems.
1952Grace HopperPioneered work on the necessity for high-level programming languages, which she termed automatic programming, and wrote the A-O compiler, which heavily influenced the COBOL language.
1997Feng-hsiung HsuWork led to the creation of the Deep Thought chess computer, and the architect and the principal designer of the IBM Deep Blue chess computer which defeated the reigning World Chess Champion, Garry Kasparov, in 1997.
1952Cuthbert HurdHelped the International Business Machines Corporation develop its first general-purpose computer, the IBM 701.
1954; 1962Kenneth E. IversonAssisted in establishing the first graduate course in computer science (at Harvard) and taught that course; invented the APL programming language and made contribution to interactive computing.
1801Joseph Marie JacquardBuilt and demonstrated the Jacquard loom, a programmable mechanized loom controlled by a tape constructed from punched cards.
1206Al-JazariInvented programmable machines, including programmable humanoid robots,[11] and the castle clock, an astronomical clock considered the first programmableanalog computer.[12]
1953
1953
Karen Spärck Jones[undue weight?– discuss]Was one of the pioneers of information retrieval and natural language processing.
1970
1990
Maurice KarnaughInventor of the Karnaugh map, used for logic function minimization.
1973Jacek KarpinskiDeveloped the first differential analyzer that used transistors, and developed one of the first machine learning algorithms for character and image recognition. Also was the inventor of one of the first minicomputers, the K-202.
1970~Alan KayPioneered many of the ideas at the root of object-oriented programming languages, led the team that developed Smalltalk, and made fundamental contributions to personal computing.
1936Stephen Cole KleenePioneered work with Alonzo Church on the Lambda Calculus that first laid down the foundations of computation theory.
1968
1989
Donald KnuthWrote The Art of Computer Programming and created TeX. Coined the term "analysis of algorithms" and made major contributions to that field, including popularizing Big O notation.
1974
1978
Leslie LamportFormulated algorithms to solve many fundamental problems in distributed systems (e.g. the bakery algorithm).
Developed the concept of a logical clock, enabling synchronization between distributed entities based on the events through which they communicate. Created LaTeX.
1951Sergei Alekseyevich LebedevIndependently designed the first electronic computer in the Soviet Union, MESM, in Kiev, Ukraine.
1670~Gottfried LeibnizMade advances in symbolic logic, such as the Calculus ratiocinator, that were heavily influential on Gottlob Frege. Made developments in first-order predicate calculus that were crucial for the theoretical foundations of computer science.
1960J. C. R. LickliderBegan the investigation of human-computer interaction, leading to many advances in computer interfaces as well as in cybernetics and artificial intelligence.
1987Barbara LiskovDeveloped the Liskov substitution principle, which guarantees semantic interoperability of data types in a hierarchy.
1300~Ramon LlullDesigned multiple symbolic representations machines, and pioneered notions of symbolic representation and manipulation to produce knowledge—both of which were major influences on Leibniz.
1815
1852
Ada LovelaceAn English mathematician and writer, chiefly known for her work on Charles Babbage's proposed mechanical general-purpose computer, the Analytical Engine. She was the first to recognize that the machine had applications beyond pure calculation, and created the first algorithm intended to be carried out by such a machine. As a result, she is often regarded as the first to recognize the full potential of a "computing machine" and the first computer programmer.
1943
1951
John MauchlyWith J. Presper Eckert, designed and built the ENIAC, the first modern (all electronic, Turing-complete) computer, and the UNIVAC I, the first commercially available computer. Also worked on BINAC(1949), EDVAC(1949), UNIVAC(1951) with Grace Hopper and Jean Bartik, to develop early stored program computers.
1955John McCarthyInvented LISP, a functional programming language.
1956 2012Edward J. McCluskeyFundamental contributions that shaped the design and testing of digital systems, including the first algorithm for digital logic synthesis, the Quine-McCluskey logic minimization method.
1963Marvin MinskyCo-founder of Artificial Intelligence Lab at Massachusetts Institute of Technology, author of several texts on AI and philosophy.
2007Nick McKeown, Scott Shenkar, Martin CasadoCreated Software Defined Networking
0850~Banū MūsāThe Banū Mūsā brothers wrote the Book of Ingenious Devices, where they described what appears to be the first programmable machine, an automaticflute player.[13]
1950
1960
Yoshiro NakamatsuInvented the first floppy disk at Tokyo Imperial University in 1950,[14][15] receiving a 1952 Japanese patent[16][17] and 1958 US patent for his floppy magnetic disk sheet invention,[18] and licensed to Nippon Columbia in 1960[19] and IBM in the 1970s.[16][14]
1934
1938
Akira NakashimaNEC engineer introduced switching circuit theory in papers from 1934 to 1936, laying the foundations for digital circuit design, in digital computers and other areas of modern technology.
1960Peter NaurEdited the ALGOL 60 Revised Report, introducing Backus-Naur form
1945John von NeumannFormulated the von Neumann architecture upon which most modern computers are based.
1943Max NewmanInstigated the production of the Colossus computers at Bletchley Park. After the war he established the Computing Machine Laboratory at the University of Manchester where the world's first stored-program computer, the Manchester Small-Scale Experimental Machine was invented.
1962Kristen NygaardWith Ole-Johan Dahl, invented the proto-object oriented language SIMULA.
0500 BC ~PāṇiniAshtadhyayiSanskrit grammar was systematised and technical, using metarules, transformations, and recursions, a forerunner to formal language theory and basis for Panini-Backus form used to describe programming languages.
1642Blaise PascalInvented the mechanical calculator.
1952Alan PerlisOn Project Whirlwind, member of the team that developed the ALGOL programming language, and the first recipient of the Turing Award
1985Radia PerlmanInvented the Spanning Tree Protocol (STP), which is fundamental to the operation of network bridges, while working for Digital Equipment Corporation. Has done extensive and innovative research, particularly on encryption and networking. She received the USENIX Lifetime Achievement Award in 2007, among numerous others.
1964Pier Giorgio Perotto[undue weight?– discuss]Designer of Olivetti Programma 101, the first Desktop Computer, arguably the first kind of personal computer[20].
1932Rózsa PéterPublished a series of papers grounding recursion theory as a separate area of mathematical research, setting the foundation for theoretical computer science.
1995Rosalind Picard[undue weight?– discuss]Founded Affective Computing, and laid the foundations for giving computers skills of emotional intelligence.
1936Emil L. PostDeveloped the Post machine as a model of computation, independently of Turing. Known also for developing truth tables, the Post correspondence problem used in recursion theory as well as proving what is known as Post's theorem.
1967Dennis RitchieWith Ken Thompson, pioneered the C programming language and the Unix computer operating system at Bell Labs.
1958–1960Saul RosenDesigned the software of the first transistor-based computer. Also influenced the ALGOL programming language.
1910Bertrand RussellMade contributions to computer science with his work on mathematical logic (example: truth function). Introduced the notion of type theory. He also introduced type system (along with Alfred North Whitehead) in his work, Principia Mathematica.
1975Gerard Salton[undue weight?– discuss]A pioneer of automatic information retrieval, who proposed the vector space model and the inverted index.
1962Jean E. SammetDeveloped the FORMAC programming language. She was also the first to write extensively about the history and categorization of programming languages in 1969, and became the first female president of the Association for Computing Machinery in 1974.
1963
1973
Tadashi Sasaki[undue weight?– discuss]Sharp engineer who conceived a single-chip microprocessorCPU, presenting the idea to Busicom and Intel in 1968, influencing the first commercial microprocessor, the Intel 4004. He also developed LCDcalculators at Sharp.[21]
1937
1948
Claude ShannonFounded information theory, and laid foundations for practical digital circuit design.
1968
1980
Masatoshi ShimaDesigned the Intel 4004, the first commercial microprocessor,[22][23] as well as the Intel 8080, Zilog Z80 and Zilog Z8000 microprocessors, and the Intel 8259, 8255, 8253, 8257 and 8251 chips.[24]
1956
1957
Herbert A. SimonA political scientist and economist who pioneered artificial intelligence. Co-creator of the Logic Theory Machine and the General Problem Solver programs.
1972Richard StallmanStallman launched the GNU Project in September 1983 to create a Unix-like computer operating system composed entirely of free software. With this, he also launched the free software movement.
1982Michael StonebrakerResearcher at MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL) who revolutionized the field of database management systems (DBMSs) and founded multiple successful database companies
1979Bjarne StroustrupInvented C++ at Bell Labs
1963Ivan SutherlandAuthor of Sketchpad, the ancestor of modern computer-aided drafting (CAD) programs and one of the early examples of object-oriented programming.
1967Ken ThompsonCreated the Unix operating system, the B programming language, Plan 9 operating system, the first machine to achieve a Master rating in chess, and the UTF-8 encoding at Bell Labs and the Go programming language at Google.
1993Chai Keong TohCreated mobile ad hoc networking; Implemented the first working wireless ad hoc network of laptop computers in 1998 using Linux OS, Lucent WaveLan 802.11 radios, and a new distributed routing protocol transparent to TCP/UDP/IP.
1991Linus TorvaldsCreated the first version of the Linux kernel.
1965John W. TukeyWith James Cooley, created the fast Fourier transform. He invented the term "bit".[25]
1936Alan TuringMade several founding contributions to computer science, including the Turing machine computational model, the conceiving of the stored program concept and the designing of the high-speed ACE design. Widely considered as the father of computer science and artificial intelligence.
1968Noriko UmedaHis team at Japan's Electrotechnical Laboratory developed the first text-to-speech synthesis system.[26]
1950~An WangMade key contributions to the development of magnetic core memory.
1955
1960s
1974
Willis WareCo-designer of JOHNNIAC. Chaired committee that developed the Code of Fair Information Practice and led to the Privacy Act of 1974. Vice-chair of the Privacy Protection Study Commission.
1968Adriaan van WijngaardenDeveloper of the W-grammar first used in the definition of ALGOL 68
1949Maurice WilkesBuilt the first practical stored program computer (EDSAC) to be completed and for being credited with the ideas of several high-level programming language constructs.
1970
1978
Niklaus WirthDesigned the Pascal, Modula-2 and Oberon programming languages.
1938
1945
Konrad ZuseBuilt the first digital freely programmable computer, the Z1. Built the first functional program-controlled computer, the Z3.[27] The Z3 was proven to be Turing-complete in 1998. Produced the world's first commercial computer, the Z4. Designed the first high-level programming language, Plankalkül.

~ Items marked with a tilde are circa dates.

See also[edit]

References[edit]

External links[edit]

  1. ^Mario Tokoro, ed. (2010). "9". e: From Understanding Principles to Solving Problems. pp. 223–224. ISBN 978-1-60750-468-9. 
  2. ^Cristopher Moore, Stephan Mertens (2011). The Nature of Computation. Oxford University Press. p. 36. ISBN 978-0-19-162080-5. 
  3. ^A. P. Ershov, Donald Ervin Knuth, ed. (1981). Algorithms in modern mathematics and computer science: proceedings, Urgench, Uzbek SSR, September 16–22, 1979. Springer. ISBN 978-3-540-11157-3. 
  4. ^ ab"Per Brinch Hansen • IEEE Computer Society". Computer.org. Retrieved 2015-12-15. 
  5. ^Brinch Hansen, Per (April 1993). "Monitors and Concurrent Pascal: a personal history"(PDF). 2nd ACM Conference on the History of Programming Languages. 
  6. ^Brinch Hansen, Per (November 1978). "Distributed processes: a concurrent programming concept"(PDF). Communications of the ACM. doi:10.1145/359642.359651. 
  7. ^"articles58". Shef.ac.uk. 29 June 2007. Archived from the original on 29 June 2007. Retrieved 25 October 2017. 
  8. ^"Ancient Discoveries, Episode 11: Ancient Robots". History Channel. Retrieved 2008-09-06. 
  9. ^Koetsier, Teun (2001). "On the prehistory of programmable machines: musical automata, looms, calculators". Mechanism and Machine Theory. Elsevier. 36 (5): 589–603. doi:10.1016/S0094-114X(01)00005-2. 
  10. ^ abG. W. A. Dummer (1997), Electronic Inventions and Discoveries, page 164, Institute of Physics
  11. ^Valerie-Anne Giscard d'Estaing (1990), The Book of Inventions and Discoveries, page 124, Queen Anne Press
  12. ^ abLazarus, David (April 10, 1995). "'Japan's Edison' Is Country's Gadget King : Japanese Inventor Holds Record for Patent". The New York Times. Retrieved 2010-12-21. 
  13. ^YOSHIRO NAKAMATSU – THE THOMAS EDISON OF JAPAN, Stellarix Consultancy Services, 2015
  14. ^Magnetic record sheet, Patent US3131937
  15. ^Graphic Arts Japan, Volume 2 (1960), pages 20–22
  16. ^"The independent", Pier Giorgio Perotto Obituary, Tuesday 5 February 2002
  17. ^Aspray, William (1994-05-25). "Oral-History: Tadashi Sasaki". Interview #211 for the Center for the History of Electrical Engineering. The Institute of Electrical and Electronics Engineers, Inc. Retrieved 2013-01-02. 
  18. ^Nigel Tout. "The Busicom 141-PF calculator and the Intel 4004 microprocessor". Retrieved November 15, 2009. 
  19. ^Federico Faggin, The Making of the First Microprocessor, IEEE Solid-State Circuits Magazine, Winter 2009, IEEE Xplore
  20. ^Japan, Information Processing Society of. "Shima Masatoshi-Computer Museum". museum.ipsj.or.jp. Retrieved 25 October 2017. 
  21. ^Claude Shannon (1948). "Bell System Technical Journal". Bell System Technical Journal. 
  22. ^Klatt, D (1987). "Review of text-to-speech conversion for English". Journal of the Acoustical Society of America. 82 (3): 737–93. doi:10.1121/1.395275. 
  23. ^Copeland, B. Jack (25 October 2017). Zalta, Edward N., ed. The Stanford Encyclopedia of Philosophy. Metaphysics Research Lab, Stanford University. Retrieved 25 October 2017 – via Stanford Encyclopedia of Philosophy.