Colloquium Archive

Programming Languages Could Help Security And Reliability A Lot More. Why Don't They?

L Peter Deutsch

03/23/2017

The operating systems and software libraries we rely on are riddled with bugs and insecurities; but programming language technologies, some of which have been known since the 1960s, could eliminate a very large fraction of them. What are those technologies? Why aren't they being used? And what are some ways in which programming language research could help with security and reliability even further?

Orchestrating Chaos: Applying Database Research In The Wild

Peter Alvaro, University of California, Santa Cruz

03/30/2017

Large-scale distributed systems must be built to anticipate and mitigate a variety of hardware and software failures. In order to build confidence that fault-tolerant systems are correctly implemented, an increasing number of large-scale sites regularly run failure drills in which faults are deliberately injected in production or staging systems. While fault injection infrastructures are becoming relatively mature, existing approaches either explore the combinatorial space of potential failures randomly or exploit the “hunches” of domain experts to guide the search. Random strategies waste resources testing “uninteresting” faults, while programmer-guided approaches are only as good as the intuition of a programmer and only scale with human effort. The subject of this talk covers intuition, experience and research directions related to lineage-driven fault injection (LDFI), a novel approach to automating failure testing. LDFI utilizes existing tracing or logging infrastructures to work backwards from good outcomes, identifying redundant computations that allow it to aggressively prune the space of faults that must be explored via fault injection. I will describe LDFI’s theoretical roots in the database research notion of provenance, present early results from the field, and present opportunities for near- and long-term future research.

Semantically Linking Instructional Content Using Computer Vision

Yekaterina Kharitonova, Harvey Mudd College, Claremont, California

04/06/2017

The Semantically Linked Instructional Content (SLIC) project strives to help users, such as distance learners, gain easier access to digital video presentations. The project focuses on lectures and talks in which the presenter uses electronic slides. By automatically matching video segments with the corresponding slides, this project helps facilitate the video viewers' learning process by making presentation content quickly searchable and easily retrievable.

Can Games Fix What’s Wrong With Computer Security Education?

Zachary N. J. Peterson, Cal Poly, San Luis Obispo

04/13/2017

Year after year, we see reports on an ever increasing gap, both in the public and private sectors, between the number of computer security professional we need and the number we expect to produce. While the reasons for this trend are varied, there is a perception (particularly among those new to computing) that security can be asocial and isolating, that it is void of creativity and individual expression, and lacks positive social relevance. But, as we all know, security can inherently have all of these qualities, which perhaps manifest themselves most clearly in cybersecurity games. Indeed, the freedoms of play inherent in games may directly address the qualities deficient in security pedagogy, with many educators now turning to security games, in and out of the classroom, as a meaningful tool for outreach and education. This talk takes a critical look at the use of games, and explores some ways that games can (and cannot) fix computer security education.

High-Performance Gpu Graphics: Take A Ride On The Opengl Pipeline

V. Scott Gordon, California State University, Sacramento

04/20/2017

Most 3D graphics programming today is "shader-based". That is, some of the program is written in a standard language such as Java or C++, and some is written in a special-purpose "shader" language that runs directly on the graphics card (GPU). Shader programming involves passing graphics data down a "pipeline", with modern graphics cards able to process this data in parallel. It's complex, but the payoff is extraordinary power. The blossoming of stunning virtual reality in videogames and increasingly realistic effects in Hollywood movies can be greatly attributed to advances in shader programming. This talk will demonstrate examples of shader programming that showcase the processing power of today's graphics cards. The speaker is the author of "Computer Graphics Programming in OpenGL with Java", published in 2017 by Mercury Learning.

Pages