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.”
Computer science freshmen, Brett Case, Logan Phipps and Taegan Warren had completed just one computer science class at Oregon State University, but their lack of expertise didn’t stop them from participating in QuackHack. The 40-hour gaming hackathon, held at the University of Oregon, challenged students to take an idea for a game and create a working prototype in a single weekend.
The trio entered the event for the learning experience and to see if they could create something with the basic programming skills they acquired in their introductory computer science class.
To their surprise, the virtual card game they created — in which players build hamburgers and feed them to the opponent — won an honorable mention for Best Scope, awarded to a team that had a reasonable goal and excellent execution of that goal.
“The judges were impressed not only by their execution, but how well the students knew their own skill in going after a project that was equal parts ambitious and reasonable,” said Jeff Bayes, QuackHack organizer.
More than 100 college students from 6 states, 14 universities and 16 different majors participated in the hackathon.
“We didn’t really expect to compete against more experienced people, but we decided we might as well go for it for our own benefit,” Phipps said.
“We just wanted to go and have fun and try to make something,” Case agreed.
To create their game within the short time frame, the team divvied up the programming components of the project. In the end, their separate functions had to come together to make the game work.
“It really makes you appreciate thorough design and pseudocode and flowcharts,” said Phipps. Jennifer [Parham-Mocello], our CS 160 professor, always talks about design, design, design. You
really need to have a large-scale design in advance; otherwise you can end up way over your head or you end up spending the entire time trying to debug.”
The teamwork is also crucial. “We helped each other with our weaknesses and built upon our strengths,” Warren said.
Parham-Mocello, who teaches the introductory computer science class, was thrilled with the students’ success. “This drives home what we teach: design, how to think and how to work in teams. They’re utilizing the principles that industry wants to see,” she said. “It’s not just about banging out code. We’re teaching students the proper way to do things from the very beginning.”
Computer science graduate student, Vahid Ghadakchi, decided to step out of his normal life one weekend this fall and try something new. So, he put aside his Ph.D. thesis work and attended the Willamette Startup Weekend at Oregon State University — a 50 hour event to inspire entrepreneurship.
Not only did his team win the second place prize for their app, but they are continuing to develop it into a business.
At the event, Vahid was quickly snapped up by business students Dylan Gould (entrepreneurship), Josh Cosio (marketing) and Elijah Mcgowen (finance) for their team. The three came to the event together with an idea for an app that restaurants could use to help bring in business during slow times. Vahid filled the team’s need for a computer scientist to implement their idea.
Initially the team just wanted to have some fun and learn some skills, but once they started market testing the app with businesses and potential users they realized their product could go farther than a weekend contest. Nearly all of the businesses they talked to said they would use the app, and one expressed interest being a beta tester. Customer responses were very positive as well.
Restaurants could use the app, called dEATS, to post discount deals that would last for a limited amount of time, such as 30 minutes. The app would have a count-down timer so customers would know how long the deal would be active. The product would help businesses drive customers to their restaurants during slow times, and customers could get ideas for where to go by checking the app for deals.
The team is planning to apply to the OSU’s Advantage Accelerator to help develop their idea into a business, and is looking for more engineers to join the team to make the business a reality.
Vahid said that the experience was a great break from working on his thesis and he also learned some valuable skills that go beyond what can be learned in the classroom.
“I realized how important it is for a computer science student to learn to communicate with people in business and other areas, because they have a different perspective that can help you develop a better product,” Vahid said.
The School of Electrical Engineering and Computer Science at Oregon State University is initiating a new extracurricular program to provide more hands-on learning opportunities for students. The Mastery Challenge 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.
“The program is designed to help students apply the knowledge they learn in classes to practical skills that they will need for jobs when they graduate,” said Don Heer, instructor of electrical and computer engineering. Experiential learning is a focus for Heer who has also created the TekBots program, which integrates course content with building a robot; and the CreateIT Collaboratory, an internship program for students to work with outside clients to create prototypes.
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. Participants can work on their own, or get help by contacting students who already have that achievement. Prizes will be awarded to students with the highest number of achievements each term. Helping other participants is another way for students to earn achievements.
Peers also participate in the evaluation process. To earn an achievement, a participant must demonstrate their ability by uploading a video or document to the website for review. Students who already have that achievement can recommend to Heer if the application should be accepted or denied. Heer then makes the final decision.
The Mastery Challenge program is open to anyone at Oregon State — students from other majors, faculty and staff can participate. Initially the program will include abilities in electrical engineering and computer science, but Heer’s vision is that the program will expand across the university, so students can earn achievements in a wide variety of disciplines.
Questions about the program can be directed to Don Heer.
Although Matthew Johnson knew he wanted to be an engineer eventually, he felt compelled to accomplish another goal first — become a Marine.
“I was 12 when 9/11 happened and that had a big impact on me. I felt like I wanted to serve and make a difference,” said Johnson, a computer science student at Oregon State University. He chose the infantry in U.S. Marine Corps because he felt they were the best of the best.
Johnson served as a Marine for four years, including a deployment to Afghanistan, and then started on his goal of becoming an industrial engineer. But after one term at Oregon State, a job opening for a police officer in Sweet Home caught his attention. “I felt like I wasn’t done serving yet,” he said.
It turned out to be a job he really enjoyed because he could see the positive impact the police force had on the community, such as reducing the methamphetamine problem in the area. He considered making the police force a career, but after his son was born he decided a high-stress job was not the right fit for his role as a new father. So Johnson returned to Oregon State to complete his degree in industrial engineering but as he progressed through the program, he realized his favorite classes were the ones related to computer science.
“I had no computer science experience before my industrial engineering coursework, so that was my introduction to it. And my favorite part was the algorithms — being able to think through a logical set of steps to solve a problem,” he said.
Johnson switched his major to computer science, and after just two terms, he took a job with the Open Source Lab (OSL) as a software engineer. The OSL is part of the Center for Applied Systems and Software (CASS) and provides industry, government, and university clients with software development, testing and hosting solutions.
A key benefit for working at the OSL was having the opportunity to work on industry projects to experience the workflow. He also honed his software development skills and was exposed to many computer languages. In addition, working at the OSL has given Johnson a chance to connect with other computer science majors which is sometimes difficult for a non-traditional student who goes home to family (he now has two children) after a full day of school and work.
This year Johnson was awarded a scholarship from CBT Nuggets, which has allowed him to buy things needed for school like a new laptop. “Making that transition from a full-time job was really hard especially with a family. So, having that extra income every term makes a humongous difference,” he said.
Johnson is so convinced that switching to computer science was a good decision that he is encouraging his younger brother to come to Oregon State and major in computer science once he is out of the Marines. It would continue the Beaver tradition in his family — both his parents graduated from Oregon State, his mother in marketing and his father in industrial engineering.
Although there were a few twist and turns on his way to computer science, Johnson is looking forward to the possibilities the career holds for him.
“I definitely want to develop software in the future — whether it be a place like Intel, or a software specific place like Puppet Labs or CoreOS, I’m not sure yet. And someday, after I get a lot of experience, I’d like to start my own company,” he said.
Liang Huang, assistant professor of computer science at Oregon State University, received the 2015 Yahoo Faculty Research and Engagement Program Award. Yahoo gave 24 faculty awards worldwide in 2015 to “produce the highest quality scientific collaborations and outcomes by engaging with faculty and students conducting research in areas of mutual interest.” It is the first time an Oregon State faculty member has received this award.
The award was granted for Huang’s proposal on “Fast Semantic Parsing with Applications in Question Answering,” based on preliminary work by his Ph.D. student Kai Zhao. Yahoo and many other internet companies are interested in furthering research in the field of semantic parsing to improve their search results.
Semantic parsing is the process of mapping a natural-language sentence into a formal representation of its meaning, and has applications in understanding natural questions, especially resolving ambiguity.
For example, the query, “How can I book Paris Hilton?” could be about either the hotel or the person, while “How to upgrade to El Capitan?” is definitely about OS X rather than Yosemite. A more complicated query such as “flights leaving after 5 from New York City to Tokyo with a layover of 1 to 3 hours” can be turned into an SQL-like query to be executed on a database or knowledge base.
Pranjal Mittal was initially thwarted from studying computer science in college, but never lost his excitement for it. Now a master’s student in computer science at Oregon State University, he was honored this year with an Intel fellowship.
Mittal wanted to pursue computer science as early as high school, but the determining factor for his major was an entrance examination for the Indian Institute of Technology. After studying for two years for the exam that one million people take, he was selected to be an electronics engineering major instead of his first choice.
But he did not give up his passion for computer science. He was able to take courses in computer science while in college and sought out other opportunities to learn on his own. He started by building websites for college events and then moved on to writing more complex web applications.
It was what he did next that changed the course of his career.
During his junior year, he was confident enough in his programming skills to apply for the Google Summer of Code, a global program that offers stipends to students to work remotely on open source projects with a mentoring organization. The project he applied for was with Oregon State’s Open Source Lab (OSL) to work on tool for the Ganeti Web Manager. He enjoyed it so much that he returned to the OSL through Google Summer of Code the following year. The experience of working with the people at OSL encouraged him to apply to graduate school at Oregon State.
“The Open Source Lab is very famous in the open source community and I thought if an Oregon State lab and its members were so amazing then the university should be amazing too,” Mittal said.
At the time of his decision to move to the U.S. for graduate school, Mittal had other opportunities. He already had a job with Citrix in India, and he and three other teammates were finalists in the Google Cloud Developer Challenge, which led to an opportunity to develop the application into a commercial product.
He decided to pursue a master’s because it was an opportunity to advance his knowledge in computer science and it also offered him a chance to be a teaching assistant. It was his first teaching experience and he has really enjoyed helping new students learn about web and cloud computing.
As part of his fellowship with Intel, Mittal will mentor three senior capstone project teams (nine students) who are working on a cloud computing project; an extension of the work he did as an Intel intern. “It feels great to be a link between Oregon State and Intel for further industrial collaboration on research and development,” he said.
Mittal is also conducting research work in cloud computing related to container-based clouds and plans to write his master’s thesis in this area.
“Most of the technology you see today is somehow connected to the cloud, it is the backbone of so many fields, making it an area in which even small research advances can have a huge impact,” he said.
Danny Dig, assistant professor of computer science at Oregon State, received two awards this year at the top software maintenance conference, the IEEE International Conference on Software Maintenance and Evolution (ICSME) hosted in Bremen, Germany.
Dig was also a keynote speaker at the conference, in recognition of the award for Most Influential Paper in the last ten years. The paper, co-authored with Ralph Johnson and entitled, “The Role of Refactorings in API Evolution,” opened a new area of research. It was the first quantitative and qualitative analysis on the evolution of Application Program Interfaces (API) which has inspired researchers all over the world to build on the seminal study.
The second award was for Best Paper which Dig shares with Oregon State graduate students, Mihai Codoban and Sruti Srinivasa Ragavan; and Brian Bailey, associate professor at University of Illinois at Urbana-Champaign. The paper, entitled “Software History Under the Lens: A Study on Why and How Developers Examine It,” received perfect marks from the judges.
Most Influential Paper:
The Role of Refactorings in API Evolution
Danny Dig (Oregon State University) and Ralph Johnson (University of Illinois at Urbana-Champaign)
Abstract—Frameworks and libraries change their APIs. Migrating an application to the new API is tedious and disrupts the development process. Although some tools and ideas have been proposed to solve the evolution of APIs, most updates are done manually. To better understand the requirements for migration tools we studied the API changes of three frameworks and one library. We discovered that the changes that break existing applications are not random, but they tend to fall into particular categories. Over 80% of these changes are refactorings. This suggests that refactoring-based migration tools should be used to update applications.
Best Paper Award:
Software History Under the Lens: A Study on Why and How Developers Examine It
Mihai Codoban, Sruti Srinivasa Ragavan, Danny Dig (Oregon State University) and Brian Bailey (University of Illinois at Urbana-Champaign)
Abstract—Despite software history being indispensable for developers, there is little empirical knowledge about how they examine software history. Without such knowledge, researchers and tool builders are in danger of making wrong assumptions and building inadequate tools. In this paper we present an in-depth empirical study about the motivations developers have for examining software history, the strategies they use, and the challenges they encounter. To learn these, we interviewed 14 experienced developers from industry, and then extended our findings by surveying 217 developers. We found that history does not begin with the latest commit but with uncommitted changes. Moreover, we found that developers had different motivations for examining recent and old history. Based on these findings we propose 3-LENS HISTORY, a novel unified model for reasoning about software history.
This summer I had the awesome opportunity to intern in Spain. Working with IE3 Global (OSU’s partner organization for international internships) and another organization in Spain, I was accepted to an internship at the brand new Global Sports Innovation Center (GSIC) in Madrid! The GSIC is a new Microsoft Innovation Center that aims to bring more technology into the sports industry. It operates as a business accelerator and as it continues to grow, it has been constantly adding new startups, associates and strategic partners.
When I arrived in the middle of June, the center had only been open for a month, and it still seemed rather unsure of what it might turn into. I showed up at the center the Monday after finals week ready to get to work but without any clear idea of what the GSIC did. Admittedly, showing up at an unfamiliar company in an unfamiliar country is a bit uncomfortable, but it’s also thrilling. I’ve studied Spanish for many years and I was excited to apply it to my new position.
Being such a new project, the center only has a few employees. It’s situated in the same block as the Palacio de Deportes (Barclaycard Center) and it consists of three floors, with a technology showcase at street level and business operations on the floors above. The showroom presents technology from Microsoft and other partners, which includes several Xbox Ones, multiple Windows Phones and Surface Pro tablets, and large flat screen TVs displaying promotional videos. However, the biggest crowd draw is without question the massive Formula One car located in the front window. I spent most of my time on the upper floors, where white architecture with modern design make them appealing spaces for the center’s partners to hold meetings and large events.
As a GSIC intern, I was allowed to join meetings in which new startups became partners, communicate with current partners to organize events, and I even sat alongside members of the media when Microsoft held their press conference to present Windows 10. While any new job comes with some grunt work, and I had my fill of translating documents to English and data entry assignments, I eventually got the opportunity to work on web tasks for the center. I started a new website to promote communication between the center’s many partners and I also met with the company that developed the center’s website so that I could contribute several necessary improvements.
Living and working in a foreign country is an incredible experience and I recommend that anyone who has such a privilege should take full advantage of the opportunity. I was able to expand my understanding of the work culture, not only in Spain, but in other parts of the world as well. With the vast number of international partners that came through the GSIC, I learned how global businesses can collaborate to realize mutual benefits and got to see technology prototypes before release. I improved my language abilities, explored the country in my free time, and met people that will remain friends and business contacts for the rest of my life.
——————
Kyler Stole grew up in Beaverton, OR, where he attended the International School of Beaverton and graduated with an IB Diploma. As the son of a mechanical and a chemical engineer, Kyler is proud to be part of EECS at Oregon State. He is also a member of the International Degree (ID) program and the University Honors College. He is now in his junior year at OSU and preparing to embark on his first MECOP internship while also working on his undergraduate thesis.
He has worked with both software and web development and helps to maintain the EECS portion of the OSU website in his role as an EECS Peer Mentor. He especially enjoys projects where he can mix programming logic with graphic design, and hopes to become a full-time iOS application developer.
Outside of academia, he’s very passionate about soccer and spends a lot of his time playing pick-up games on the intramural fields. He also enjoys other sports and outdoor activities including basketball, hiking, running, and riding his bike. To fulfill ID requirements and improve his Spanish, he has lived in Costa Rica and Spain during the past summers, and hopes to continue travelling after he graduates.
As a freshman, or maybe even a sophomore, college can seem a bit daunting. Classes are harder and larger, there are three-hour labs, recitations, financial aid, football games, pressure to start research, Greek life, midterms, new friends and 10 weeks later there’s finals week. All of these events and aspects can pile up and before you realize it, you’re drowning in a first-year mid-term crisis.
As an entering sophomore in electrical and computer engineering here at OSU, I can recommend some resources and tips to help you through the hard times.
Check out the student groups and clubs on campus
Even in college, sometimes it can be hard to make friends, or find people you have a connection with. Joining a student group or club can be a great way of connecting with other people and having some great experiences! I joined the marching band last year, and was given the opportunity to perform in front of the entire football stadium each game, as well as travel to several away games. It was a great experience meeting all the other 200+ members and seeing us all come together for one common purpose.
There are dozens of student groups and clubs on campus, many of which might fit your interests in and out of the classroom. Whether its building rockets, cars, robots, or mobile apps; working on open source software; or even bass fishing, check out the engineering-specific clubs or the many other inclusive student groups at Oregon State.
Students with no previous robotic/electrical experience, HAVE NO FEAR
For those of you who may have no previous robotics or electrical experience, do not be worried. I personally was not a part of the robotics team in high school, nor had I ever had any real electrical experience, and I have managed to survive with very little wear and tear. However, if you are worried, there EECS peer mentors who are more than willing to help you out. Peer mentors are EECS students who can help you navigate the ins and outs of being an EECS student. They can assist with academic questions and are available for advice about classes, internships, clubs, and other opportunities.
Research and internship opportunities
It’s never too early to start thinking about internships and work experience. Having work experience in your field before you graduate will greatly enhance your employability when it comes time to look for a job, but it can take bit of hard work and perseverance. Simply sending an email, or talking to a professor after class, or attending office hours are all great first steps to making your name known. The School of EECS provides students with many opportunities to connect and gain experience. Also, making a connection with your academic advisor is a great way to find out about other opportunities.
Be aware of your physical and mental health
The transition to college may be a hard one, or may be an easy one. It all depends on each individual person. While this is true, it very important to keep tabs on your mental and physical wellbeing. The “freshman 15” is indeed a very real thing, as well as the possibility of declination of your mental well-being. The most important thing to combat both of these two happenings is to be cognitively aware of your decisions, and realize that your brain makes those decisions, and your body carries out those decisions. If either one is not working at its prime, things start to slip. You don’t need to be in crisis to take care of your mental health; make sure you know about Counseling & Psychological Services (CAPS). The Dixon rec center and OSU’s Recreational Sports have many programs and opportunities for exercise, and relieving stress. Lastly, University Housing & Dining has many healthy eating options to keep your brain and body well nourished.
Get to know your professors
Yes, it may be intimidating to meet with your professors, however they are a great first resource when in need of help. Getting to know a professor may even help you down the road when you are in need of letters of recommendation, and some may even hire you as an undergraduate researcher. Attending office hours is the best way to communicate with professors individually. If their office hours don’t work with your schedule, feel free to send them an email to schedule an appointment.
Seek academic support
Oregon State and the College of Engineering have many resources for students to receive academic support with their class. The HUB in the College of Engineering has study tables and tutors for subjects such as physics, chemistry, math and electrical fundamentals. There are also engineering specific academic coaches who can help with skills such as organization, study skills, concentration, memory, note-taking, test-taking, and time management. Another resource are the academic tutors in the residence halls. Each residence hall will have a math and English tutor each week, as well as an Academic Learning Assistant who holds office hours every week.
Attend class
Yes, it may be a struggle to get up for class in the morning… However, the knowledge that is shared and the connections that are made while attending class can never be recreated, and whether or not you attend class, you will still be held responsible for understanding the material. Some classes even have attendance as part of a requirement for passing. So just to be safe, go to class.
Get to know your advisor
Your advisor will help you make a plan, get involved in extracurricular activities, and advise you about what to do when you are struggling with a class. As a first year engineering student, you will meet with your advisor at least once a term to receive your registration PIN. If you make a good connection with your advisor, they can even help you find scholarships, research positions, and internship opportunities!
Check your ONID/OSU Google e-mail
Or make sure you have them forwarded to other e-mail accounts that you check regularly. This is the only way you’ll receive information from your professors and TAs about your classes and other important information that you need.
Represent your school
Go Beavs!
—
Hanna Anderson is from Bonney Lake, WA, and attended Bonney Lake High School, class of ’14. As a freshman, she was a member of the Oregon State marching band and joined the CreateIT Collaboratory, a program in the School of Electrical Engineering and Computer Science to employ students on projects to develop new prototypes for industry clients.
She is now a sophomore in electrical and computer engineering. She decided to pursue an ECE degree because she really enjoys being able to understand how a piece of technology works, and thinking about how she could modify it to make it better. “ECE is a one big puzzle that I am continually being challenged to solve,” she said.
In her spare time, she enjoys playing the pianos around campus, as well as going into the Collaboratory and engulfing herself in new fun, interesting projects.