Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education
Recently, many computing departments in universities and colleges around the nation have seen inc... more Recently, many computing departments in universities and colleges around the nation have seen increases in enrollments in the major. While these increases are largely welcome, it is important that the student population be diversified even as enrollments swell. What are departments doing to ensure that women are both recruited and retained in this changing environment? This panel will share interventions undertaken by three U.S. postsecondary institutions that have focused on increasing their female and underrepresented student enrollment. Their efforts all include multi-pronged approaches, which is consistent with the social science research on how to create institutional reform in academic departments [1]. These institutions have made changes that reflect increased departmental engagement with recruitment and retention for diversity: a shift in individual faculty pedagogical strategies, introductory course restructuring, as well as more outreach and preparatory programs for incoming students. These departments have not only implemented existing evidence-based practices to make these lasting changes, but have tried new ideas as well.
It gives us great pleasure to welcome you to the 38th International Conference in Software Engine... more It gives us great pleasure to welcome you to the 38th International Conference in Software Engineering in the lovely Austin Arboretum area-known as "new Austin"-at the start of the Texas hill country. This setting provides an ideal backdrop for the world's leading software engineering researchers and practitioners to share cutting-edge results and visionary ideas, attend inspirational talks, and engage in lively conversation. A quartercentury after the Texas state capitol first hosted ICSE, Austin has become a hub for technology, entrepreneurship, music, outdoor recreation and nightlife. In addition to a great technical program, the ICSE week provides opportunities for you to check out what Austin has to offer and to experience Texas hospitality first hand. The ICSE 2016 week starts Saturday, May 14 with 4 days of ICSE workshops and symposia, including a day of technical briefings on May 17. The week culminates in the 3-day main conference program May 18-20. The prestigious research track is the heart of the main conference program. However, complementing this track, half-adozen smaller tracks offer stimulating sessions for a variety of audiences. Each day of the main conference features a keynote talk and the last day features two award talks. Fifteen years since Mary Shaw delivered a keynote on the coming-of-age of software architecture research, she will look back at the evolution of software engineering as a discipline in the ICSE opening keynote. She will take this opportunity to assess the maturity of the field and forecast the challenges ahead. Mary is the Alan J.
The Software Engineering and Network Systems (SENS) Laboratory supports research in software engi... more The Software Engineering and Network Systems (SENS) Laboratory supports research in software engineering, formal methods, distributed computing, fault tolerance, and computer networking. In addition to projects within each area, the diversity in faculty expertise enables SENS researchers to address challenging problems that span multiple areas. Examples include: automated development of software for embedded systems in automobiles and aircraft; adaptive software for protecting critical infrastructures from cascading failures and cyber-attack; robust software for networks of sensors used in military reconnaissance; adaptive protocols for pervasive computing via handheld and wearable computers; and providing security and privacy in peer-to-peer computing systems. Current SENS research projects are supported by grants from NSF, ONR, and DARPA. Several projects also involve industrial support and collaboration; partners include Motorola, Lucent, Cisco, Siemens, NASA/JPL, and Texas Instr...
Proceedings of the 52nd ACM Technical Symposium on Computer Science Education, 2021
Undergraduate students at Michigan State University (MSU) have offered Spartan Girls Who Code (SG... more Undergraduate students at Michigan State University (MSU) have offered Spartan Girls Who Code (SGWC) clubs on the MSU campus for three spring semesters. Marketed to 6th-12th graders who identify as female, SGWC aims to (1) introduce participants to the fundamentals of computing, (2) contextualize computing in modern life, (3) improve participants' confidence and attitudes toward computing, and (4) foster an inclusive, supportive, and welcoming learning environment. Toward these ends, MSU students serve as near-peer mentors, guiding participants in active learning, collaborative learning, project-based learning and culturally-relevant computing activities. Due to the COVID-19 pandemic, SGWC was forced to abruptly transition to virtual meetings after the first five in-person meetings of the spring 2020 session. Club attendance fell in the immediate wake of Michigan public school closures by about 50%. But retention and morale of those who attended the first virtual session was high. Moreover, feedback from those who completed SGWC and their parents indicate overall satisfaction with the virtual adaptation of SGWC and support that it was successful in achieving its goals. This paper highlights lessons distilled over the course of SGWC's transition to a virtual format. Our goal is to provide a vision for the post-pandemic role of out-of-school time coding clubs in the diversification and development of future computer scientists.
Proceedings of the 14th International Conference on Advances in Mobile Computing and Multi Media, 2016
The Dancing Computer project is developing a system that aims to increase computer literacy in el... more The Dancing Computer project is developing a system that aims to increase computer literacy in elementary-aged children by teaching them first to read code before they write it. The main objective is to educate children on basic concepts of Computer Science. Children are given tablet computers that present a simple program line-by-line that they execute as they pretend to be a computer. The programs are acted out on a portable dance floor consisting of colored tiles and the program statements instruct the child to move, turn, and act out dance poses and terminology. This is a unique and different approach - the norm being to start students off writing code in some language. This project has the potential to increase the level of Computer Literacy for thousands of children. This project's goal is to increase understanding of what a computer does, what a program does, and the step-by-step nature of computer programs.
Learning about concurrency and synchronization is difficult for novices. Our research seeks to su... more Learning about concurrency and synchronization is difficult for novices. Our research seeks to support and improve the teaching and learning of concurrency concepts and to improve comprehension of the intricacies of multiple thread interactions. This paper describes a series of empirical studies in the first phase of our research. We began by conducting a comparative study to empirically evaluate the usability by novices of the existing variants of the UML sequence diagram notation in solving comprehension tasks involving multiple thread interactions. The results implied that a deliberately designed variant of this notation may provide better support for reasoning about concurrent behavior. We then investigated the factors that complicate learning, with the idea that the same complexities would also complicate comprehension tasks. In order to understand the practical difficulties novices encounter in learning about concurrency, we conducted an instructor interview and an observation...
Page 1. Table of Contents 16th IEEE International Conference on Program Comprehension Message fro... more Page 1. Table of Contents 16th IEEE International Conference on Program Comprehension Message from the Chairs _____ viii Conference Committee _____ ix Steering Committee_____ x Program Committee_____ ...
Today, most new software products use concurrency in some capacity. However, the expressive power... more Today, most new software products use concurrency in some capacity. However, the expressive power afforded by the use of concurrency comes at the expense of increased complexity. Without proper synchronization, concurrent access to shared objects can lead to race conditions, and incorrect synchronization logic can lead to starvation or deadlock. Moreover, concurrency confounds the development of reusable software modules because code implementing an application's synchronization logic tends to be tightly interleaved with the "functional" code. Interleaving complicates program understanding and maintenance, producing brittle applications. Contract-based models of synchronization, such as the Synchronization Units Model (Szumo), attempt to address these problems by: (1) expressing synchronization concerns in declarative synchronization contracts to separate them from functional code; and (2) using a runtime system that dynamically interprets and "negotiates" the contracts, thereby automatically synchronizing threads. However, this approach requires a special compiler and runtime system, making it difficult to integrate Szumo into mainstream object-oriented programming languages or conduct empirical studies to understand software engineering tradeoffs when using Szumo or hand coding synchronization. This thesis investigates two "lighter-weight" approaches for integrating a contract-based synchronization model with a mainstream object-oriented programming language. The first approach works with any multi-threaded Java program. In this approach, an application programmer adds special Java annotations to a class whose methods contain only functional code. A compiler plugin generates synchronization code from the annotated program based The journey of my Ph.D. pursuit is not an exception.
Graduates of computer science degree programs are increasingly being asked to maintain large, mul... more Graduates of computer science degree programs are increasingly being asked to maintain large, multi-threaded software systems; however, the maintenance of such systems is typically not wellcovered by software engineering texts or curricula. We conducted a think-aloud study with 15 students in a graduate-level computer science class to discover the strategies that students apply, and to what effect, in performing corrective maintenance on concurrent software. We collected think-aloud and action protocols, and annotated the protocols for a number of behavioral attributes and maintenance strategies. We divided the protocols into groups based on the success of the participant in both diagnosing and correcting the failure. We evaluated these groups for statistically significant differences in these attributes and strategies. In this paper, we report a number of interesting observations that came from this study. All participants performed diagnostic executions of the program to aid program comprehension; however, the participants that used this as their predominant strategy for diagnosing the fault were all unsuccessful. Among the participants that successfully diagnosed the fault and displayed high confidence in their diagnosis, we found two commonalities. They all recognized that the fault involved the violation of a concurrent-programming idiom. And, they all constructed detailed behavioral models (similar to UML sequence diagrams) of execution scenarios. We present detailed analyses to explain the attributes that correlated with success or lack of success. Based on these analyses, we make recommendations for improving software engineering curriculums by better training students how to apply these strategies effectively.
Abstruct-The successful development of complex real-time systems depends on analysis techniques t... more Abstruct-The successful development of complex real-time systems depends on analysis techniques that can accurately assess the timing properties of those systems. This paper describes a technique for deriving upper and lower bounds on the time that can elapse between two given events in an execution of a concurrent software system running on a single processor under arbitrary scheduling. The technique involves generating linear inequalities expressing conditions that must be satisfied by all executions of such a system and using integer programming methods to find appropriate solutions to the inequalities. The technique does not require construction of the state space of the system and its feasibility has been demonstrated by using an extended version of the constrained expression toolset to analyze the timing properties of some concurrent systems with very large state spaces.
... Page 6. 318 G. Kutty et al. ... As usual, Hrfil / is used to denote provability of the formul... more ... Page 6. 318 G. Kutty et al. ... As usual, Hrfil / is used to denote provability of the formula / in Prfil-When clear from context, we simply write h /. 5.1 Inference Rules The inference rules of 'Drfil are substitution (SUB), modus ponens (MP), and interval generalization (IG). ...
International Journal of Pervasive Computing and Communications
Purpose The purpose of this paper is to present the design and evolution of the Dancing Computer ... more Purpose The purpose of this paper is to present the design and evolution of the Dancing Computer project. Dancing Computer is an ongoing research project at the Michigan State University, which is developing a system that aims to increase computer literacy in elementary-aged children by teaching them first to read code before they write it. The main objective is to educate children on basic concepts of computer science. Design/methodology/approach Children are given tablet computers that present a simple program line-by-line that they execute as they pretend to be a computer. The programs are acted out on a portable dance floor consisting of colored tiles, and the program statements instruct the child to move, turn and act out dance poses and terminology. Findings The Dancing Computer prototype was tested in six different locations in 2016, reaching approximately 250 students. Learning was demonstrated by significant improvements in both task duration and error performance as studen...
Acm Transactions on Programming Languages and Systems, 1988
It is extremely difficult to characterize the possible behaviors of a distributed software system... more It is extremely difficult to characterize the possible behaviors of a distributed software system through informal reasoning. Developers of distributed systems require tools that support formal reasoning about properties of the behaviors of their systems. These tools should be applicable to designs and other preimplementation descriptions of a system, as well as to completed programs. Furthermore, they should not limit a developer's choice of development languages. In this paper we present a basis for broadly applicable analysis methods for distributed software systems. The constrained expression formalism can be used with a wide variety of distributed system development notations to give a uniform closed-form representation of a system's behavior. A collection of formal analysis techniques can then be applied with this representation to establish properties of the system. Examples of these formal analysis techniques appear elsewhere. Here we illustrate the broad applicability of the constrained expression formalism by showing how constrained expression representations are obtained from descriptions of systems in three different notations: SDYMOL, CSP, and Petri nets. Features of these three notations span most of the significant alternatives for describing distributed software systems. Our examples thus offer persuasive evidence for the broad applicability of the constrained expression approach.
[1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis, 2000
Page 1. An Experience with Two Symbolic Execution-Based Approaches to Formal Verification of Ada ... more Page 1. An Experience with Two Symbolic Execution-Based Approaches to Formal Verification of Ada Tasking Programs* Laura K. Dillon Richard A. Kemmerer Linda J. Harrison Computer Science Department University of California, Santa Barbara, CA 93106 Abstract ...
Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education
Recently, many computing departments in universities and colleges around the nation have seen inc... more Recently, many computing departments in universities and colleges around the nation have seen increases in enrollments in the major. While these increases are largely welcome, it is important that the student population be diversified even as enrollments swell. What are departments doing to ensure that women are both recruited and retained in this changing environment? This panel will share interventions undertaken by three U.S. postsecondary institutions that have focused on increasing their female and underrepresented student enrollment. Their efforts all include multi-pronged approaches, which is consistent with the social science research on how to create institutional reform in academic departments [1]. These institutions have made changes that reflect increased departmental engagement with recruitment and retention for diversity: a shift in individual faculty pedagogical strategies, introductory course restructuring, as well as more outreach and preparatory programs for incoming students. These departments have not only implemented existing evidence-based practices to make these lasting changes, but have tried new ideas as well.
It gives us great pleasure to welcome you to the 38th International Conference in Software Engine... more It gives us great pleasure to welcome you to the 38th International Conference in Software Engineering in the lovely Austin Arboretum area-known as "new Austin"-at the start of the Texas hill country. This setting provides an ideal backdrop for the world's leading software engineering researchers and practitioners to share cutting-edge results and visionary ideas, attend inspirational talks, and engage in lively conversation. A quartercentury after the Texas state capitol first hosted ICSE, Austin has become a hub for technology, entrepreneurship, music, outdoor recreation and nightlife. In addition to a great technical program, the ICSE week provides opportunities for you to check out what Austin has to offer and to experience Texas hospitality first hand. The ICSE 2016 week starts Saturday, May 14 with 4 days of ICSE workshops and symposia, including a day of technical briefings on May 17. The week culminates in the 3-day main conference program May 18-20. The prestigious research track is the heart of the main conference program. However, complementing this track, half-adozen smaller tracks offer stimulating sessions for a variety of audiences. Each day of the main conference features a keynote talk and the last day features two award talks. Fifteen years since Mary Shaw delivered a keynote on the coming-of-age of software architecture research, she will look back at the evolution of software engineering as a discipline in the ICSE opening keynote. She will take this opportunity to assess the maturity of the field and forecast the challenges ahead. Mary is the Alan J.
The Software Engineering and Network Systems (SENS) Laboratory supports research in software engi... more The Software Engineering and Network Systems (SENS) Laboratory supports research in software engineering, formal methods, distributed computing, fault tolerance, and computer networking. In addition to projects within each area, the diversity in faculty expertise enables SENS researchers to address challenging problems that span multiple areas. Examples include: automated development of software for embedded systems in automobiles and aircraft; adaptive software for protecting critical infrastructures from cascading failures and cyber-attack; robust software for networks of sensors used in military reconnaissance; adaptive protocols for pervasive computing via handheld and wearable computers; and providing security and privacy in peer-to-peer computing systems. Current SENS research projects are supported by grants from NSF, ONR, and DARPA. Several projects also involve industrial support and collaboration; partners include Motorola, Lucent, Cisco, Siemens, NASA/JPL, and Texas Instr...
Proceedings of the 52nd ACM Technical Symposium on Computer Science Education, 2021
Undergraduate students at Michigan State University (MSU) have offered Spartan Girls Who Code (SG... more Undergraduate students at Michigan State University (MSU) have offered Spartan Girls Who Code (SGWC) clubs on the MSU campus for three spring semesters. Marketed to 6th-12th graders who identify as female, SGWC aims to (1) introduce participants to the fundamentals of computing, (2) contextualize computing in modern life, (3) improve participants' confidence and attitudes toward computing, and (4) foster an inclusive, supportive, and welcoming learning environment. Toward these ends, MSU students serve as near-peer mentors, guiding participants in active learning, collaborative learning, project-based learning and culturally-relevant computing activities. Due to the COVID-19 pandemic, SGWC was forced to abruptly transition to virtual meetings after the first five in-person meetings of the spring 2020 session. Club attendance fell in the immediate wake of Michigan public school closures by about 50%. But retention and morale of those who attended the first virtual session was high. Moreover, feedback from those who completed SGWC and their parents indicate overall satisfaction with the virtual adaptation of SGWC and support that it was successful in achieving its goals. This paper highlights lessons distilled over the course of SGWC's transition to a virtual format. Our goal is to provide a vision for the post-pandemic role of out-of-school time coding clubs in the diversification and development of future computer scientists.
Proceedings of the 14th International Conference on Advances in Mobile Computing and Multi Media, 2016
The Dancing Computer project is developing a system that aims to increase computer literacy in el... more The Dancing Computer project is developing a system that aims to increase computer literacy in elementary-aged children by teaching them first to read code before they write it. The main objective is to educate children on basic concepts of Computer Science. Children are given tablet computers that present a simple program line-by-line that they execute as they pretend to be a computer. The programs are acted out on a portable dance floor consisting of colored tiles and the program statements instruct the child to move, turn, and act out dance poses and terminology. This is a unique and different approach - the norm being to start students off writing code in some language. This project has the potential to increase the level of Computer Literacy for thousands of children. This project's goal is to increase understanding of what a computer does, what a program does, and the step-by-step nature of computer programs.
Learning about concurrency and synchronization is difficult for novices. Our research seeks to su... more Learning about concurrency and synchronization is difficult for novices. Our research seeks to support and improve the teaching and learning of concurrency concepts and to improve comprehension of the intricacies of multiple thread interactions. This paper describes a series of empirical studies in the first phase of our research. We began by conducting a comparative study to empirically evaluate the usability by novices of the existing variants of the UML sequence diagram notation in solving comprehension tasks involving multiple thread interactions. The results implied that a deliberately designed variant of this notation may provide better support for reasoning about concurrent behavior. We then investigated the factors that complicate learning, with the idea that the same complexities would also complicate comprehension tasks. In order to understand the practical difficulties novices encounter in learning about concurrency, we conducted an instructor interview and an observation...
Page 1. Table of Contents 16th IEEE International Conference on Program Comprehension Message fro... more Page 1. Table of Contents 16th IEEE International Conference on Program Comprehension Message from the Chairs _____ viii Conference Committee _____ ix Steering Committee_____ x Program Committee_____ ...
Today, most new software products use concurrency in some capacity. However, the expressive power... more Today, most new software products use concurrency in some capacity. However, the expressive power afforded by the use of concurrency comes at the expense of increased complexity. Without proper synchronization, concurrent access to shared objects can lead to race conditions, and incorrect synchronization logic can lead to starvation or deadlock. Moreover, concurrency confounds the development of reusable software modules because code implementing an application's synchronization logic tends to be tightly interleaved with the "functional" code. Interleaving complicates program understanding and maintenance, producing brittle applications. Contract-based models of synchronization, such as the Synchronization Units Model (Szumo), attempt to address these problems by: (1) expressing synchronization concerns in declarative synchronization contracts to separate them from functional code; and (2) using a runtime system that dynamically interprets and "negotiates" the contracts, thereby automatically synchronizing threads. However, this approach requires a special compiler and runtime system, making it difficult to integrate Szumo into mainstream object-oriented programming languages or conduct empirical studies to understand software engineering tradeoffs when using Szumo or hand coding synchronization. This thesis investigates two "lighter-weight" approaches for integrating a contract-based synchronization model with a mainstream object-oriented programming language. The first approach works with any multi-threaded Java program. In this approach, an application programmer adds special Java annotations to a class whose methods contain only functional code. A compiler plugin generates synchronization code from the annotated program based The journey of my Ph.D. pursuit is not an exception.
Graduates of computer science degree programs are increasingly being asked to maintain large, mul... more Graduates of computer science degree programs are increasingly being asked to maintain large, multi-threaded software systems; however, the maintenance of such systems is typically not wellcovered by software engineering texts or curricula. We conducted a think-aloud study with 15 students in a graduate-level computer science class to discover the strategies that students apply, and to what effect, in performing corrective maintenance on concurrent software. We collected think-aloud and action protocols, and annotated the protocols for a number of behavioral attributes and maintenance strategies. We divided the protocols into groups based on the success of the participant in both diagnosing and correcting the failure. We evaluated these groups for statistically significant differences in these attributes and strategies. In this paper, we report a number of interesting observations that came from this study. All participants performed diagnostic executions of the program to aid program comprehension; however, the participants that used this as their predominant strategy for diagnosing the fault were all unsuccessful. Among the participants that successfully diagnosed the fault and displayed high confidence in their diagnosis, we found two commonalities. They all recognized that the fault involved the violation of a concurrent-programming idiom. And, they all constructed detailed behavioral models (similar to UML sequence diagrams) of execution scenarios. We present detailed analyses to explain the attributes that correlated with success or lack of success. Based on these analyses, we make recommendations for improving software engineering curriculums by better training students how to apply these strategies effectively.
Abstruct-The successful development of complex real-time systems depends on analysis techniques t... more Abstruct-The successful development of complex real-time systems depends on analysis techniques that can accurately assess the timing properties of those systems. This paper describes a technique for deriving upper and lower bounds on the time that can elapse between two given events in an execution of a concurrent software system running on a single processor under arbitrary scheduling. The technique involves generating linear inequalities expressing conditions that must be satisfied by all executions of such a system and using integer programming methods to find appropriate solutions to the inequalities. The technique does not require construction of the state space of the system and its feasibility has been demonstrated by using an extended version of the constrained expression toolset to analyze the timing properties of some concurrent systems with very large state spaces.
... Page 6. 318 G. Kutty et al. ... As usual, Hrfil / is used to denote provability of the formul... more ... Page 6. 318 G. Kutty et al. ... As usual, Hrfil / is used to denote provability of the formula / in Prfil-When clear from context, we simply write h /. 5.1 Inference Rules The inference rules of 'Drfil are substitution (SUB), modus ponens (MP), and interval generalization (IG). ...
International Journal of Pervasive Computing and Communications
Purpose The purpose of this paper is to present the design and evolution of the Dancing Computer ... more Purpose The purpose of this paper is to present the design and evolution of the Dancing Computer project. Dancing Computer is an ongoing research project at the Michigan State University, which is developing a system that aims to increase computer literacy in elementary-aged children by teaching them first to read code before they write it. The main objective is to educate children on basic concepts of computer science. Design/methodology/approach Children are given tablet computers that present a simple program line-by-line that they execute as they pretend to be a computer. The programs are acted out on a portable dance floor consisting of colored tiles, and the program statements instruct the child to move, turn and act out dance poses and terminology. Findings The Dancing Computer prototype was tested in six different locations in 2016, reaching approximately 250 students. Learning was demonstrated by significant improvements in both task duration and error performance as studen...
Acm Transactions on Programming Languages and Systems, 1988
It is extremely difficult to characterize the possible behaviors of a distributed software system... more It is extremely difficult to characterize the possible behaviors of a distributed software system through informal reasoning. Developers of distributed systems require tools that support formal reasoning about properties of the behaviors of their systems. These tools should be applicable to designs and other preimplementation descriptions of a system, as well as to completed programs. Furthermore, they should not limit a developer's choice of development languages. In this paper we present a basis for broadly applicable analysis methods for distributed software systems. The constrained expression formalism can be used with a wide variety of distributed system development notations to give a uniform closed-form representation of a system's behavior. A collection of formal analysis techniques can then be applied with this representation to establish properties of the system. Examples of these formal analysis techniques appear elsewhere. Here we illustrate the broad applicability of the constrained expression formalism by showing how constrained expression representations are obtained from descriptions of systems in three different notations: SDYMOL, CSP, and Petri nets. Features of these three notations span most of the significant alternatives for describing distributed software systems. Our examples thus offer persuasive evidence for the broad applicability of the constrained expression approach.
[1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis, 2000
Page 1. An Experience with Two Symbolic Execution-Based Approaches to Formal Verification of Ada ... more Page 1. An Experience with Two Symbolic Execution-Based Approaches to Formal Verification of Ada Tasking Programs* Laura K. Dillon Richard A. Kemmerer Linda J. Harrison Computer Science Department University of California, Santa Barbara, CA 93106 Abstract ...
Uploads
Papers by Laura Dillon