Chủ Nhật, 10 tháng 7, 2016

IEEE Software July/August 2016 Issue

Associate Editor: Brittany Johnson (@brittjaydlf)

The July/August 2016 issue of IEEE Software is packed with interesting papers, with a focus on software quality and the human elements' role in improving software quality. Despite so many great papers and interesting topics, I wound up reading two papers from top to bottom:

  • "The Weakest Link" by Gerard J. Holzmann, and
  • "Test Better by Exploring. Harnessing Human Skills and Knowledge" by Itkonen and colleagues

Numerous papers caught my attention just from the title... "Obstanovka: Exploring Nearby Space,"  "Exploiting Big Data's Benefits," and "Examining the Relationship between FindBugs Warnings and App Ratings" to name a few. However, it wasn't until I spoke with a colleague of mine that I was able to decide on a couple of papers to focus in on. After narrowing my selections down to a handful, I asked her, as someone with an academic and research background, which two she would be more interested in reading or hearing about. 

These two papers make similar yet contradictory points regarding how we can improve software development and quality. While Test Better By Exploring proposes introducing more (specialized) humans into the software development and quality assessment mix, The Weakest Link poses that humans may be introducing more problems than we can solve (in the context of trusting a computer with decision making rather than a human). 

The former reminds me of a study my advisor conducted that compared software and game development called "Cowboys, ankle sprains, and keepers of quality: how is video game development different from software development?" 1. Though it is not explicitly stated in this article, I think, as with Cowboy and Ankle Sprains, there is an implicit argument that we as software developers can learn and improve from other groups or types of development. Especially since an important part of game development is alpha and beta testing, which sound quite similar to the arguments being made in Test Better By Exploring. Being a human factors researcher, I recognize the benefits of incorporating this type of evaluation into all software development. The lab I work in does software tools research and we have found that one reason users may have so many problems with their software is because the software doesn't do what they expect. To know what users expect, or to deal with what they wouldn't expect more importantly, it seems necessary to include them in the process of creating and evaluating the software. Similar to heuristic evaluations, it seems like you can get the most out of this practice if you have a mix of different types of users, including non-user experts, to help shine a light on issues developers themselves may not encounter.

The topic of the latter has been a topic of discussion for a long time, as was mentioned in the article, and pervasive in pop culture (Will Smith's character's unwillingness to trust robots in I, Robot, the first artificially intelligent child being trusted by humans and robots in Artificial Intelligence A.I.). Most often the takeaway is, trust computers when human insights can be added or provided. The Weakest Link challenges this notion, suggesting that in some situations, computers could be effective at solving problems and making decisions without human interference. This topic becomes an even bigger debate when we think about how much of what we do on a day to day basis is being automated; self driving cars, robot vacuum cleaners, airplane autopilot, etc. Should we be putting more trust in our computers, slowly eliminating the human factor? Or is it possible that there is a plateau for the growth and dissemination of artificial intelligence as an every day part of our lives?

Overall, whether I agreed with all the points made or not, I thought both papers were a good read. Check out the July/August 2016 issue to see for yourself! 

1 Murphy-Hill, Emerson, Thomas Zimmermann, and Nachiappan Nagappan. "Cowboys, ankle sprains, and keepers of quality: how is video game development different from software development?." Proceedings of the 36th International Conference on Software Engineering. ACM, 2014.
Read More

Chủ Nhật, 3 tháng 7, 2016

Diversity in CS shines at NSBC 2016

Associate Editor: Brittany Johnson (@brittjaydlf)

Earlier last month, I spent my weekend in the beautiful A-T-L, Georgia where I had the pleasure of attending the first annual National Society of Blacks in Computing (NSBC) Conference. This is separate from NSBE or Richard Tapia, though related (and almost just as new to me as NSBC). When I started studying CS, though I was aware that there were few females, and even fewer females that look like me, I was fortunate enough to have a solid support system from my mentor (Dr. Jim Bowring) and participation in SC LS-AMP under the direction of Christine Moore. However, the community that I found at NSBC goes above and beyond any of my prior experiences for various reasons, which I will attempt to summarize below.

NSBC was started with the hopes of building a community and awareness of  the accomplishments of blacks in computing; though if you attend NSBE, for example, you'll see hundreds if not thousands of us, that's is not the case in CS. We have much fewer African Americans in CS than any other engineering discipline which, I don't find surprising as I am typically one of few African Americans at the conferences I regularly attend. It was also apparent in the significantly smaller number of attendees at NSBC in comparison to engineering targeted groups like NSBE. But when I say it was refreshing to be around others like me on a personal AND professional level; people with similar research interests and areas that I would have NEVER met had it not been for NSBC.

However, when I say we are here...we are here. The conference had an attendance of 90, higher than they (and I) expected. Especially being the first year of the convention; nevertheless, NSBC was truly an informational and inspirational experience that I recommend to any African American studying or with a career in computing.

Now I would like to note that it seems a large part of the goal of this convention is to recruit more African Americans studying CS into PhD studies and then academia. So the target audience is undergrads and grad students (both early and late in their studies) that haven't made a decision regarding what they are going to do or need some inspiration and information to make a decision. Though there were some industry folk, both there as mentors and to learn more about potentially transitioning from industry into an academic career.

I would also like to note this was not a blacks rule, everyone else drools kind of conference. It was empowering, but there was lots of advice and anecdotes that attempt to put us in our places as well regarding how we perceive our place in the community, the non-uniqueness of our struggle to our race, and how we can use our resilience to build relationships and be successful through adversity. The example that stood out to me was Ben Shneiderman, who is basically the father of the field of Human Computer Interaction. Before he was renowned and successful, however, he was a leper in the CS community, constantly ridiculed, belittled, and disrespected. He even had trouble getting tenure promotions, something we wouldn't expect a white male to have any issues with. However, ignorance is real and transcends race, ethnicity, and culture. Sometimes we're just scared of what we don't  know or understand...so just like Ben, help them understand. Be a part of your community, despite the adversity, and continue to stay true to who you are and what you believe. Once they understand, they'll come around. And if they don't, you didn't need them to begin with.

Though some sessions were for all, most sessions were divided into three tracks: undergraduate, graduate, and future faculty. Being I'll be on the market in the Fall, I attended the future faculty track where I was able to gather extremely useful information, mostly in the form of anecdotes delivered by computer scientists with various education backgrounds and career paths. However, I was told all tracks were valuable and provided both opportunities for learning, networking, and personal growth. For more information on the program from this year's conference, look here: https://goo.gl/oZA6ez

I want to narrow in on the networking point...we really don't hear enough about all the GREAT things we are doing in computing and computing education. One thing in particular that stood out to me at this conference was the incredible intelligence, resilience, and success our people have come to achieve and utilize. For example, I had the absolute pleasure of meeting Dr. Elva Jones. Dr. Jones got her PhD from NC State (something I was almost embarrassed that I didn't know); afterwards, she got an offer to come back and teach at NCSU and turned it down to go back to her HBCU alma mater to give back (Winston-Salem State). And give back she did...Dr. Jones is the founder (and legacy behind) the CS department at Winston-Salem State! Probably the coolest thing I've ever heard...and it hits so close to home. Now I was really embarrassed that I didn't know who she was...though super glad I got to meet her. Not to go on too much of a tangent, but this is why we need more specialized efforts in recognizing and archiving the achievements of African Americans in CS...unfortunately they tend to fall by the waist side, leaving people like myself to find inspiration on their own. One initiative I've been involved with plans to change that - maybe I can give more details on that later when it's come closer to finalizing ;).

To better assist with networking and the forming of relationships (i.e. professional, mentoring), the organizers used personality assessments to provide personality profiles to each attendee. They used stickers on our badges to show what personality profile we are, and for many this was a great way of meeting like minded people that could potentially contribute to each other's career. I will say I didn't use the stars to decide who to meet, but for those who know me I just love meeting new people...like these wonderful women pictured below. I already knew one of them, but the rest I met at the conference. I can honestly say about each and every one of them that we have formed some sort of foundation to a future relationship in our careers, both mentoring and professional.

At the end of it all, there was a dinner with a keynote and surprise guests. The keynote was GREAT (I'll talk about in follow-up day by day details), but the surprise guests were the founders of the aaphdcs listserv! It was such a humbling (and tear jerking) experience seeing them take in all the beautiful, intelligent African American Computer Scientists around them. I had a similar moment with one of the other faculty attendees that where we both took a step back to take in the idea that we are building relationships that will help bring in a new generation of diversity in tech.

I would also like to mention that aside from the fact that they had us in the NICEST hotel I've ever stayed in for a conference, the food was PHENOMENAL! There were options for everyone, and plenty to go around. The only downside, cash bar :(. But, due to the hospitality of the organizers, we were able to have some fun after hours watching the NBA Finals and enjoying each other's company (with free alcohol, which never hurts XD).

Now that I've given you an overview of my experience and what I thought was great about NSBC, I hope it'll inspire you to join the community or spread the word so others know they're not alone! We're here baby!


Editor's Note: As Editor-in-Chief of the IEEE Software Blog, it gives me great pleasure to welcome Brittany Johnson as a new associate editor for the blog. She will blog about diversity in computing as well as about the content in the new issues of IEEE Software Magazine. - Mei Nagappan










Read More

Chủ Nhật, 26 tháng 6, 2016

CodeTube: Making the Best of Software Development Video Tutorials

 Associate Editor: Sonia Haiduc, Florida State University, USA (@soniahaiduc)

Software developers need to continuously learn new skills to keep up with their tasks, such as using a new library, learning a new programming language, or in general adopting a new technology never used before. In such a learning process, along with more formal documentation, online (and informal) resources can be very useful. Video tutorials are one of the emerging ways in which this kind of knowledge is available to developers. Videos are, however, a noisy data source, and finding the right piece of information within a long video tutorial can be frustrating and inefficient.

Meet CodeTube, a novel search engine that analyzes and fragments the contents of videos, offering developers the ability to find only the information they need within otherwise long tutorials. CodeTube extracts and indexes the audio transcript, as well as the text appearing on screen in the video tutorials, including source code, something no other video search engine currently offers to developers. Furthermore, the indexed text is used to retrieve related posts from Stack Overflow, displaying them below the video fragment and thus integrating in one place different sources of information.

Actually, CodeTube does much more than that. Here are some of its main features:
  • It mines video tutorials found on the web, enabling developers to query their contents;
  • It splits video tutorials into cohesive and self-contained video fragments;
  • It returns only relevant video fragments in response to a developer’s query, ignoring the irrelevant parts that may occur in lengthy videos;
  • It extracts and indexes the source code and English text which appear on the screen, as well as the audio transcripts, using a combination of text analysis and image processing;
  • It recommends relevant Stack Overflow discussions to the video fragments selected by developers; and
  • It recommends related video fragments to the one selected.





CodeTube has been evaluated in two studies involving developers. In the first study, 34 developers evaluated (i) the coherence and conciseness of the video fragments produced by CodeTube, as well as their relevance to a query, as compared to the results returned by YouTube, and (ii) the relevance and complementarity of Stack Overflow discussions returned by CodeTube for specific video fragments. In the second study, CodeTube was introduced to leading developers involved in the development of Android apps. They were asked questions about the usefulness of CodeTube, focusing on the value of extracting fragments from video tutorials, and of providing recommendations by combining different sources of information.  The results of both studies indicate that developers consider CodeTube a useful tool with a great potential to help them during their daily tasks.

CodeTube is available online, and you can try it for yourself at: http://codetube.inf.usi.ch/.

The current dataset focuses on Android tutorials, but the researchers aim to include other topics in future work, so stay tuned!


References:

[1] L. Ponzanelli, G. Bavota, A. Mocci, M. Di Penta, R. Oliveto, M. Hasan, B. Russo, S. Haiduc, and M. Lanza, “Too Long; Didn’t Watch! Extracting Relevant Fragments from Software Development Video Tutorials,” in International Conference on Software Engineering, Austin, Texas, USA, 2016. Preprint available at:
http://www.inf.usi.ch/phd/ponzanelli/profile/publications/2016a/Ponz2016a.pdf

[2] L. Ponzanelli, G. Bavota, A. Mocci, M. D. Penta, R. Oliveto, B. Russo, S. Haiduc, and M. Lanza, “CodeTube: Extracting Relevant Fragments from Software Development Video Tutorials,” in Proceedings of ICSE 2016 (38th ACM/IEEE International Conference on Software Engineering), 2016. Preprint available at:
http://www.inf.usi.ch/phd/ponzanelli/profile/publications/2016b/Ponz2016b.pdf
Read More

Post Ads