Computer Science Colloquium

September 1, 2015
comp science globe

The 43rd Computer Science Colloquium Series returns this fall, offering insights on virtual reality, web encryption, and more. The lectures are Thursdays at noon in Salazar 2016. The series is supported by the SSU Instructionally Related Activities Fund, as well as the generous donations of friends of SSU Computer Science Department. Call (707) 664-2667 for more information, or visit Lectures are free to attend, parking is $5-$8 on campus.

Sept. 10

Systematic Solutions for Preventing Security-Critical Bugs

Thomas Austin, San Jose State University
News stories abound about security vulnerabilities resulting in the loss of sensitive information or in important systems being compromised by attackers. In many cases, these vulnerabilities are the results of common program logic errors. These bugs are the inevitable result of programming languages and developer tools that seem to lead developers into making mistakes rather than helping developers avoid these mistakes. In this talk, we discuss how common vulnerabilities such as buffer overflows and SQL injection can be addressed in a more systematic fashion. We review different tools being developed today that attempt to defend against more complex attacks, and show how better programming language design may lead to a more secure future.

Sept. 17

Computer Science Education as a Min/Max Problem, or, My Rationale for an Under

Tom Murphy, Contra-Costa Community College Division CS Curriculum
Students, and people in general, like to get as much value from as little work as possible. This is a great trait for CS professionals. This talk will focus on the courses that help with theory and practice, as well as fostering problem solving. It proposes coding as a necessity for all CS professionals. It further proposes that CS clubs and non-graded events, such as hack-a-thons, foster all of the above.

Sept. 24

Let's Encrypt: An Open Source Project to Encrypt the Entire Web

Jeremy Gillula, Electronic Frontier Foundation
Setting up an encrypted (HTTPS) website can be a challenging task for anyone who's not a professional sysadmin. Not only do you have to first obtain a certificate from a Certificate Authority (which can sometimes cost several hundreds of dollars), you then have to figure out how to properly configure it on your system. For a professional sysadmin this process can take over an hour; for an amateur who just wants to run their website in a secure way, it can be baffling to the point of impossible. And either way, it's easy to make simple configuration mistakes that will dramatically decrease the security of your site. Let's Encrypt is a joint project between the Electronic Frontier Foundation, Mozilla, Akami, Cisco and open-source developers around the world, to fix this. Let's Encrypt is a free, automated Certificate Authority, which anyone can use to quickly and automatically setup HTTPS on their web server. In this talk, I'll give a quick background on how the HTTPS and certificate infrastructure works, what technical challenges Let's Encrypt will address, and how it will do so.

Oct. 1

Technical Considerations for VR

Jason Shankel, CTO, Wildstop
Virtual reality headsets are poised to become the next breakthrough in human/computer interface technology. Let's explore the unique challenges involved in supporting VR rendering and headset input.

Oct. 8

Helping Developers Make Sense of Distributed Systems

Ivan Beschastnikh, University of British Columbia
Distributed systems pose unique challenges for software developers. Reasoning about concurrent activities of system nodes and even understanding a system's communication topology can be difficult. In this talk I will discuss two tools that my group has developed to help developers overcome some of these challenges. Both tool allow developers to gain insight into the runtime operation of their systems. The first tool, ShiViz, lets developers visualize, explore, and query logged distributed system executions. The second tool, DInv, semi-automatically identifies the variables that comprise the distributed state of a system, and infers likely data invariants that summarize the observed concrete distributed state values.

Oct. 15

Why Assembly Language?

Robert G. Plantz, Sonoma State University (Emeritus)
I believe that you "should avoid writing in assembly language except when absolutely necessary," but that every programmer should understand assembly language. Higher-level languages provide a machine-independent means to program a computer that is generally easier for a human to read and write, but ultimately the program must control the specific hardware at the assembly language level. I will talk about why I think that knowing assembly language helps you to be a better programmer.

Oct. 22

Contributing to Open Source: What's In It For Me?

Deepa Karnad Dhurka, Sr. Software Engineer, PayPal
Open source software has come a long way. Commercial products like server operating systems are built around open source projects and in the least, the Linux kernel. Commercial infrastructure and software deployments--notably in Cloud--are run on a mind-boggling number of open source projects. Every single day new projects are announced or released. What does this mean for the software developer? What are the opportunities and how can an engineer leverage them to distinguish and catapult his or her career? Consumed by these questions, I led a CodeChix team of women engineers into an adventure to explore this space. In June 2013, we started work on a software library written entirely in C, for SDN network connectivity. In November 2013, CodeChix released OFconnect as open source: In this talk, I will share the story of this CodeChix project, including a technical dive into the design and the opportunities that unfolded after its release. With this, I hope to showcase the power of affinity groups, the importance of 'making' and most importantly, the value in contributing to open source.

Oct. 29

Fork Me on Github: The Continuing Evolution of Nerd Culture

Brian Hayes, Senior Writer, American Scientist
All my life I have worried that computing was about to become totally businesslike, professionalized, and boring. Only licensed programmers and employees of Apple or Microsoft would be allowed to write code. This threat still exists, most notably in "app stores" that distribute only pre-approved software. However, to my continuing surprise and delight, the hacker community has never been livelier or more creative. GitHub and other repositories are overflowing with treasures of open-source software. Legions of talented programmers compete with one another to build the next great programming language or graphics library or text editor, and then they make it freely available to everyone. How did we get so lucky?

Nov. 5

Enter the Dragon: A Peek Inside of Qualcomm's Snapdragon Memory Controller Team

Korey Sewell, Qualcomm
The global proliferation of mobile computing devices has reemphasized computer architectures that integrate a variety of processing cores and memories. Qualcomm's Snapdragon processor, featured in products such as Samsung Galaxy phones and Amazon Kindle tablets, has been at the forefront of the mobile computing movement due to it's ability to successfully tradeoff performance, power, and quality-of-service (QoS) within one chip. A key part of the Snapdragon's integration ability is found in the memory controller where concurrent requests are managed across processing elements like CPUs, GPUs, and modems. This talk will provide an overview of the challenges faced by the Snapdragon memory controller team and discuss how those challenges impact future architectures.

Nov. 12

Understanding Parallel Computing Through Visualization

Kate Isaacs, UC Davis
Parallel simulation is used for discovery across scientific domains including climate, medicine, and energy. Understanding the behavior of these massively parallel applications and the systems on which they run is essential for increasing the scale and fidelity of our science. Visualization can provide insight into these complex software and systems. In this talk, I will show how information visualization is used to explore and improve parallel applications.

Nov. 19

Computational Imaging for Real-Time Gigapixel Microscopy

Laura Waller, UC Berkeley
This talk will describe new methods for capturing gigapixel scale 2D and 3D images in commercial microscopes, with resolution beyond the diffraction limit and at real-time speeds. Our setup involves multiplexed illumination coding, combined with efficient algorithms for phase retrieval via nonlinear optimization. Such computational approaches to optical microscopy provide significant new capabilities to commercial microscopes without much additional cost or hardware modification.

Dec. 3

Student Presentations

Short presentations of research carried out by Sonoma State computer science students. Pizza will be provided during the presentations.

Dec. 10

End of Semester Celebration

Awards presented to Sonoma State computer science majors. Pizza will be provided during the celebration.