Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

A system and method to assess programming language proficiency

IP.com Disclosure Number: IPCOM000243771D
Publication Date: 2015-Oct-16
Document File: 6 page(s) / 200K

Publishing Venue

The IP.com Prior Art Database

Abstract

Enormous Number of young people are entering to the software field in daily basis. There is a requirement for software development companies to have objective measures to assess potential candidates programming language skills to choose best candidates. On the other hand programming languages are inundated with new features updated almost every week. There are so many major and minor releases annually for most of the programming languages. Software developers need to constantly upgrade themselves. Hence, need assessment on their language proficiency and how they should improve. We propose a system and method that given a developer’s software projects, assesses programming language proficiency in terms of: Language features used, Code quality, Language data-structures used, and Third party components used.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 48% of the total text.

Page 01 of 6

A system and method to assess programming language proficiency

Introduction:


All most all auto-mobiles and gadgets that we use in day to day basis which range for medical equipment's to the devices that we use for communicate to the vehicles that we use for commute use some kind of code written in some programming language. Software is also reducing the

production cost and is also fuelling automation of the rotten stuff that need to be done day by day. Pay that people used to get in software field is also pretty handsome. So there is a huge competition to enter the software field in present market. Figure -1 shows Professional software developers by region.

Figure - 1


But there is a problem. While there is high demand for software engineers and developers, an apparent lack of talent is impeding the success of most of the software.

In the past few years, an increased number of languages used for designing and creating software have been created. New languages are driven by greater efficiency, increased customization, and ease-of-use. Figure 2 shows some of the releases for JAVA programming language. What follows for the programmers is what are the cool things that they need to pick it up.

1


Page 02 of 6

Figre 3 gives us a brief analysis on projects of different languages in GitHub, a popular code sharing repository Source: http://githut.info/.

In this frequently changing environment there is a requirement for an automated way to assess software developers on their language proficiency so that they can identify the areas to focus. Providing objective measures to assess potential candidates programming language skills to choose best candidates.

2


Page 03 of 6

Proposed system:


Given a developer's software projects, assesses programming language proficiency in terms of Language features used, Code quality, Language data-structures used, Third party components used. Further, the system collects benchmark data from publicly available software projects (e.g. GitHub, JazzHub, GoogleCode etc). Based on benchmark data, provides relative ranking for a developer when compared to the community. And the system also provides recommendations on how to improve language proficiency.

Implementation Details:


Provided with the users code repository we do code analysis, and comparison to provide assessment results and further recommendations. Our method is depicted in Figure 4.

Figure 4.

Here we discuss a possible implementation of our system for java code analysis. Our system is consists of two parallel modules the first one programming language proficiency extractor, and the second one being benchmark data collector.

Module 1: Programming language proficiency extractor
In this thread we parse the code provided by the user and analyse language features used, Code quality, Data structures used, Third party libraries. We extract the language specific features such as generic classes, generic functions, try-catch statements that were used in the piece of...