Danny Dig with his students and collaborators won four prestigious research paper awards at international conferences this year. Dig, an associate professor of computer science in the College of Engineering at Oregon State University, researches software engineering. His focus is on interactive program transformations that improve programmer productivity and software quality.
Distinguished Paper Award (awarded by ACM SIGSOFT at FSE ’17)
Mike Rosulek, assistant professor of computer science in the College of Engineering at Oregon State University, received a Visa Faculty Research Award to advance methods of customer privacy and fraud detection.
“We’ve known for several decades that cryptography can protect not just data at rest, but also data in use, at least in principle. Finally, in the last several years these cryptographic ideas have been improved to become truly practical,” Rosulek said.
Rosulek and his colleague at Visa, Payman Mohassel, will be working to improve a tool from cryptology called private set intersection, which allows two parties to find items in common on two separate lists without revealing any other information from the lists.
Their research will help make complicated queries faster to process. For example, a company may want to know how many customers they have in common with another company without revealing who those customers are.
The funds will support one graduate student for a year who will be helping to develop new prototypes that would make advanced cryptography practical for companies.
“This award demonstrates that industry leaders see the potential of advanced cryptography to protect data during use and solve real-world privacy challenges,” Rosulek said.
Three Oregon State University students working with the Jet Propulsion Laboratory received the Extreme Science and Engineering Discovery Environment (XSEDE) Startup Allocation based on their senior design capstone project.
Taylor Alexander Brown (computer science), Heidi Ann Clayton (computer science), and Xiaomei Wang (finance), also won the CH2M Multidisciplinary Collaboration Award at the 2017 Undergraduate Engineering Expo at Oregon State for their project called Coal and Open-pit surface mining impacts on American Lands (COAL).
The team created a system to process remote-sensing data to identify land surface types, coal mining operations, and the environmental impacts on water resources to help NASA’s Jet Propulsion Laboratory study the effects of coal mining on the environment.
The XSEDE award will allow the team to continue development on the project including the use of XSEDE resources for benchmarking, evaluation and experimentation. Funded by the National Science Foundation, XSEDE is a collection of integrated advanced digital resources and services.
“The availability and opportunity to use computational infrastructure of this caliber will further enable the development of a science gateway to continue foundational COAL research,” said Lewis John McGibbney, data scientist at the Jet Propulsion Laboratory, and the client for the project.
“I am extremely proud of the team’s achievements and know that such endeavors set a high standard for each and every one of them as they progress further through their journey in higher education and beyond.”
Five students in the School of Electrical Engineering and Computer Science will be heading to Germany this summer to compete in the 2017 Rohde & Schwarz Engineering Competition. Their performance in the U.S. preliminary round earned them a spot at the world league competition.
Aaron Schraner, an electrical and computer engineering student, was motivated to compete since he participated last year on a team from the Oregon Institute of Technology that won the 2016 regional competition. Based on his experience there, he recruited Karen Harper for additional electrical engineering knowledge. All the other team members are in computer science: Braxton Cuneo, Erich Kramer, and Andy Tolvstad.
Their task was to make improvements to software for a digital-signal processing application that could ultimately make video streaming better. Specifically, they were asked to speed up the processing of the software-based DVB-T2-Coder, based on the open source GNU Radio project, while maintaining accuracy.
“Signal processing is traditionally very, very computationally intensive, so any optimizations you can get out of something like that are going to be very beneficial to your workflow,” Andrew Tolvstad said.
“There was one loop we optimized that was run about 1.2 million times,” Karen Harper agreed.
“Just by changing a data type that was 32-bits wide to one that was 64-bits wide, we took another 5 to 10 percent off the total amount of time it took to run the program,” Aaron Schraner said.
During the competition, students made improvements to the code that was then automatically compiled and tested for performance once they submitted it via Git. Rohde & Schwarz continuously published a leader board of the top performing teams so the teams could watch their ranking move up or down.
The team members are excited to have an all-expenses paid trip to Germany, and are squeezing the trip into very busy lives of classes and internships. They also have a chance to win $3,000 for the top prize, $1,500 for second place, and $750 for third place.
But the money was not the only objective.
“It’s been a lot of fun,” Tolvstad said. “Just the thrill of trying to take something and make it the best it can possibly be by just rearranging its parts.”
This final will be held in Munich, Germany at the Rohde & Schwarz headquarters. Rohde & Schwarz is a privately held company with over 10,000 employees worldwide, including a design center in Beaverton.
“Gadgets and Gizmos” was the theme for the first HWeekend of 2017 on January 20-22, jointly sponsored by the College of Business and the College of Engineering.
In just one weekend, forty-seven students from business and engineering designed, built, and pitched their idea for a marketable product including temperature based alarm clock, a computer controlled potato launcher, a 3-D printed longboard fender, and a self-playing guitar.
It was the seventh iteration of the popular event that provides students from different disciplines an opportunity to work together in teams. Students came from a variety majors including business, bioengineering, civil engineering, chemical engineering, computer science, electrical and computer engineering, environmental engineering, and mechanical engineering.
“This event is really cool, because I get to do things that I normally don’t get to do in my major,” said Alec Westbrook, a chemical engineering student who worked on the 3D printed longboard fender project. “I mean, how often can a guy that is mixing chemicals all day work with his hands and create something new?”
Mentors for this HWeekend included six industry members from Intel and two from Microsemi.
“People here are really excited about the things they are making,” said Aayush Pathak, a silicon architecture engineer from Intel who attended HWeekend as a mentor. “And to be a part of it and share what I have seen in my school and life — it’s a proud feeling.”
Staff from both the College of Business and the College of Engineering also helped mentor students through the creation and marketing of their projects.
“It’s an incredibly valuable partnership between business and engineering,” said Dale McCauley, the makerspace manager for the College of Business. “The students are getting the chance to build relationships that ordinarily wouldn’t form. If you get business students to understand how engineers think and vice versa, I think that is valuable.”
At the end of the weekend, the students received group awards for their dedication and hard work. The Executors award goes to the team that produces the best engineering execution of their idea to create the most polished final product, the Helping Hand is for the team that contributes the most to other teams, and the InnovationX Pitch awards go to two teams who had the best business pitches for selling their prototypes.
Executor: Temperature Based Alarm Clock team. The team included members Noah Hoffman, Taylor Johnston, Alexia Patterson, and Abdurrahman Elmaghbub.
Helping Hands: Checkpoint team. The team included members Andrey Kornilovich and Graham Barber
InnovationX Pitch: Checkpoint team and Temperature Based Alarm Clock team.
The following quote comes from the the Education Committee of the Computing Research Association award announcement:
Margaret Burnett, Ph.D., is a distinguished professor in the School of Electrical and Computer Engineering at Oregon State University (OSU), a member of the ACM CHI Academy, and an ACM Distinguished Scientist. Burnett has contributed pioneering research on how ordinary users interact with software and optimizing that interaction. This resulted, in part, in the development of a new subarea, which is at the intersection of human-computer interaction and software engineering, called end-user software engineering.
Throughout her academic career, Burnett has continuously worked with undergraduate researchers and even accommodated high school students in her lab. She has mentored 39 undergraduate students in research; 21 were from underrepresented groups in computing, 32 co-authored published research papers, and 25 went on to graduate studies. A selection of the honors of her highly accomplished mentees includes three Google Scholarships, three NSF Graduate Fellowships, and two National Physical Sciences Consortium Graduate Fellowships. In her nomination, several mentees attested to her personal influence on and involvement in their lives and careers.
Impressively, Burnett influenced the culture of faculty undergraduate research mentoring in her school, increasing it to 50% participation. She has also led efforts to better support a diverse undergraduate population through trips to the Grace Hopper Celebration of Women in Computing, the adoption of a diversity plan, and new experimental scholarships for incoming freshmen women in computing. She has received awards from NCWIT, Microsoft, and OSU for her mentoring and research.
As a freshman it’s pretty difficult to land an internship because most companies are looking for people with more experience or students who will be graduating soon. But it is possible! This summer I had the opportunity to work for Metal Toad, a software consulting company in Portland, Oregon that offers technical consulting, product development, application support, and managed cloud services to a broad set of clients such as major TV networks, non-profits, health institutions, cultural institutions (such as The Emmys and Golden Globes), and corporations in the technology sector.
I took the initiative to email the marketing manager which eventually led to a phone conversation. I found that professionals in the Portland software community are surprisingly very willing to spend time talking with you. We talked about what the company did and the culture of the company. After some time I was able to speak to the director of human resources and we talked about the internship program, the logistics, and how I could fit into the company as an intern. This led to a phone interview and then a second interview at the company site.
The interview was different from what I had expected — it was less technical, and more centered on cultural fit. I then followed up with email thanking them all for their time and saying that I was looking forward to hearing back to them about the position. About a week later they replied to me asking me if I was still available to take the position.
It was a learning experience for all of us. The company is relatively small and their internship program is still growing and changing, so I was their first intern “guinea pig.” I was new to the formal workplace and was doing something completely new to me — DevOps.
My First Day
I took the internship without having seen the office where I’d be working. It was not what I expected. There were no cubicles, but rather it had an open floor plan. Software developers and other professionals sat next to each other. I was to contribute my expertise to the cloud services (or DevOps) team. Our job was to configure custom cloud services to help align with what the software developers are doing and what the clients want.
I immediately asked for things to do and I was given task after task by my mentor, who was the senior engineer on the team. It seemed like there was an endless amount of things for me to do if I was willing to learn, so I took on whatever I could, even if I had no knowledge about it.
Our team used the Kanban methodology, which produces tickets or tasks from a list of things to do. The Kanban methodology is similar to having a wall covered in sticky “to-do” notes. Members of teams then finished tasks on a first come first serve basis. This methodology worked very well for the small and experienced DevOps team. Everyone on the team was capable of taking on anything coming their way.
I took advantage of the resources that I had to learn as much as I could over the 12-week internship. I contributed to several internal DevOps along with working on some client side projects. One experience that students don’t always have access to during undergraduate course work is seeing how a consulting firm, such as Metal Toad, interacts with the clients continuously to create and maintain great products. Being at a small software company allowed me to see all sides of the operations, which was invaluable. Not only was I able to learn and get advice from my mentors, but I was able to learn about the business end of things along with how our work affects our clients and software developers.
Being in the city exposed me to other software companies in the area. Our company was part of the Portland Tech Intern Experience which is a collaborative effort to give a voice to Portland’s growing and diverse tech industry. I would highly recommend this organization to gain greater access to players in the Portland tech industry. The program offered several different networking events and lunch learning sessions that helped unite and nurture the Portland tech scene. During these network events, I met and learned from former interns, and was exposed to future technologies areas of computer science such as deep learning. I also met CEOs, angel investors, and recruiters.
The networking experience that I gained from this internship is invaluable to me. It really opened my eyes to the special software company culture that Portland has. The CEO of Metal Toad encouraged the interns to message people on LinkedIn who they want to learn more about, and ask them for 30 minutes of their time for coffee, or for anything. Driven interns, even “guinea pigs” who can convince companies they’re able to learn and tackle just about any new task, will find that people are more than willing to help you.
Rey Pocius grew up in Elmhurst, IL, where he attended York Community High School. He moved to Oregon in pursuit of the growing tech scene in Portland and the thriving programs at Oregon State. He is also the President of the Oregon State University Association for Computing Machinery student chapter (OSU ACM).
He is very passionate about informing others about the ever growing tech field and helping people find the help they need to launch their careers. He is also particularly interested in deep learning and robotics. He hopes to focus his research and efforts into those two areas.
Outside of academia he enjoys playing tennis and spending a lot of time hiking around the Corvallis area. So don’t be surprised if you find him on some of the local trails. He also enjoys painting and working on software side projects.
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.
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.”
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.