Gursimran Walia

Gursimran Walia
North Dakota State University | NDSU · Department of Computer Science

Doctor of Philosophy

About

81
Publications
52,048
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
1,276
Citations
Introduction
Skills and Expertise
Additional affiliations
August 2015 - November 2016
North Dakota State University
Position
  • Professor (Associate)
January 2006 - April 2009
Mississippi State University
Position
  • Research Assistant
August 2009 - present
North Dakota State University
Position
  • Professor (Assistant)

Publications

Publications (81)
Article
Full-text available
Due to the increase in data and software tools, the need for programmers and data analysts has risen in the United States during the 21st century. As a result, more students are enrolling in Computer Science, Information Technology, and Data Science programs nationwide. However, switching to online and blended learning and using cyberlearning tools...
Conference Paper
Full-text available
Programming is a skill, often acquired through repeated practice and feedback. During traditional lectures, students not actively engaged in their own learning. It is imperative to pique students motivation and direct their focus on gaining the requisite knowledge. As the class size grows, instructors feedback is delayed that impacts student engage...
Article
Full-text available
Developing error-free software requirements is of critical importance to the success of a software project. Problems that occur during requirements collection and specification, if not fixed early, are costly to fix later. Therefore, it is important to develop techniques that help requirements engineers detect and prevent requirements problems. As...
Chapter
This paper presents a novel approach called vertical breadth-first tree that utilizes vertical data structures to find all-length paths (including shortest paths) for all pairs of vertices in a graph. Identifying all available paths, including shortest paths is a relevant research problem as this concept can help solve a range of complex problems (...
Article
Full-text available
Background: Human-centric software engineering activities, such as requirements engineering, are prone to error. These human errors manifest as faults. To improve software quality, developers need methods to prevent and detect faults and their sources. Aims: Human error research from the field of cognitive psychology focuses on understanding and ca...
Conference Paper
Full-text available
Inspections are a proven approach for improving software requirements quality. Owing to the fact that inspectors report both faults and non-faults (i.e., false-positives) in their inspection reports, a major chunk of work falls on the person who is responsible for consolidating the reports received from multiple inspectors. We aim at automation of...
Conference Paper
Full-text available
In spite of the human-centric aspect of software engineering (SE) discipline, human error knowledge has been ignored by SE educators as it is often thought of as something that belongs in the realm of Psychology. SE curriculum is also severely devoid of educational content on human errors, while other human-centric disciplines (aviation, medicine,...
Conference Paper
Context and Motivation: The correctness of software requirements is of critical importance to the success of a software project. Problems that occur during requirements collection and specification, if not fixed early, are costly to fix later. Therefore, it is important to develop approaches that help requirement engineers not only detect, but also...
Conference Paper
Full-text available
Context and Motivation: Our recent work leverages Cognitive Psychology research on human errors to improve the standard fault-based requirements inspections. Question: The empirical study presented in this paper investigates the effectiveness of a newly developed Human Error Abstraction Assist (HEAA) tool in helping inspectors identify human errors...
Conference Paper
Software companies strive to improve the quality by employing inspections of early software artifacts to detect and eliminate early faults. However, evidence suggests that overall performance of an inspection team is highly dependent on an individual inspectors’ ability to detect faults. This paper leverages research on cognitive Learning Styles (L...
Conference Paper
Software inspections are an effective method for early detection of faults present in software development artifacts (e.g., requirements and design documents). However, many faults are left undetected due to the lack of focus on the underlying sources of faults (i.e., what caused the injection of the fault?). To address this problem, research work...
Conference Paper
Background -- Inspecting requirements and design artifacts to find faults saves rework effort significantly. While inspections are effective, their overall team performance rely on inspectors' ability to detect and report faults. Our previous research showed that individual inspectors have varying LSs (i.e., they vary in their ability to process in...
Conference Paper
Full-text available
Background: Developing correct software requirements is important for overall software quality. Most existing quality improvement approaches focus on detection and removal of faults (i.e. problems recorded in a document) as opposed identifying the underlying errors that produced those faults. Accordingly, developers are likely to make the same erro...
Conference Paper
Full-text available
Software inspections are an effective method for achieving high quality software. We hypothesize that inspections focused on identifying errors (i.e., root cause of faults) are better at finding requirements faults when compared to inspection methods that rely on checklists created using lessons-learned from historical fault-data. Our previous work...
Conference Paper
Computer Science (CS) and Software Engineering (SE) students learn various concepts and practical skills in academia that prepares them for challenges in software industry. Academic institutions are thriving to reduce the gap between industry and academia by employing various practical training approaches (e.g., capstone experience). On that end, i...
Article
Full-text available
Managers recognize that software development teams need to be developed. Although technical skills are necessary, non-technical (NT) skills are equally, if not more, necessary for project success. Currently, there are no proven tools to measure the NT skills of software developers or software development teams. Behavioral markers (observable behavi...
Article
Inspections of software artifacts during early software development aids managers to detect early faults that may be hard to find and fix later. Results showed inspection ability does not depend on educational background and technical knowledge. This paper presents the results from an industrial empirical study, wherein the Learning Styles (i.e. ab...
Conference Paper
Full-text available
Managers recognize that software development project teams need to be developed and guided. Although technical skills are necessary, non-technical (NT) skills are equally, if not more, necessary for project success. Currently, there are no proven tools to measure the NT skills of software developers or software development teams. Behavioral markers...
Article
Full-text available
Graduating computer science students do not always possess the necessary knowledge to succeed in their careers after graduation. Interviews with twenty-three managers and hiring personnel at different companies in the software development industry highlight the struggles that recent graduates face when first starting at those companies. Recent grad...
Article
A shared interactive display (e.g., a tabletop) provides a large space for collaborative interactions. However, a public display lacks a private space for accessing sensitive information. On the other hand, a mobile device offers a private display and a variety of modalities for personal applications, but it is limited by a small screen. We have de...
Conference Paper
This paper highlights an important issue of the knowledge and skill deficiency of software testing among undergraduate students in software engineering discipline. The paper provides an approach for integrating software testing into computer programming course in a non-obtrusive manner. The paper describes the use of the Web Based Repository of Sof...
Conference Paper
Pair programming has been shown to be an effective method of improving the learning outcomes of students in introductory computer science courses. However, much of the existing literature related to pair programming does not focus how to effectively implement pair programming. Researchers studying multiple aspects of pair programming have conducted...
Conference Paper
Inspection is a widely known technique to detect faults in requirements document. It helps manager by early detection and removal of faults. Much of the cost can be saved by detecting faults during the inspections of early software artifacts as compared to testing in later stages of development. Our research utilizes a Learning Style – LS concept (...
Article
Large paper sheets are still the most preferred medium used by engineers to inspect remote sites. However, these paper documents are hard to modify and retrieve. This paper presents a novel, spatially aware, mobile system (called PhoneLens) which combines the merits of paper documents and mobile devices. It augments paper documents with digital inf...
Article
Full-text available
Graduating computer science and software engineering students do not always possess the necessary skills, abilities, or knowledge when beginning their careers in the software industry. The lack of these skills and abilities can limit the productivity of newly hired, recent graduates, or even prevent them from gaining employment. This paper presents...
Conference Paper
Students and faculty alike at all education levels are clearly spending much more of their time interacting with computing and communication tools than with each other. Is this good? Are all uses of computational technology in education helpful, and ...
Conference Paper
Requirements engineering is a critical phase in software development that describes the customer needs and the specifications for the software solution. Requirements are gathered through various sources and the output is a list of requirements for a software product to be developed, written in Natural Language (NL). NL requirements are fault prone...
Article
Success during software development depends on the creativity of software engineers. Knowledge plays a very important role in enhancing the creativity of software developers. Knowledge is available in different forms like repository knowledge (experiences of past projects) and community knowledge (gained through communication among software enginee...
Conference Paper
Inspections aid software managers by early detection and removal of faults committed during the creation of requirements and design documents. This helps reduce the rework during the later stages of software development. While inspections are effective in practice, the evidence suggests that the effectiveness of inspectors varies widely. Cognitive...
Conference Paper
Problem Definition: Project managers manage the development process by enabling software developers to perform inspection of early software artifacts. However, an inspection can only detect the presence of defects; it cannot certify the absence of defects or indicate how many defects remain post inspection. Managers need objective information to he...
Conference Paper
Problem Definition: To help ensure high-quality software artifacts, researchers and practitioners have developed various techniques for identifying and repairing problems early in the software lifecycle (e.g., requirements and design documents). Most of these techniques are fault-based, and have been empirically validated. However, results show tha...
Article
Achieving high software quality is a primary concern for software development organizations. Researchers have developed many quality improvement methods that help developers detect faults early in the lifecycle. To address some of the limitations of fault-based quality improvement approaches, this paper describes an approach based on errors (i.e. t...
Article
Although computer science, information systems, and information technology educators often do an exemplary job of preparing their students for jobs in industry or for further education, there are still many areas where these students do not possess the necessary skills or knowledge based on the expectations of employers or academia. These gaps betw...
Conference Paper
Inspections and testing are two widely recommended techniques for improving software quality. While testing cannot be conducted until software is implemented, inspections can help find and fix the faults right after their injection in the requirements and design documents. It is estimated that majority of testing cost is spent on fault rework and c...
Article
Full-text available
Teamwork is essential in industry and a university is an excellent place to assess which skills are important and for students to practice those skills. A positive teamwork experience can also improve student learning outcomes. Prior research has established that teams with high levels of social sensitivity tend to perform well when completing a va...
Article
Full-text available
This paper presents ongoing research into the use of mental model consistency (MMC) to produce more effective student programming pairs. Previous studies have found that pair programming is highly useful in improving students' enjoyment of programming as well as improving the retention rates of students enrolled in computer science programs. Howeve...
Conference Paper
Full-text available
Although social, ethical, and professional standards have been included in some undergraduate computer science departments' curricula for over twenty years, many faculty members who teach computer science ethics classes continue to look for fresh approaches to teaching ethics and social implications courses. Traditionally, this type of course has f...
Article
Full-text available
Team work is the norm in major development projects and industry is continually striving to improve team effectiveness. Researchers have established that teams with high levels of social sensitivity tend to perform well when completing a variety of specific collaborative tasks. Social sensitivity is the personal ability to perceive, understand, and...
Article
Pair Programming has been shown to be beneficial to student learning. Much research has been conducted to effectively create student pairs when using pair programming in introductory computer science courses. This paper reports results of research investigating the effectiveness of pairing students based on their mental model consistency. Prior res...
Article
The usage of PDA and mobile devices has dramatically increased recently. However, mobile devices and PDA devices have a limited screen size, which makes it frustrating to browse tabular data on mobile devices since users have to frequently scroll up and down to find the information of interest. This paper presents an efficient means to present HTML...
Conference Paper
Full-text available
Requirements engineering is one of the most important and critical phases in the software development life cycle, and should be carefully performed to build high quality and reliable software. However, requirements are typically gathered through various sources and represented in natural language (NL), making requirements engineering a difficult, f...
Conference Paper
At North Dakota State University, there are multiple sections of the CS1 and CS2 introductory computer science courses. A large number of students are enrolled in each section, making it difficult to hold laboratory sessions as there is not enough space for all of the students in one room. This results in diminished student attendance and a decreas...
Article
Full-text available
Pair programming is a programming technique where two programmers work together on the same programming task. Previous research has shown that it is effective for improving the learning effectiveness, efficiency, and enjoyment of students in introductory programming courses. Much research has also been dedicated to determining effective strategies...
Conference Paper
Full-text available
Defect prevention techniques can be used during the creation of software artifacts to help developers create high-quality artifacts. These artifacts should have fewer faults that must be removed during inspection and testing. The Requirement Error Taxonomy that we have developed helps focus developers' attention on common errors that can occur duri...
Article
Most software quality research has focused on identifying faults (i.e., information is incorrectly recorded in an artifact). Because software still exhibits incorrect behavior, a different approach is needed. This paper presents a systematic literature review to develop taxonomy of errors (i.e., the sources of faults) that may occur during the requ...
Conference Paper
Full-text available
Project managers can use the capture-recapture models to estimate the number of faults in a software artifact. The capture-recapture estimates are calculated using the number of unique faults and the number of times each fault is found. The accuracy of the estimates is affected by the number of inspectors and the number of faults. Our earlier resea...
Conference Paper
Full-text available
Project managers use inspection data as input to capture-recapture (CR) models to estimate the total number of faults present in a software artifact. The CR models use the number of faults found during an inspection and the overlap of faults among inspectors to calculate the estimate. A common belief is that CR models underestimate the number of fa...
Conference Paper
Full-text available
Project managers can use capture-recapture models to manage the inspection process by estimating the number of defects present in an artifact and determining whether a reinspection is necessary. Researchers have previously evaluated capture-recapture models on artifacts with a known number of defects. Before applying capture-recapture models in rea...
Conference Paper
Full-text available
Inspections can be made more cost-effective by using capture- recapture methods to estimate post-inspection defects. Previous capture-recapture studies of inspections used relatively small data sets compared with those used in biology and wildlife research (the origin of the models). A common belief is that capture- recapture models underestimate t...
Conference Paper
Full-text available
This paper is the second in a series of empirical studies about requirement error abstraction and classification as a quality improvement approach. The Requirement error abstraction and classification method supports the developers' effort in efficiently identifying the root cause of requirements faults. By uncovering the source of faults, the deve...
Conference Paper
Full-text available
Software quality and reliability is a primary concern for successful development organizations. Monitoring and controlling quality by helping developers detect as many faults as possible is a subjective and intricate approach. Due to the inherent difficulties and limitations, additional methods are required to obtain a more complete solution to the...
Article
A controlled study was conducted to evaluate the potential benefits of a social networking tool for collaboration within teams while carrying out a major course project. The study involved thirty-one teams that carried out term projects in a Social Implications of Computers course. The work of each team required social and ethical analyses that per...

Network

Cited By