Daniel E. Krutz

dblp:137/6127 · DBLP profile ↗
← Back
32ranked-venue papers
8as first author
14since 2021 · last 2026
0000-0002-0310-3086ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Human-computer interaction and ubiquitous computing · 19 · 6 first-author · 8 since 2021Software engineering, systems software and programming languages · 8 · 2 first-author · 3 since 2021Artificial intelligence and machine learning · 5 · 3 since 2021Databases, data management, data science and information retrieval · 4 · 2 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 1 since 2021
YearPublicationVenuePosition
2026 Teaching Responsible Computing Using the Accessible Learning Labs
abstract
Our goal is to educate individuals on how to create technology that is fair, responsible, and respectful of all people and communities. Too often, software is developed without considering important ethical dimensions such as bias, privacy, or transparency, which can result in harmful or exclusionary outcomes, particularly in fields like healthcare, education, and finance.
Ursula Parker, Samuel A. Malachowsky, Farzana Rahman, Daniel E. Krutz
SIGCSE (2)4
2026 Fostering Accessible Design Skills with AI-Agents and Experiential Learning in Software Engineering Education
abstract
Accessibility remains underrepresented in undergraduate computing curricula, despite its critical role in modern software development. This poster presents an upper-level elective in Accessible Software Engineering that addresses this gap by (1) integrating accessibility principles through web-based, experiential labs and (2)leveraging AI agents that simulate users with diverse disabilities to support empathetic, role-based learning. The hands-on labs provide practical experience recognizing accessibility barriers and applying inclusive design strategies, while the AI agent interactions enable students to gather requirements directly from the perspectives of users with visual, cognitive, learning, and motor impairments. This approach helps students transform abstract accessibility standards into meaningful, actionable design decisions. Student feedback and project outcomes demonstrated substantial gains in accessibility awareness, technical competence, and human-centered design skills. The course model offers a scalable pathway for strengthening accessibility education within the computing curriculum.
Farzana Rahman, Daniel E. Krutz
SIGCSE (2)2
2025 Presenting Computing Accessibility Education Using Experiential Labs
abstract
Ensuring accessibility is essential for developing software that is inclusive for all users. Unfortunately, research shows that a significant portion of modern software fails to meet accessibility standards. Many students not only lack the knowledge of how to create accessible software but also do not fully grasp why it matters. To bridge this educational gap, we created a series of labs called the Accessible Learning Labs (ALL). These labs are designed to teach the techniques for developing accessible software, while also emphasizing the importance of accessibility in software design. Through hands-on activities, students can experience the consequences of inaccessible software and learn to fix these issues to make the software more accessible. This collection of labs is beneficial to learners at various stages, from beginners to professionals looking to improve their skills in creating accessible software. All materials are available on the project website: https://all.rit.edu
Heather Moses, Elaina Trapatsos, Farzana Rahman, Samuel A. Malachowsky, Daniel E. Krutz
SIGCSE (2)5
2025 Enhancing Computing Accessibility Education Using Experiential Labs: A Focus on Color Blindness and Localization
abstract
Accessibility is a crucial component in developing inclusive software. However, studies reveal that much of today's software is not designed with accessibility in mind. This issue is compounded by the fact that students often lack an understanding of both how to create accessible software and why it is important. To address this educational gap, we developed a set of labs known as Accessible Learning Labs (ALL). These experiential labs aim to teach participants the proper methods for creating accessible software while highlighting the significance of inclusivity. Additionally, these labs allow students to experience the effects of inaccessible software firsthand and apply corrective measures to improve accessibility. All project materials are freely accessible on the project website: https://all.rit.edu.
Heather Moses, Elaina Trapatsos, Farzana Rahman, Samuel A. Malachowsky, Daniel E. Krutz
SIGCSE (2)5
2025 Learning using statistical invariants: when they work and when they don't
abstract
Abstract The Learning Using Statistical Invariants (LUSI) method is designed to integrate domain knowledge into machine learning models using structured elements referred to as “predicates.”This approach aims to improve model performance and reduce the amount of data required for training by leveraging the inherent properties of the domain. However, through a thorough theoretical analysis and numerical experiments, we demonstrate that LUSI often falls short of its intended goal. Our findings reveal significant flaws in the current formulation of LUSI; instead of effectively narrowing the set of admissible functions, the predicates act primarily as constraints on the output of the model, which can often lead to underwhelming performance and limited generalization. While LUSI may produce marginal improvements under specific conditions, its overall limitations and inability to consistently deliver intelligence-driven enhancements suggest a need for further refinement. Despite the identified limitations, the introduction of LUSI represents a timely and important step towards integrating domain-specific knowledge into machine learning, highlighting a promising direction for future research and development.
Ernest Fokoué, Daniel E. Krutz
Mach. Learn.3
2024 Presenting Experiential Educational Machine Learning Labs
abstract
Artificial intelligence (AI) is becoming increasingly prevalent in our society, leading to a growing demand for a skilled workforce in AI. Unfortunately, this demand remains unmet, particularly among smaller institutions and those serving underrepresented groups, due to resource limitations. This initiative offers two hands-on educational activities in Artificial Intelligence and Machine Learning to facilitate the integration of AI/ML concepts into foundational computing and non-computing courses. While primarily aimed at undergraduate students, the materials created can also benefit high school (grades 9–12) and graduate students in various educational settings, including traditional classrooms and outreach or after-school programs. Labs are accessible through a web browser, making them easy to adopt at all institutions, especially those with limited resources. The self-contained and hosted nature of the labs ensures that they can be adopted by institutions facing resource constraints. The complete project material is publicly available on the project website: https://all.rit.edu
Xiaofan Que, Dingrong Wang, Samuel A. Malachowsky, Daniel E. Krutz
CSEE&T5
2024 Accessible Learning Labs: Accessibility Education Through Experiential Learning
abstract
Accessibility is a key aspect in ensuring the development of inclusive software. Unfortunately, research demonstrates that a large portion of software today is not created in an accessible manner. Problematically, students may not understand how to create accessible software, additionally misunderstanding the importance of creating accessible software. To fill the gap in accessibility education, we have created a comprehensive collection of labs, collectively referred to as Accessible Learning Labs (ALL). They have the primary objectives of educating participants on how to properly create accessible software, simultaneously illustrating the need to create inclusive and accessible software. In addition, the lab activities enable students to experience the implications of inaccessible software and make repairs based on their experience, making the software in the labs accessible. This will benefit many members of the software engineering community, ranging from beginning-level students to experienced practitioners who want to ensure that they are properly creating accessible and inclusive software. Complete project material is publicly available on the project website: https://all.rit.edu
Xiaofan Que, Dingrong Wang, Samuel A. Malachowsky, Daniel E. Krutz
CSEE&T5
2024 Experiential and Expression-based Accessibility Awareness Interventions to Improve Computing Education
abstract
This research full paper presents a study demonstrating the importance of empathy-building content in computing education to foster appreciation for accessible software. Past research identifies a lack of empathy among developers contributing to software inclusion issues. We propose that enhancing empathy can lead to more accessible and equitable software development. Despite empathy studies in other fields, integrating empathy into computing education lacks sufficient pedagogical insights and accessible resources. To address these gaps, we conducted an in-person study with 121 participants, using a randomized experimental design with two empathy-building intervention groups. We compared their responses to pre-/post-survey questions using statistical tests, examining experiential and expression-based interventions' impact on inclusiveness interest and awareness of non-inclusive software. Our research questions focused on whether these interventions increase the interest, awareness, and empathy of participants and if they are equally effective across demographics and intervention formats. Our findings demonstrate that empathy-building interventions effectively raise awareness and empathy among participants. Expression-based interventions significantly increase empathy and awareness across age and gender groups, with no significant differences in impact between experiential and expression-based methods. Furthermore, we provide an easily adoptable web-based educational lab to integrate empathy and inclusive development topics into diverse curricula formats, accessible via our project website: https://all.rit.edu
Domenic Mangano, Krishna Prasad Neupane, Samuel A. Malachowsky, Daniel E. Krutz
FIE5
2024 ALL: Supporting Experiential Accessibility Education and Inclusive Software Development
abstract
Creating accessible software is imperative for making software inclusive for all users.Unfortunately, the topic of accessibility is frequently excluded from computing education, leading to scenarios where students are unaware of either how to develop accessible software or see the need to create it. To address this challenge, we have created a set of educational labs that are systematically designed to not only inform students about fundamental topics in producing accessible software but also demonstrate its importance. Over the previous year, these labs were included in several Computer Science 2 offerings at the Rochester Institute of Technology, comprising a total of 500 student participants. This article discusses instructional observations from these offerings, some of which include the following: (i) many of the research findings from previous efforts remain true with the larger, more diverse evaluation; (ii) our created material and format reduced students’ belief that creating accessible software was difficult in relation to the baseline,; (iii) we observed that our created material and format benefited student opinion that creating accessible software is important, and (iv) computing majors may not be uniformly impacted by experiential educational accessibility material. The educational labs are publicly available on the project website (https://all.rit.edu).
Weishi Shi, Heather Moses, Qi Yu 0001, Samuel A. Malachowsky, Daniel E. Krutz
ACM Trans. Softw. Eng. Methodol.5
2022 Addressing tactic volatility in self-adaptive systems using evolved recurrent neural networks and uncertainty reduction tactics
abstract
Self-adaptive systems frequently use tactics to perform adaptations. Tactic examples include the implementation of additional security measures when an intrusion is detected, or activating a cooling mechanism when temperature thresholds are surpassed. Tactic volatility occurs in real-world systems and is defined as variable behavior in the attributes of a tactic, such as its latency or cost. A system's inability to effectively account for tactic volatility adversely impacts its efficiency and resiliency against the dynamics of real-world environments. To enable systems' efficiency against tactic volatility, we propose a Tactic Volatility Aware (TVA-E) process utilizing evolved Recurrent Neural Networks (eRNN) to provide accurate tactic predictions. TVA-E is also the first known process to take advantage of uncertainty reduction tactics to provide additional information to the decision-making process and reduce uncertainty. TVA-E easily integrates into popular adaptation processes enabling it to immediately benefit a large number of existing self-adaptive systems. Simulations using 52,106 tactic records demonstrate that: I) eRNN is an effective prediction mechanism, II) TVA-E represents an improvement over existing state-of-the-art processes in accounting for tactic volatility, and III) Uncertainty reduction tactics are beneficial in accounting for tactic volatility. The developed dataset and tool can be found at https://tacticvolatility.github.io/
Aizaz Ul Haq, Niranjana Deshpande, Abdelrahman Elsaid, Travis J. Desell, Daniel E. Krutz
GECCO5
2022 Online Learning Using Incomplete Execution Data for Self-Adaptive Service-Oriented Systems
abstract
Service composition algorithms support the construction of complex applications by combining various web services to fulfill diverse functional and Quality of Service (QoS) requirements. Moreover, composition algorithms must fulfill diverse user requirements while adhering to constraints such as limited computational resources. Recent research has demonstrated that using online learning to select different algorithms for specific tasks of a problem domain outperforms approaches that use a single algorithm for all tasks, in terms of computational resource usage and solution quality. Problematically, existing work in service composition does not leverage these advances, leading to multiple inefficient compositions. To address these challenges, we propose online composition algorithm selection using contextual multi-armed bandits to select an algorithm for each composition task at runtime. Our evaluations demonstrate the benefits of our approach by reducing time and memory usage by up to 54.2% and 15.5% while fulfilling QoS requirements, compared to using a single composition algorithm for all tasks.
Niranjana Deshpande, Naveen Sharma, Qi Yu 0001, Daniel E. Krutz
ICWS4
2021 Uncertainty-Aware Multiple Instance Learning from Large-Scale Long Time Series Data
abstract
We propose a novel framework to classify large-scale time series data with long duration. Long time series classification (L-TSC) is a challenging problem because the data often contains a large amount of irrelevant information to the classification target. The irrelevant period degrades the classification performance while the relevance is unknown to the system. This paper proposes an uncertainty-aware multiple instance learning (MIL) framework to identify the most relevant period automatically. The predictive uncertainty enables designing an attention mechanism that forces the MIL model to learn from the possibly discriminant period. Moreover, the predicted uncertainty yields a principled estimator to identify whether a prediction is trustworthy or not. We further incorporate another modality to accommodate unreliable predictions by training a separate model based on its availability and conduct uncertainty aware fusion to produce the final prediction. Systematic evaluation is conducted on the Automatic Identification System (AIS) data, which is collected to identify and track real-world vessels. Empirical results demonstrate that the proposed method can effectively detect the types of vessels based on the trajectory and the uncertainty-aware fusion with other available data modality (Synthetic-Aperture Radar or SAR imagery is used in our experiments) can further improve the detection accuracy.
Yuansheng Zhu, Weishi Shi, Deep Shankar Pandey, Xiaofan Que, Daniel E. Krutz, Qi Yu 0001
IEEE BigData6
2021 R-CASS: Using Algorithm Selection for Self-Adaptive Service Oriented Systems
abstract
In service composition, complex applications are built by combining web services to fulfill user Quality of Service (QoS) and business requirements. To meet these requirements, applications are composed by evaluating all possible web service combinations using search algorithms. These algorithms need to be accurate and inexpensive to evaluate a large number of possible service combinations and services' fluctuating QoS attributes while meeting the constraints of limited computational resources. Recent research has shown that different search algorithms can outperform others on specific instances of a problem domain, in terms of solution quality and computational resource usage. Problematically, current service composition approaches ignore this property, leading to inefficient compositions. To address these limitations, we propose a composition algorithm selection framework which selects an algorithm per composition task at runtime, R-CASS. Our evaluations demonstrate that R-CASS leads to more efficient compositions, reducing composition time by 55.1% and memory by 37.5%.
Niranjana Deshpande, Naveen Sharma, Qi Yu 0001, Daniel E. Krutz
ICWS4
2021 ALL: Accessibility Learning Labs for Computing Accessibility Education
abstract
Our Accessibility Learning Labs not only inform participants about the need for accessible software, but also how to properly create and implement accessible software. These experiential browser-based labs enable participants, instructors and practitioners to engage in our material using only their browser. In the following document, we will provide a brief overview of our labs, how they may be adopted, and some of their preliminary results. Complete project material is publicly available on our project website: http://all.rit.edu
Saad Khan 0006, Heather Moses, Samuel A. Malachowsky, Daniel E. Krutz
ITiCSE (2)4
2020 TPM: Using Experiential Learning to Support Accessibility in Computing Education
abstract
This tutorial will introduce our Accessibility Learning Labs (ALL). The objectives of this collaborative project with The National Technical Institute for the Deaf (NTID) are to both inform participants about foundational topics in accessibility and to demonstrate the importance of creating accessible software. The labs enable easy classroom inclusion by providing instructors all necessary materials including lecture and activity slides and videos. Each lab addresses an accessibility issue and contains: I) Relevant background information on the examined issue II) An example web-based application containing the accessibility problem III) A process to emulate this accessibility problem IV) Details about how to repair the problem from a technical perspective V) Incidents from people who encountered this accessibility issue and how it has impacted their life. The labs may be easily integrated into a wide variety of curriculum at high schools (9–12), and in undergraduate and graduate courses. The labs will be easily adoptable due to their self-contained nature and their inclusion of all necessary instructional material (e.g., slides, quizzes, etc.). No special software is required to use any portion of the labs since they are web-based and are able to run on any computer with a reasonably recent web browser. There are currently four available labs on the topics of: Colorblindness, Hearing, Blindness and Dexterity. Material is available on our website: http://all.rit.edu This tutorial will provide an overview of the created labs and usage instructions and information for adaptors.
Samuel A. Malachowsky, Daniel E. Krutz
CSEE&T2
2020 Neuro-Evolutionary Transfer Learning Through Structural Adaptation
Abdelrahman Elsaid, Joshua Karnas, Zimeng Lyu, Daniel E. Krutz, Alexander Ororbia, Travis J. Desell
EvoApplications4
2020 Improving neuroevolutionary transfer learning of deep recurrent neural networks through network-aware adaptation
abstract
Transfer learning entails taking an artificial neural network (ANN) that is trained on a source dataset and adapting it to a new target dataset. While this has been shown to be quite powerful, its use has generally been restricted by architectural constraints. Previously, in order to reuse and adapt an ANN's internal weights and structure, the underlying topology of the ANN being transferred across tasks must remain mostly the same while a new output layer is attached, discarding the old output layer's weights. This work introduces network-aware adaptive structure transfer learning (N-ASTL), an advancement over prior efforts to remove this restriction. N-ASTL utilizes statistical information related to the source network's topology and weight distribution in order to inform how new input and output neurons are to be integrated into the existing structure. Results show improvements over prior state-of-the-art, including the ability to transfer in challenging real-world datasets not previously possible and improved generalization over RNNs without transfer.
Abdelrahman Elsaid, Joshua Karnas, Zimeng Lyu, Daniel E. Krutz, Alexander Ororbia, Travis J. Desell
GECCO4
2020 Panel: What and How to Teach Accessibility
abstract
This panel will provide practical advice on what and how to teach accessibility in a variety of settings. In this context, teaching accessibility means teaching about computer technologies that people with various disabilities can use and be productive with. At the undergraduate level it could mean teaching about how to design and build accessible web sites and applications. At the graduate level it could be teaching about building applications that can help people with disabilities with specific tasks. An entire course could focus on accessibility or it could be just part of an existing course. It is also important to learn about the diversity of consumers of technologies: what their abilities are and what access infrastructures they use every day. All the panelists have extensive experience in teaching accessibility. They will provide the audience of the panel deep insights into what they might do to teach accessibility in their own courses.
Richard E. Ladner, Anat Caspi, Leah Findlater, Paula Gabbert, Amy J. Ko, Daniel E. Krutz
SIGCSE6
2020 Experiential Accessibility Learning Labs for Computing Education
abstract
This workshop will introduce our Accessibility Learning Labs (ALL). The objectives of this collaborative project with The National Technical Institute for the Deaf (NTID) are to both inform participants about foundational topics in accessibility and to demonstrate the importance of creating accessible software. The labs enable easy classroom inclusion by providing instructors all necessary materials including lecture and activity slides and videos. Each lab addresses an accessibility issue and contains: I) Relevant background information on the examined issue; II) An example web-based application containing the accessibility problem; III) A process to emulate this accessibility problem; IV) Details about how to repair the problem from a technical perspective; V) Incidents from people who encountered this accessibility issue and how it has impacted their life.
Paul T. Tymann, Yasmine N. El-Glaly, Daniel E. Krutz
SIGCSE3
2019 Improving the Decision-Making Process of Self-Adaptive Systems by Accounting for Tactic Volatility
abstract
When self-adaptive systems encounter changes withintheir surrounding environments, they enacttacticsto performnecessary adaptations. For example, a self-adaptive cloud-basedsystem may have a tactic that initiates additional computingresources when response time thresholds are surpassed, or theremay be a tactic to activate a specific security measure when anintrusion is detected. In real-world environments, these tacticsfrequently experiencetactic volatilitywhich is variable behaviorduring the execution of the tactic.Unfortunately, current self-adaptive approaches do not accountfor tactic volatility in their decision-making processes, and merelyassume that tactics do not experience volatility. This limitationcreates uncertainty in the decision-making process and mayadversely impact the system's ability to effectively and efficientlyadapt. Additionally, many processes do not properly account forvolatility that may effect the system's Service Level Agreement(SLA). This can limit the system's ability to act proactively, especially when utilizing tactics that contain latency.To address the challenge of sufficiently accounting for tacticvolatility, we propose aTactic Volatility Aware(TVA) solution.Using Multiple Regression Analysis (MRA), TVA enables self-adaptive systems to accurately estimate the cost and timerequired to execute tactics. TVA also utilizesAutoregressiveIntegrated Moving Average(ARIMA) for time series forecasting, allowing the system to proactively maintain specifications.
Jeffrey Palmerino, Qi Yu 0001, Travis J. Desell, Daniel E. Krutz
ASE4
2019 An empirical history of permission requests and mistakes in open source Android apps
abstract
Android applications (apps) rely upon proper permission usage to ensure that the user's privacy and security are adequately protected. Unfortunately, developers frequently misuse app permissions in a variety of ways ranging from using too many permissions to not correctly adhering to Android's defined permission guidelines. The implications of these permissionissues (possible permission problems) can range from harming the user's perception of the app to significantly impacting their privacy and security. An imperative component to creating more secure apps that better protect a user's privacy is an improved understanding of how and when these issues are being introduced and repaired. While there are existing permissions-analysis tools and Android datasets, there are no available datasets that contain a large-scale empirical history of permission changes and mistakes. This limitation inhibits both developers and researchers from empirically studying and constructing a holistic understanding of permission-related issues. To address this shortfall with existing resources, we created a dataset of permission-based changes and permission-issues in open source Android apps. Our unique dataset contains information from 2,002 apps with commits from 10,601 unique committers, totaling 789,577 commits. We accomplished this by mining app repositories from F-Droid, extracting their version and commit histories, and analyzing this information using two permission analysis tools. Our work creates the foundation for future research in permission decisions and mistakes. Complete project details and data is available on our project website: https://mobilepermissions.github.io.
Gian Luca Scoccia, Anthony Peruma, Virginia Pujols, Ben Christians, Daniel E. Krutz
MSR5
2019 Permission Issues in Open-Source Android Apps: An Exploratory Study
abstract
Permissions are one of the most fundamental components for protecting an Android user's privacy and security. Unfortunately, developers frequently misuse permissions by requiring too many or too few permissions, or by not adhering to permission best practices. These permission-related issues can negatively impact users in a variety of ways, ranging from creating a poor user experience to severe privacy and security implications. To advance the understanding permission-related issues during the app's development process, we conducted an empirical study of 574 GitHub repositories of open-source Android apps. We analyzed the occurrences of four types of permission-related issues across the lifetime of the apps. Our findings reveal that (i) permission-related issues are a frequent phenomenon in Android apps, (ii) the majority of issues are fixed within a few days after their introduction, (iii) permission-related issues can frequently linger inside an app for an extended period of time, which can be as high as several years, before being fixed, and (iv) both project newcomers and regular contributors exhibit the same behaviour in terms of number of introduced and fixed permission-related issues per commit.
Gian Luca Scoccia, Anthony Peruma, Virginia Pujols, Ivano Malavolta, Daniel E. Krutz
SCAM5
2015 Enhancing the educational experience for deaf and hard of hearing students in software engineering
abstract
Software engineering is largely a communication-driven, team-oriented discipline. There are numerous hurdles for ensuring proper communication and interaction between all project stakeholders, including physical, technological, and cultural barriers. These obstructions not only affect software engineering in industry, but in academia as well. One possible issue that is often overlooked in software engineering education is how to best educate Deaf and hard-of-hearing (Deaf/HoH) students, and how to fully engage them in the classroom. In this paper, we present our experiences in teaching software engineering to Deaf/HoH students. In the classroom, these students work very closely in activities and on project teams with their hearing peers. We also present recommendations for creating a more robust software engineering educational experience for not only Deaf/HoH students, but for hearing students as well. We encourage instructors not only in software engineering programs, but in other computing disciplines to consider our recommendations and observations in order to enhance the educational experience for all students in the classroom, whether Deaf/HoH or hearing.
Daniel E. Krutz, Samuel A. Malachowsky, Scott D. Jones, Jayme A. Kaplan
FIE1
2015 An insider threat activity in a software security course
abstract
Software development teams face a critical threat to the security of their systems: insiders. A malicious insider is a person who violates an authorized level of access in a software system. Unfortunately, when creating software, developers do not typically account for insider threat. Students learning software development are unaware of the impacts of malicious actors and are far too often untrained in prevention methods against them. A few of the defensive mechanisms to protect against insider threats include eliminating system access once an employee leaves an organization, enforcing principle of least privilege, code reviews, and constant monitoring for suspicious activity. At the Department of Software Engineering at the Rochester Institute of Technology, we require a course titled Engineering of Secure Software and have created an activity designed to prepare students for the problem of insider threats. At the beginning of this activity, student teams are given the task of designing a moderately sized secure software system. The goal of this insider is to manipulate the team into creating a flawed system design that would allow attackers to perform malicious activities once the system has been created. When the insider is revealed at the conclusion of the project, students discuss countermeasures regarding the malicious actions the insiders were able to plan or complete, along with methods of prevention that may have been employed by the team to detect the malicious developer. In this paper, we describe the activity along with the results of a survey. We discuss the benefits and challenges of the activity with the goal of giving other instructors the tools they need to conduct this activity at their institution. While many institutions do not offer courses in computer security, this self-contained activity may be used in any computing course to enforce the importance of protecting against insider threats.
Daniel E. Krutz, Andrew Meneely, Samuel A. Malachowsky
FIE1
2015 A project component in a web engineering course
abstract
Web applications are an extremely important and ubiquitous part of today's world. Students must not only know how to develop them from a technical perspective, but in doing so need to understand how to follow the proper principles of software engineering - delivering the project on time, on budget, and in a high quality manner. At the Department of Software Engineering at the Rochester Institute of Technology, we offer a Web Engineering course which not only introduces students to a variety of web technologies, but more importantly it shows them how to use them in a collaborative environment while properly utilizing web engineering methodologies. The course includes a significant project component requiring students to use a variety of contemporary technologies and resources to create a robust web application. The main premise of the project is for each group to create a web portal using both custom-built and already existing components. The project takes place over the entire 15 week course term, includes multiple releases, and has students work in teams of 4-5. This innovative project component has received significant praise from both students and faculty members while fulfilling an emerging area of our curriculum. Students enjoy the real-world nature of the project and the ability to work with contemporary technologies in a format which closely mimics what they will see in industry. This paper outlines the educational objectives, project details, some sample project results of our class offering, as well as student feedback about the project. The goal of this work is to share the project, its importance, and lessons learned for use at other institutions with similar educational goals.
Samuel A. Malachowsky, Daniel E. Krutz
FIE2
2015 A Dataset of Open-Source Android Applications
abstract
Android has grown to be the world's most popular mobile platform with apps that are capable of doing everything from checking sports scores to purchasing stocks. In order to assist researchers and developers in better understanding the development process as well as the current state of the apps themselves, we present a large dataset of analyzed open-source Android applications and provide a brief analysis of the data, demonstrating potential usefulness. This dataset contains 1,179 applications, including 4,416 different versions of these apps and 435,680 total commits. Furthermore, for each app we include the analytical results obtained from several static analysis tools including Androguard, Sonar, and Stowaway. In order to better support the community in conducting research on the security characteristics of the apps, our large analytical dataset comes with the detailed information including various versions of AndroidManifest.xml files and synthesized information such as permissions, intents, and minimum SDK. We collected 13,036 commits of the manifest files and recorded over 69,707 total permissions used. The results and a brief set of analytics are presented on our website: http://androsec.rit.edu.
Daniel E. Krutz, Mehdi Mirakhorli, Samuel A. Malachowsky, Andres Ruiz, Jacob Peterson, Andrew Filipski, Jared Smith
MSR1
2014 A code clone oracle
abstract
Code clones are functionally equivalent code segments. De- tecting code clones is important for determining bugs, fixes and software reuse. Code clone detection is also essential for developing fast and precise code search algorithms. How- ever, the challenge of such research is to evaluate that the clones detected are indeed functionally equivalent, consider- ing the majority of clones are not textual or even syntacti- cally identical. The goal of this work is to generate a set of method level code clones with a high confidence to help to evaluate future code clone detection and code search tools to evaluate their techniques. We selected three open source programs, Apache, Python and PostgreSQL, and randomly sampled a total of 1536 function pairs. To confirm whether or not these function pairs indicate a clone and what types of clones they belong to, we recruited three experts who have experience in code clone research and four students who have experience in programming for manual inspection. For confi- dence of the data, the experts consulted multiple code clone detection tools to make the consensus. To assist manual inspection, we built a tool to automatically load function pairs of interest and record the manual inspection results. We found that none of the 66 pairs are textual identical type- 1 clones, and 9 pairs are type-4 clones. Our data is available at: http://phd.gccis.rit.edu/weile/data/cloneoracle/.
Daniel E. Krutz, Wei Le
MSR1
2014 Using a real world project in a software testing course
abstract
Although testing often accounts for 50% of the budget of a typical software project, the subject of software testing is often overlooked in computing curriculum. Students often view testing as a boring and unnecessary task, and education is usually focused on building software, not ensuring its quality. Previous works have focused on either making the subject of testing more exciting for students or on a more potent lecture-based learning process. At the Department of Software Engineering at the Rochester Institute of Technology, recent efforts have been focused on the project component of our Software Testing course as an area of innovation. Rather than previous methods such as a tightly controlled and repetitive testbed, our students are allowed to choose a real-world, open source project to test throughout the term. With the instructor as both counsel and client, students are expected to deliver a test plan, a final report, and several class-wide presentations. This project has achieved significant student praise; qualitative and quantitative feedback demonstrates both increased satisfaction and fulfilled curricular requirements. Students enjoy the real-world aspect of the project and the ability to work with relevant applications and technologies. This paper outlines the project details and educational goals.
Daniel E. Krutz, Samuel A. Malachowsky, Thomas Reichlmayr
SIGCSE1
2013 Bug of the Day: Reinforcing the importance of testing
abstract
Software engineering students typically dislike testing. In part this is due to the simplicity of the programming and design exercises in introductory computing courses - the payoff for thorough testing is not apparent. In addition, testing can be seen as tangential to what really matters: developing and documenting a design addressing the requirements, and constructing a system in conforming to the design. Such dismissive attitudes do not accord well with the realities of commercial software development. The cost of fixing, repairing and redistributing a flawed product can dwarf that of development. The Software Engineering Department at the Rochester Institute of Technology (RIT) teaches (and requires) basic testing as part of its foundation courses in the first two years. In addition, it offers an upper division course on testing, giving an in-depth treatment of best-practice tools, techniques and processes. Recently we've incorporated a “Bug of the Day,” which serves to broaden student awareness of the cost of software flaws. Class discussions focus on the cost of the bug, its root causes, and how it might have been discovered and repaired prior to product release.
Daniel E. Krutz, Michael Lutz 0003
FIE1
2013 Teaching Web Engineering using a project component
abstract
Web applications are an intricate part of the world today. Everything from banking to checking our Facebook status may now be done through the use of web applications. Todays students need to balance numerous concerns in order to create a web application that is robust, on time and on budget. At the Department of Software Engineering at the Rochester Institute of Technology, we created a course called Web Engineering. As part of this course, we developed an innovative project component which focused on students following software engineering principles such as elicitation, requirements generation, testing and deployment.
Daniel E. Krutz, Andrew Meneely
FIE1
2013 Experiencing disruptive behavior in a team using "moles"
abstract
The ability to work on a team is a paramount skill for every engineer. The capability to understand, identify and work through team problems will significantly enhance the engineer's ability to deliver a high quality product on time and within budget. Far too often, however, the experience of working as a team, with its challenges, is overlooked in the student's education. The Department of Software Engineering at Rochester Institute of Technology introduced an activity in their Freshman Seminar course to help students work in a team-based environment. The specific focus was interacting with problematic team members. This team activity involved student “moles” covertly being inserted to act in a disruptive fashion. At the end of the activity, the teams reassembled to discuss the task the team had been assigned to do. The instructor revealed the role of the “moles” at this point, and the teams discussed the effect their behaviors had on team effectiveness and the strategies used to deal with the disruptive behaviors. The students have praised the activity, finding it to be different, exciting and educational. This paper describes the “mole” activity, our observations of the results, and provides suggestions for future use in coursework.
Daniel E. Krutz, James R. Vallino
FIE1
2012 Instilling a software engineering mindset through freshman Seminar
abstract
Student retention is a challenge faced by all engineering programs. Our first year software engineering students have schedules filled with computer science, mathematics, science and humanities. The lack of any exposure to engineering meant some students, expressing a dislike for software engineering, left the program before they had any exposure to the discipline. To address this issue, we created a one credit Software Engineering Freshman Seminar, which all entering students take in their first term at RIT. This lets us insure student/faculty contact early in the program, as well as providing an opportunity to introduce engineering concepts and practices early in each student's program of study. This paper discusses the seminar's current incarnation. In particular, we focus on those aspects of the course which help students identify with software engineering as a profession. The challenge we face is achieving this goal with students whose technical knowledge and skills are modest. We have settled on an approach that provides experience with teamwork, requirements elicitation, and the effects of change, and addressing professional ethics. These in-class activities are complemented by an assignment to interview a practicing software engineer and to write an interview summary for discussion. This activity ensemble serves to disabuse students of the notion that software engineering is little more than programming, or that the discipline is identical to computer science. Should a student exit the program at this point, at least he or she knows a bit about what they are leaving behind.
Michael Lutz 0003, James R. Vallino, Kenn Martínez, Daniel E. Krutz
FIE4