Graduate student Peter Rindal was on the winning team at an international computer security competition hosted by iDASH, a National Center for Biomedical Computing. The team members were interns and postdocs at Microsoft Research competing against seven other groups from around the world to win the “Secure Outsourcing” challenge.
“The competition pushed us to develop promising new research and brought us together with people in healthcare who want to see this technology in the real world,” Rindal said.
The goal of the competition was to advance the state-of-the-art for research on information privacy for genetic data. An application of their project could be secure cloud storage for medical data so patients and doctors could query data without revealing sensitive information to the cloud (e.g., predisposition to Alzheimer’s disease).
Specifically, the group calculated the probability of genetic diseases through matching a set of biomarkers to encrypted genomes stored in a commercial cloud service. The matching was carried out using a process called homomorphic encryption, which leaves no trace of the computation, so that only the patient and doctors can learn the answer to the question.
Oregon State University faculty and students were well represented at the premiere software engineering conference, ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE 2016) in Seattle November 13-18, 2016.
Distinguished Professor Margaret Burnett gave a keynote address titled Womenomics and Gender-Inclusive Software: What Software Engineers Need to Know, and five of the 74 papers presented there were from Oregon State which is an honor in itself. However, two of those papers were selected to receive Distinguished Paper Awards. Both papers aim to improve the efficiency of software development:
API Code Recommendation Using Statistical Learning from Fine-grained Changes
by Anh Nguyen, Michael Hilton, Mihai Codoban, Hoan Nguyen, Lily Mast, Eli Rademacher, Tien Nguyen and Danny Dig
Abstract: Learning and remembering how to use APIs is difficult. While code- completion tools can recommend API methods, browsing a long list of API method names and their documentation is tedious. Moreover, users can easily be overwhelmed with too much information. We present a novel API recommendation approach that taps into the predictive power of repetitive code changes to provide relevant API recommendations for developers. Our approach and tool, APIREC, is based on statistical learning from fine-grained code changes and from the context in which those changes were made. Our empirical evaluation shows that APIREC correctly recommends an API call in the first position 59% of the time, and it recommends the correct API call in the top 5 positions 77% of the time. This is a significant improvement over the state-of-the-art approaches by 30-160% for top-1 accuracy, and 10-30% for top-5 accuracy, respectively. Our result shows that APIREC performs well even with a one-time, minimal training dataset of 50 publicly available projects.
Foraging and Navigations, Fundamentally: Developers’ Predictions of Value and Cost
by David Piorkowski, Austin Henley, Tahmid Nabi, Scott Fleming, Christopher Scaffidi and Margaret Burnett
Abstract: Empirical studies have revealed that software developers spend 35%–50% of their time navigating through source code during development activities, yet fundamental questions remain: Are these percentages too high, or simply inherent in the nature of software development? Are there factors that somehow determine a lower bound on how effectively developers can navigate a given information space? Answering questions like these requires a theory that captures the core of developers’ navigation decisions. Therefore, we use the central proposition of Information Foraging Theory to investigate developers’ ability to predict the value and cost of their navigation decisions. Our results showed that over 50% of developers’ navigation choices produced less value than they had predicted and nearly 40% cost more than they had predicted. We used those results to guide a literature analysis, to investigate the extent to which these challenges are met by current research efforts, revealing a new area of inquiry with a rich and crosscutting set of research challenges and open problems.
Many people ask me whether they should pursue graduate school in computer science. Answering this question requires explaining what graduate school is good for.
For the Ph.D., the answer is relatively simple. A Ph.D. primarily focuses on training students to do research. It also provides other skills, but that is the main focus. As such, it is appropriate and necessary training for anyone who wants to become a tenured professor.
For the master’s degree, the answer deserves more discussion. It is also an important discussion because almost 85% of all graduate degrees granted in computer science were master’s degrees (according to the 2015 Taulbee Survey). To avoid relying on just my own opinions, I asked six students who have graduated from the master’s program at Oregon State University about what their training had accomplished, what aspects of the program were most valuable, and whether the value justified the cost overall.
Improved capabilities
My former students explained that earning a master’s degree in computer science expanded four areas of capabilities.
Graduate school developed these former students’ ability to master material efficiently. One student explained that his employer valued his “ability to quickly grasp existing knowledge on some relatively advanced topics.” Others also commented on their enhanced ability to learn new frameworks, languages, concepts, and tools.
They also commented on how the program increased their problem-solving skills. This manifested differently for each person. One noted that he had “a more rounded way of approaching problems,” while another commented that supervisors “appreciate my critical thinking ability, [and] a systematic approach to problem solving.”
Several former students commented on how the program had strengthened communication skills. One indicated, “In my experience, my employer values my presentation and writing skills just as much as my technical knowledge.”
Finally, they commented on the value of specific technical knowledge obtained from graduate school. This included AI, machine learning, Big Data, Java, JavaScript, and other specific technologies that my former students now use in their work.
Valuable aspects of graduate school
Three aspects of graduate school came up as being of most value.
All but one former student commented on how their project experiences contributed to knowledge. All of these developed computer software during their studies, as part of their research projects. Actually doing advanced software development with a mentor, rather than just learning about it, provided a context for skill development. For example, one wrote, “Graduate school was a lot different [from undergraduate studies] because I had to go further out of my comfort zone to succeed, learning new languages and systems as needed” while another summarized “It’s all about the people and the projects.”
Several noted the importance of finding faculty willing to connect their expertise to students’ needs. This is a team effort — the advisor (me) has a only a certain range of expertise, which meant that students also valued getting help from other helpful faculty who taught courses outside my own range. For instance, one former student wrote, “All faculty members and existing grad students are doing interesting work, and everyone is approachable.”
Finally, all noted the importance of industry-relevant experiences, in addition to research. These included doing internships, using technologies relevant to industry needs, and interacting with people from industry. In fact, several pointed out the need to strengthen these aspects of our program at Oregon State University. (All six of these former students were doing research, as they started the program prior to our new master’s track tailored to the needs of students who want to pursue a career in industry, rather than in research.) For example, one commented on the importance of “classes that are geared towards master’s students who want to go on and become software developers and want to gain knowledge about practical applications of theoretical concepts.”
Does the value exceed the cost?
The five students reported to me that they incurred between $0 and $20,000 in total out-of-pocket costs, due to the fact that they received assistantships for some or all of their terms at Oregon State University.
So, in the end, was obtaining a master’s degree worth it? All confirmed that the value exceeded the cost. One pointed out that people with master’s degrees often have higher salaries than those with bachelor’s. The difference appears to be approximately $7,000 per year right now, varying somewhat based on job title and location (according to payscale.com data for bachelor’s and master’s degrees). The payoff might not be immediate, however. For example, one student noted that he had to switch jobs at least once after graduating in order to obtain a position that made use of his increased skills and paid a higher salary.
Bottom line: What is a master’s degree in computer science good for?
My former students identified four areas of enhanced capability that included soft and technical skills. They obtained these largely through industry-relevant experiences, projects, and mentorship from committed faculty. They believed their employers noticed and valued their improved capabilities, which translated into a higher-paying career.
I hope that this information will be useful to you or to colleagues that might be considering whether to get a graduate degree. We will use this and other feedback to continue enhancing our own program in order to better meet the needs of our students. If you would like to contact me and ask questions, please feel free to send me a LinkedIn invitation.
I had an amazing experience this summer at the University of Georgia working in the Small Satellite Research Lab. The lab was founded by undergraduate students, myself included, partnering with professors, NASA, and the U.S. Air Force. Space seems impossibly far away and hard to get to, but with the increased popularity and strength of the small satellite community, it is now easier than ever to reach, even for self-funded, undergraduate engineering students.
We started as a small group of students and created a crowdfunding campaign with the goal of launching a small satellite into orbit. Most of the students on the project were at the University of Georgia (UGA). We had reached out to faculty members in the UGA geography department to see if they wanted a science payload to fly on our CubeSat. CubeSats are small satellites of a specific size. For example, a “1U” CubeSat is 10 cm wide, 10 cm deep, and 11 cm tall. The standard size has aided the commercialization of space.
Currently, we have two CubeSat projects and about 20 members. The CubeSats launch off the International Space Station. One will look at Earth in order to track sediment plumes, algal blooms, and chemical runoff around Georgia. The other will create 3D maps of large geographic features such as mountains. We couldn’t have dreamed that this project would end up where it is now — a lab run by undergraduate students with two fully funded satellite projects.
My role in the lab is to develop the algorithms that we need to accomplish our mission objectives. That mostly involves adapting existing algorithms for use on orbit. Running software on orbit has different limitations than on the ground, so the software needs to be adjusted accordingly. For example, when dealing with space, engineers must take account of power shortages, overheating, and time limitations that might compromise transmission of data. Fortunately, we know these constraints ahead of time. With careful planning and testing, we can insure that our code will run on orbit.
The process of developing cube satellites posed both unique opportunities and struggles. As undergrads, trying to figure out how to build two satellites, we are all learning together. And the experience of working at the Small Satellite Research Lab is incomparable to most undergraduate experiences, because of the nature of the project and the close relationships developed through solving problems in space. Balancing the demands of the project takes a close-knit group of scientists and engineers and communication between group members. Through the experience we have built a productive lab and became close friends.
Eight of our members (myself included) received scholarships to attend the Small Satellite Conference in Logan, Utah. At that conference we had the opportunity to attend six days of talks about every aspect of small satellite missions. We all learned more than we could have imagined. We were also able to network with industry professionals from organizations like NASA and SpaceX. That week opened our eyes to issues that we hadn’t thought about yet, and introduced us to new satellite hardware vendors. When we returned from the conference, we were equipped to onboard new lab members, finalize our payloads, design our ground station, and plan outreach events.
Despite ongoing encouragement and success, we continue to struggle with getting the funding that we need to make a lab that can support multiple space missions. For example, using space-grade hardware requires a cleanroom in order to assemble our satellite to meet the standards set by NASA and the U.S. Air Force, who have each funded our missions. The funding we’ve received for the projects assumes that there is already a lab that is outfitted with all the supplies necessary to build and test a CubeSat, so we face the additional hurdle of establishing our lab.
I’m proud to be part of a group that welcomes challenges instead taking the easy route — an important characteristic for the next generation of scientists and engineers solving problem in the limitless reaches of space. With creativity and persistence, the University of Georgia Small Satellite Research Lab is pushing itself and reaching new heights.
—————
Author biography:
Helena Bales grew up in Portland and is a senior in computer science. In addition to her ongoing work at the UGA Small Satellite Research Lab, she works on campus as a software developer at the Valley Library. She spent last summer at NASA’s Johnson Space Center developing applications for the daily operation of the International Space Station. Her internships have fueled her interest in space and she plans to pursue a career in the aerospace industry after graduation.
This summer I had a great experience as in intern at Tripwire, a software company based in Portland that develops security solutions. What impressed me the most about Tripwire was how everyone there made me feel comfortable and part of the company. I remember getting coffee in the break room the first week, and multiple people stopped by to introduce themselves and ask about me. I got the sense of belonging fairly quickly. It empowered me. Although we only made small talk, I knew I could ask them for help without hesitation.
The fact that people are social at Tripwire really goes hand-in-hand with the work environment. There are multiple teams that develop and test the products. Cross-team collaboration at Tripwire is highly valued, because it’s crucial that different pieces of the puzzle are properly linked. For that reason, having the right social dynamics is really helpful.
My team gave me a small list of potential projects that I could choose to work on. I got a week to look over the projects I was interested in and choose something I found to be valuable. I really appreciated this because it didn’t box me in.
The first month was the hardest because I was trying to understand the work, the company and the culture. My team gave me the freedom to spend time on intricate problems, and when I ran into anything unusual they were always there to help me through it. They would also point me to who would be able to help me from another team.
One other thing I noticed about Tripwire (that I had not come across working at other companies) was how flat the organizational structure was. Not only was I in touch with my manager on a daily basis, but also my product owner, and even other engineering managers. I was absolutely delighted and surprised to see our CEO socializing and having a beer at a company event.
Portland’s tech culture is said to be unique, and I got a firsthand experience in it. Like you’d expect, going out to lunch was always a thrill. There were many food carts nearby, and the choices seemed unlimited. There was also a nearby Farmer’s market that set up shop every Thursday. These turned out to be a good place to socialize and it gave me a chance to meet people from other tech companies.
I loved my experience at Tripwire. Like I’d expect from any internship, not only did I learn about the company, but I also learned about myself. I was naïve when I thought the most important thing when accepting a job was the work and the people. I’ve come to learn that the work environment is just as important. I want find a job where the environment is conducive to learning, and positively supports new ideas. I am grateful to have had the chance to work there and get to know the people at Tripwire. When it’s time for me to find a job, I can confidently say Tripwire is on my list.
——————–
Author bio: Vedanth Narayanan (who goes by Vee) graduated from Oregon State in 2015 with a bachelor’s degree in computer science. He is currently working to get his master’s in computer science with an option in security. He previously worked for McAfee (now Intel Security), Intel, and OSU’s Center for Applied Systems and Software (CASS). He is very intrigued by the security landscape and software engineering. While he loves being in front of his computer, he is also grateful for the time away from it. During these times you will find him running, hiking, playing ultimate Frisbee or volleyball, at the Oregon coast, or cooking dinner with jazz playing in the background. An avid photographer, his camera is almost always less than ten feet from him. Although his comfort lies in landscape photography, he has recently taken an interest in portraits and lifestyle.
In their role as advisors, Lizbeth Marquez and Nick Malos help hundreds of students in the School of Electrical Engineering and Computer Science navigate their way through college. Their goal is to help students succeed and ultimately earn their Oregon State degrees. According to a recent report from the Commission on the Future of Undergraduate Education, only 60 percent of college freshmen get a bachelor’s degree within six years. While there are many reasons students don’t complete their degrees, Lizbeth and Nick have some advice to offer to help you succeed.
Lizbeth’s Advice
Get Organized College can be different from high school in that high school teachers tend to lead you through all the homework and due dates. In college, the professors post the assignments — often for the entire semester — and expect you to be prepared. Get a planner, use a smart phone app, or get a wall calendar — whatever it takes for you to know when assignments are due.
Find the right place to study It may be your dorm room or a cozy corner of the library, but find a place that works best for you to get your work done — while avoiding as many distractions as possible. There are many places to go such as the MU, the Valley Library, your residence hall, or most buildings on campus!
Seek a balance College life can be chaotic with various academic and social events. Make sure you stay balanced and don’t overload yourself. One way you can do this is by visiting OSU’s Mind Spa.
Get involved You may feel overwhelmed with being homesick or feeling like you don’t belong. We encourage you to consider joining a student group (and be careful not to go overboard), whether it’s academic, religious, athletic, cultural, or social. You’ll make new friends, learn new skills, and feel more connected to OSU.
Take advantage of the academic resources Most schools and colleges offer study tables or have tutors available. If you’re having difficulty, these resources are another tool available to you. Another idea: Talk to your classmates about getting a group together to study.
Nick’s Advice
Explore your major and career options It is important to remember there is no one “right” or “best” major. You should select a major that aligns with your skills, interests, and goals. Talking with a career counselor in the Career Development Center can help you explore the options. Don’t be afraid to change your major. It is estimated that about 80% of undergraduate students across the United States change their major at least once (National Center for Education Statistics, n.d.).
Get to know your fellow students It can feel intimidating at first, but it is important to get to know your fellow students because they can be a great resource. What better way to find others who share your same interests?
Get to know your professors Talk to your professors and attend their office hours. I promise they are not as scary as you might think. Professors are here to help you learn the material, challenge you to think outside the box, and further your understanding of the subject. They are also a great resource when you need letters of recommendation for scholarships, internships, or graduate school. Just remember, the better they know you, the easier it is for them to write a quality letter.
Put in the time & effort Some of the easiest ways to succeed include:
Meet with your advisor It is important to speak with your advisor early and often. They are the ones who will provide you with your registration pin number. But more than that, they can assist with course selection and planning; registration; understanding major and degree requirements; and navigating the processes to find extracurricular opportunities, internships, jobs, and more.
Computer science students Bret Lorimore, Chris Vlessis and George Harder took a big plunge into big data when they participated in DataFest, a nationwide hackathon-style event, in April.
The group won the Best Use of Outside Data award in the American Statistical Association competition hosted at over 20 universities, including Oregon State University. DataFest is a competition that challenges students to analyze a complex data set over a single weekend.
“We had nine teams with a total of 38 students from Oregon State, University of Oregon and Reed College, representing statistics, computer science, neuroscience, biophysics and biochemistry, business, math, and economics,” said Charlotte Wickham, an assistant professor of statistics at Oregon State and organizer of the event.
Competitors didn’t have any access to the data ahead of time, nor did they know where the data would come from. This year, Ticketmaster provided data that included information about the company’s Google analytics, ad words, website user “click” data and ticket sales.
Though participants were given millions of data points, the tasks they were given to accomplish were not highly defined. Students needed to decide for themselves what research question they wanted to answer and then worked to extract valuable information out of the data.
“They wanted people to come up with information that Ticketmaster could use as an actionable item to improve their business,” said team member, Lorimore.
Ultimately, the team chose to tackle the effectiveness of Ticketmaster’s advertisements.
“We found Ticketmaster was wasting a lot of money on Google keywords,” Vlessis said.
The trio discovered that people were clicking on the ads but not following through to purchase tickets and as a result, the company lost more than $1.4 million over the course of a year on ineffective advertising.
Vlessis’s startup company, SteadyBudget, happens to solve the same types of problems presented at this year’s DataFest, so the team had access to additional data from advertising analysts.
They looked at general trends of how SteadyBudget analysts interact with their advertisements and the decisions they make about placing or pulling ads. The group then used that information to help make advertising decisions for Ticketmaster.
“It was a way to automate the task of identifying poor-performing keywords and good-performing keywords and make the decision to stop paying for the ones that aren’t working and continue paying for the ones that are,” Harder said. “So we would save them money and automate the process at the same time.”
Although DataFest was about solving a data problem, it was not all about the numbers. “We spent a lot more time brainstorming and talking about what we wanted to do than sitting down and writing code,” Harder said.
“When you get that much data, it’s hard to make any sense of it,” Lorimore said. “Identifying the questions to ask is a challenge in and of itself.”
The group also gained an appreciation for the different ways people approached the data. “Seeing some of the techniques others used, and the way they went about approaching the problems and finding solutions, was stuff I never would have thought of,” Vlessis said.
Carl Beery, a junior in electrical and computer engineering, took first place and a cash prize of $150 in the Mastery Challenge for winter term.
The Mastery Challenge is a new extracurricular program hosted by the School of Electrical Engineering and Computer Science at Oregon State University to provide more hands-on learning opportunities for all students, regardless of major. The program is based on a concept called gamification which uses elements of game playing, such as leader boards and badges, to motivate participants to gain new abilities such as 3D modeling and Python programming.
Beery had already been working on projects on his own, but he realized the Mastery Challenge would give him a better framework for learning new abilities and more motivation for completing tasks.
“The Mastery Challenge is a good starting point to learn about topics you wouldn’t have thought about trying on your own,” Beery says. “Without it, I wouldn’t have learned how to laser cut, and laser cutting is pretty cool.”
To participate, students login to the Mastery Challenge website with their university account to see the list of challenges for which they can earn achievements. In winter term two cash prizes were awarded — one for the highest number of achievements, and a second was awarded randomly to anyone earning at least one achievement.
Beery had completed eight achievements and was tied for first place when he realized a project he had been working on for class — an audio amplifier — would qualify him for four more achievements. He simply videotaped his class presentation and uploaded it to the Mastery Challenge website as proof of completion.
“The experience Carl had was what I was hoping for — a fun way to gain new skills that will benefit him in the future as he enters the job market,” says Don Heer, creator of the Mastery Challenge program and instructor of electrical and computer engineering in the College of Engineering.
Mike Rosulek, assistant professor of computer science, was selected for a Google Research Award for a grant to advance methods of customer privacy. The award will allow Rosulek to hire a graduate student to work on the project, and give them the opportunity to collaborate with Google researchers and engineers.
“I have lots of ideas in this space, and it will allow me and a student to dive in head first exploring them,” Rosulek says.
Companies are looking for inexpensive ways to share information with each other without violating the privacy of their customers. For example, two companies may want to find out which customers they have in common. A tool from cryptology called private set intersection allows two parties to find items in common on two separate lists without revealing anything else from those lists.
One part of Rosulek’s research seeks to strengthen the security of private set intersection tools while keeping the costs reasonable so that companies are more likely to adopt good practices for keeping their customer’s information secure.
Another part of the project will work on flexible (or “fuzzy”) matching of items on lists such as addresses. Names and street addresses may have differences in spelling, so looking for exact matches between two sets can be too restrictive. Rosulek’s research will seek to modify current techniques to allow for “close enough” matches.
“I’m excited to see that Google is interested in these advanced cryptographic tools. I’m excited that the techniques can be used to protect sensitive user information. And I’m excited about the new technical and mathematical challenges on the roadmap,” Rosulek says.
Danny Dig and his colleagues discovered widespread problems in mobile app development that can cause applications to be unresponsive and “freeze.” After looking at over 1,000 open-source mobile apps, they found two main problems — underuse and misuse of asynchronous programming.
“It’s very easy, if you are not careful, to write a mobile app that is unresponsive,” Dig says. “The number one culprit for a frozen app is that a programmer has written a blocking call, such as accessing the cloud, on the main thread that processes other user-interface events and actions.”
The solution is to move the blocking calls into the background with asynchronous programming. Dig’s team has sent out hundreds of patches to developers to fix the problems in their code, and they have created tools that developers can use to find and fix asynchrony errors. Their webpages LearnAsync.NET and refactoring.info/tools give many examples of asynchronous programming and access to the tools.
“Now what I want to do is help people avoid making those mistakes in the first place,” Dig said.
As part of his educational efforts, Dig will be presenting in Portland, Oregon for the Technology Association of Oregon in June. The cost is $25 for members and $45 for non-members.
The presentation will be a technical overview of why asynchrony is important, it will include descriptions of the common pitfalls and best practices, and he will also demonstrate the tools he has developed.
“I see this as a way of transferring knowledge from research into practice, but it’s also important for me to have a dialog with programmers. I bring back their feedback to the research,” Dig said. “So, this is a fabulous event for me to establish those connections.”