Workshop on Teaching Computational Science (WTCS) Session 1

Time and Date: 10:15 - 11:55 on 13th June 2019

Room: 0.3

Chair: Alfredo Tirado-Ramos

42 Blue Waters Workforce Development [abstract]
Abstract: Blue Waters Workforce Development: Delivering National Scale HPC Workforce Development The National Science Foundation funds the Blue Waters project, which supports an Education, Outreach and Training (EOT) program focused on preparing an HPC-capable workforce with an emphasis on petascale computing competencies. The Blue Waters EOT team engages undergraduate students in internships, graduate students in fellowships, researchers as participants in training sessions, trainers and educators as PIs of education allocations, and underrepresented communities as PIs of broadening participation allocations. All of these communities benefit from access to on one of the most advanced computing environments available to the open science research community. Educators, researchers and students are asked to present their research via conference presentations (e.g. at the annual Blue Waters Symposium) and publications (e.g. the Journal of Computational Science Education). HPC experts offer a variety of training sessions to assist researchers and educators with incorporating state-of-the-art resources, tools, and methods within their research and education endeavors. The Virtual School of Computational Science and Engineering (VSCSE) delivered graduate level computational science and HPC courses to students at colleges and universities across the country, and to students at international locations. The VSCSE courses were led by experts in the field and were conducted in collaboration with their faculty at the recipient institutions in order to provide the students with access to course content and mentoring that would otherwise not have been available to them at their home institution. The Blue Waters Graduate Fellowships have provided a year of funded support and access to the Blue Waters system for the research being conducted by 44 graduate students in a variety of science and engineering fields of study. The Blue Waters Student Internship Program is designed to motivate undergraduate students to pursue advanced science and engineering studies and careers. The undergraduate interns begin their involvement with an intensive two-week parallel programming institute held at NCSA to prepare the students for a full-year of funded research. To date, the internship program has benefitted 120 undergraduate students and resulted in numerous papers being published by the students in the Journal of Computational Science Education (JOCSE) . Blue Waters has added substantial content to a repository of education and training materials, including 30 undergraduate course modules that are applicable to multiple disciplines. The repository facilitates broad dissemination of these and other related materials, which have been used to support workforce development at the high school, undergraduate and graduate levels. Education Allocations The initial proposal for the Blue Waters project requested that 1% of the available computing resources be devoted to educational activities to prepare a larger and more diverse computationally literate workforce. At that time, 1% of the system was a substantial commitment - providing more computational resources than were available to researchers via all of the other NSF funded HPC systems. Education allocations are available to faculty and staff at any US institution to support undergraduate and graduate courses, training sessions, workshops, webinars, institutes, and Research Experiences for Undergraduates (REU) programs. We encourage innovative approaches to educating the community. Requests range from one day training events to a full year program of structured learning, such as through internships and fellowships. Allocation requests typically range from 5,000 to 25,000 node hours, although allocations of larger amounts have been granted for programs serving large numbers of participants or for conducting more complex semester course requirements. Broadening Participation Allocations In order to engage a more diverse community of researchers, the Blue Waters project created a new allocations category for Broadening Participation. The purpose was to encourage principal investigators who were women, minorities or individuals at NSF designated EPSCoR institutions to apply for an allocation of time on the Blue Waters system. These were intended as start-up allocations of up to 200,000 node-hours to allow the research team to scale-up their codes to Blue Waters. Twenty-one teams from around the country were selected in the first year. Included among the Principal Investigators (PIs) are ten females and two underrepresented minorities. In addition, there are four female and eight underrepresented minority colleagues listed as co-PIs. Among the lead institutions, five are Minority Serving Institutions and ten are within EPSCoR jurisdictions. After working on the Blue Waters system for nearly a year, one of these teams received a PRAC allocation from NSF, which will allow the team to significantly advance their computational research. Graduate Fellowships The Blue Waters project offers a very unique federally supported program that provides PhD students with a full year of computational science and engineering research support. Each fellow receives an allocation of 50,000 node-hours to pursue their computational and/or data-enabled research on the Blue Waters system. The fellows also receive a $38,000 stipend. Each fellow is able to request up to $12,000 in tuition allowance to help offset their educational expenses. Each fellow is invited to attend the annual Blue Waters Symposium to make a formal presentation and display a poster to share their research progress with the other attendees. They are also encouraged to give a presentation of their Blue Waters supported research at a domain conference of their choosing. There are between four and 10 fellows selected each year through a very competitive application process that is open to students in all US academic institutions. After their fellowship year ends, the fellows are welcome to continue using the Blue Waters system to pursue their research while completing their PhD. They are also welcome to continue using the system during a subsequent postdoctoral appointment. Many of the fellows have gone on to faculty positions, postdoctoral positions, and professional positions in academia, government agencies and academic institutions. We continue to track the progress of each fellow to facilitate a longitudinal analysis of the impact of the fellowship program. Internships The Blue Waters Student Internship Program is designed to motivate and prepare the next generation of computational researchers by engaging them in year-long research projects. The Internship Program supports about 20 students each year, with a $5,000 stipend spread out over the full year of their appointment. The program welcomes applications from undergraduates at all degree granting US institutions. Each year, the program kicks-off by offering a two-week parallel programming intensive institute at NCSA that also engages the interns in learning to make effective use of the Blue Waters system. Following the institute, the students are matched with mentors to guide them through their year-long research project. The students are matched with a faculty member either on their own campus, or at another campus. Towards the end of their year-long research endeavors, the students apply to present a poster on their research project at the annual Blue Waters Symposium in the May/June timeframe. The faculty report that the combination of a two-week institute and support for a full year have proven to be very effective for the student and the project the students pursue. Journal of Computational Science Education All of the interns are encouraged to publish their research in the peer-reviewed Journal of Computational Science Education (JOCSE). The students are also encouraged to describe their experiences and the impacts of the program on their academic pursuits, and career goals. JOCSE accepts articles from the international community. Articles are encouraged that address the teaching and learning of computational science and engineering, the development and applications of instructional materials, projects, as well as innovative approaches for conducting workforce development. The editors welcome articles that address the assessment of materials or programs, methods for achieving improved learning outcomes, and innovative computational science programs. The journal articles and instructions for submissions are available at http://jocse.org/. Training The Blue Waters project conducts a variety of training events throughout the year to assist participants in learning computational and data enabled science and engineering methods, tools, and resources. The training is designed to prepare participants to make effective use of computing resources, with an emphasis on petascale computing. The training events include webinars, workshops, symposia, tutorials, presentations, hackathons, and other related activities. They are delivered as in-person events, as webcasts and as self-paced tutorials. HPC University Repository The HPC University portal was established to provide a mechanism for disseminating HPC related training and education material. It is built on the foundation and principles established by the Computational Science Education Reference Desk (CSERD) , which is among the collections funded by the National Science Digital Library (NSDL) funded by NSF. The Blue Waters team developed 30 “Undergraduate petascale modules” appropriate for teaching parallel computational modeling to undergraduate or graduate students in science and other STEM disciplines. These modules are among the vast collection of HPC related training and education materials available from this repository. The Blue Waters Symposium The Blue Waters Symposium is an annual gathering of Blue Waters staff, researchers, students, and professionals from among the computational science and engineering community. The Symposia participants share successes and challenges in utilizing large-scale heterogeneous computing systems. Each of the scientific teams using the Blue Waters system are asked to provide updates on their research, and to highlight how the petascale system has helped to advance their research. Nnationally and internationally recognized leaders are invited as keynote speakers to present innovative, impactful and at times controversial ideas that advance knowledge and provoke interactions among the attendees. There are numerous opportunities for the participants to discuss challenges, opportunities, and the future of scientific computing. The discussions often times result in new collaborations and cooperative ventures. Summary The Blue Waters project actively recruits students, faculty, professionals, and mentors in these activities from across the United States, with an emphasis on engaging women, minorities and people with disabilities. Since going into full-service operations in 2013, over 200 education and training allocations have been utilized for activities ranging from one-day workshops to two-week institutes. The Blue Waters project has engaged more than 3,700 people in learning to make effective use of computational and data-enabled science and engineering tools, resources, and methods. The participants in the activities came from 219 academic institutions, of which 65 are within EPSCoR jurisdictions. The impact and benefits have been widespread, including directly reaching people located in many foreign countries, as well as freely disseminating materials that have been downloaded and used by thousands of people world-wide. The Blue Waters project places a high importance on sharing what we have learned to help others to be even more successful in their own endeavors. We look forward to sharing our experiences at the ICCS 2019 Conference and fostering an exchange of lessons learned among the attendees.
Scott Lathrop, Aaron Weeden, Robert Panoff and Jennifer Houchins
260 Redesigning Interactive Educational Modules for Combinatorial Scientific Computing [abstract]
Abstract: Combinatorial scientific computing refers to the field of using combinatorial algorithms to solve problems in computational science and data science. Teaching even elementary topics from this area is difficult because it involves bridging the gap between scientific computing and graph theory. Furthermore, it is often necessary to understand not only the methodologies from mathematics and computer science, but also from different scientific domains from which the underlying problems arise. To enrich the learning process in combinatorial scientific computing, we designed and implemented a set of interactive educational modules called EXPLAIN. The central idea behind EXPLAIN is its focus on describing the equivalence of a problem in terms of scientific computing and graph theory. That is, in EXPLAIN, the scientific computing problem and its graph theoretical representation are treated as two sides of the same coin. The process of solving a problem is interactively explored by visualizing transformations on an object from scientific computing, simultaneously, with the corresponding transformations on a suitably defined graph. We describe the redesign of the EXPLAIN software with an emphasis on integrating a domain-specific scripting language and a hierarchical visualization for recursively defined problems.
M. Ali Rostami and Martin Bücker
262 A Learner-Centered Approach to Teaching Computational Modeling, Data Analysis, and Programming [abstract]
Abstract: One of the core missions of Michigan State University's new Department of Computational Mathematics, Science, and Engineering is to provide education in computational modeling and data science to MSU's undergraduate and graduate students. In this paper, we describe our creation of CMSE 201, "Introduction to Computational Modeling and Data Analysis," which is intended to be a standalone course teaching students core concepts in data analysis, data visualization, and computational modeling. More broadly, we discuss the education-research-based rationale behind the "flipped classroom" instructional model that we have chosen to use in CMSE 201, which has also informed the design of other courses taught in the department. We also explain the course'€™s design principles and implementation.
Devin Silvia, Brian O'Shea and Brian Danielak
253 Computational Thinking and Programming with Python for Aspiring Data Scientists [abstract]
Abstract: Today’s world is full of data. Data scientists are needed everywhere to design and implement the processes that analyze the data and turn them into meaningful information. Consequently, it is not surprising that students from all disciplines increasingly feel the need of having to learn how to build software for their solving their data analysis problems. The course "Computational Thinking and Programming in Python" at Utrecht University has been designed for accommodating the needs of these students. Computational thinking is about expressing problems and their solutions in ways that a computer could execute. It is considered one of the fundamental skills of the 21st century. To develop student’s computational thinking skills for data analysis problems, the course covers ways for systematically approaching such problems (CRISP-DM model, reference processes), abstract program description techniques (UML diagrams) and elementary software design principles (reuse, modularization). Programming is the process of designing and building an executable computer program for accomplishing a specific computing task. The course introduces students to programming with Python, which is currently one of the most popular programming languages in data science. After familiarization with the basics, the course addresses more advanced topics, such as access to web services, statistical analyses with the pandas package and data visualization with the matplotlib package. Furthermore, there are some lectures on additional practical topics like the FAIR principles and workflow management systems. Every lecture is accompanied by a practical BYOD lab session where students can work on the weekly homework assignments with support of the teaching assistants. To practice the work with more complex, realistic data analysis problems, students furthermore work on small group projects during the course, and present their results at the end. The presentation will discuss the specific learning goals and design of the course, also in light of practical conditions such as class size and teaching staff available. Furthermore, it will elaborate on the specific challenges involved, experiences and lessons learned that can be beneficial for computational science educators teaching similar courses.
Anna-Lena Lamprecht

Workshop on Teaching Computational Science (WTCS) Session 2

Time and Date: 14:20 - 16:00 on 13th June 2019

Room: 0.3

Chair: Nia Alexandrov

537 “Two Things Interact and Something Happens” Using Analogy to support Interdisciplinary Thinking in Computational Science [abstract]
Abstract: Many computational models across disciplines are based on a few fundamental analogies, and exposing this truth helps students understand the fundamentals of the science, the mathematics, and the computing. In this talk I will demonstrate introductory models from ecology, medicine, and physics to show how students can better appreciate the interdisciplinary nature of computational science instead of falling into the old “silo” way of thinking and modeling.
Robert Panoff
518 Enabling Interdisciplinary Instruction inComputer Science and Humanities: An Innovative Teaching and Learning Model Customizedfor Small Liberal Arts Colleges [abstract]
Abstract: Infiltration of data-driven computational methods of humanities research has generated mutual interests between the two communities of computer science and humanities. Larger institutions have adopted drastic structural reforms to meet the challenges to bridge the two fields. Successful examples include the integrated major programs launched at Stanford University and the collaborative workshop at Carnegie Mellon University. These types of exploratory experiments require 1) intensive resources as well as 2) strong support of faculty and administration. At a small college, both can be luxuries. We presented an innovative model to carry out effective synchronized courses of computational humanities and digital humanities that pulls together efforts between two small programs and needs little additional support. This paper reviews the proposal, design, and delivery of a pair of interdisciplinary graduate courses in the small college setting. We discussed the details of our implementation and provided our observations and recommendations.
William Crum, Aaron Angello, Xinlian Liu and Corey Campion
271 A project-based course on software development for (engineering) research [abstract]
Abstract: This paper describes the motivation and design of a 10-week graduate course that teaches practices for developing research software; although offered by an engineering program, the content applies broadly to any field of scientific research where software may be developed. Topics taught in the course include local and remote version control, licensing and copyright, structuring Python modules, testing and test coverage, continuous integration, packaging and distribution, open science, software citation, and reproducibility basics, among others. Lectures are supplemented by in-class activities and discussions, and all course material is shared openly via GitHub. Coursework is heavily based on a single, term-long project where students individually develop a software package targeted at their own research topic; all contributions must be submitted as pull requests and reviewed/merged by other students. The course was initially offered in Spring 2018 with 17 students enrolled, and will be taught again in Spring 2019.
Kyle Niemeyer
490 Programming paradigms for computational science: three fundamental models [abstract]
Abstract: The widespread of data science languages and libraries have raised new interest in teaching computational science programming that leverage the capabilities of both single-computer and cluster-based computation infrastructures. Some of the programming paradigms are converging, yet there are specialized uses and cases that require learners to switch from one to another. In this paper, we report on our experience and action research with more than ten cohorts of mixed background students in postgraduate level data science classes. We first discuss the key mental models found to be essential to understanding problems, and then review the three fundamental models that students must face when coding and their interrelation. Finally, we discuss how decision criteria for choosing frameworks can be introduced to students.
Miguel-Angel Sicilia, Elena Garcia-Barriocanal, Salvador Sanchez-Alonso and Marçal Mora Cantallops

Workshop on Teaching Computational Science (WTCS) Session 3

Time and Date: 16:30 - 18:10 on 13th June 2019

Room: 0.3

Chair: Angela Shiflet

43 Resource for Undergraduate Research Projects in Mathematical and Computational Biology [abstract]
Abstract: A substantial hurdle faced by undergraduate mathematics faculty and students wishing to embark on collaborative research projects is not knowing quite where to begin. This is true of any field in mathematics, including the more applied areas of mathematical and computational biology, which is the focus of a new volume of the FURM (Foundations for Undergraduate Research in Mathematics) book series published by Birkhauser. Topics that might afford productive inroads for new student researchers are often not obvious, even to experts, and finding unanswered questions that are well-suited to student projects is time-consuming. The volume, which is the topic of this talk, aims to reduce the challenges in starting faculty-student collaborations by presenting self-contained, undergraduate-accessible articles, each of which provides directions for new research in mathematical and computational biology, enough background to get started, and recommendations for further reading. The content spans the breadth of mathematical and computational biology, including many topics that are appropriate for student-faculty exploration and are not normally addressed by the undergraduate curriculum (Hidden Markov Models, e.g.). Each article in this collection has been written with an eye toward generating new research collaborations between undergraduates and faculty. As such, each article presents background material sufficient for preparing readers to tackle specific open problems, which the material also includes. Moreover, authors have carefully cultivated lists of references intended to launch productive ongoing investigations for readers wanting to delve more deeply into a given field. The intended audience is broad: undergraduate mathematics faculty, with a particular emphasis on faculty interested in (but not necessarily experienced in) mathematical and computational biology, and students with sophomore-to junior-level coursework as a background. Undergraduate faculty wishing to direct research will benefit from the many project ideas suggested by the authors, as will faculty simply wishing to expand their own research repertoire in a new direction. Undergraduate mathematics students will appreciate the accessible, yet rigorous treatment of topics previously relegated to the graduate curriculum, some of these with fairly minimal prerequisite assumptions (e.g., calculus and linear algebra). The primary intended audience is undergraduate students, typically in STEM majors, with an interest in pursuing undergraduate research. A secondary audience is applied mathematics and computer science faculty interested in mentoring undergraduate research but unsure of how to get started. A further potential source of interest is among math faculty who are interested in learning a new area of mathematics. This talk will present information about the volume and some of the included material, such as the following: “Using Neural Networks to Identify Bird Species from Birdsong Samples,” “Using Regularized Singularities to Model Stokes Flow: A Study of Fluid Dynamics Induced by Metachronal Ciliary Waves,” “Network Structure and Stochastic Dynamics of Biological Systems,” “Simulating Bacterial Growth, Competition, and Resistance with Agent-Based Models and Laboratory Experiments,” “Phase Sensitivity in Ecological Oscillators,” “What Are the Chances? – Hidden Markov Models,” and “A Tour of the Basic Reproductive Number and the Next Generation of Researchers.”
Hannah Highlander, Carrie Eaton, Alex Capaldi, Angela Shiflet and George Shiflet
151 Numerical Analysis project in ODEs for undergraduate students [abstract]
Abstract: Designing good projects involving programming in numerical analysis for large groups of students with different backgrounds is a challenging task. The assignment has to be manageable for the average student, but to additionally inspire the better students it is preferable that it has some depth and leads to them to think about the subject. We describe a project that was assigned to the students of an introductory Numerical Analysis course at the University of Iceland. The assignment is to numerically compute the length of solution trajectories of a system of ordinary differential equations with a stable equilibrium point. While not difficult to do, the results are somewhat surprising and got the better students to get interested in what was happening. We describe the project, its solution using Matlab, and the underlying mathematics in some detail.
Sigurdur Hafstein
514 Computational Modeling at Rose-Hulman Institute of Technology [abstract]
Abstract: In 2008 Rose-Hulman Institute of Technology in Terre Haute, Indiana, USA introduced a new Computational Science minor built around two key junior-level courses: Introduction to Computational Science and a follow-on, Computational Modeling. The latter course adopted an innovative approach to teaching students to work effectively in teams to develop, implement, test, and refine nontrivial computational models and simulations in a lab-like setting, then use them to investigate a scientific phenomenon, with an emphasis on models based primarily around systems of ordinary differential equations solved in Matlab, but also including models that were discrete, stochastic, and so on. Students teams write several reports during the term, spending one to two weeks per project. This course sequence has led to a textbook by two of the faculty involved in the program (to be published in Spring 2019) which covers material for both courses. In 2012 the minor was expanded to an undergraduate major in Computational Science that requires additional coursework including a full course in parallel computing, separate courses in analytical and numerical (finite differences or finite elements, at the student’s choice) partial differential equations, and other areas. But the Computational Modeling course—popular enough that it is frequently offered off-schedule as an independent study for small groups of students—also served as the inspiration for the more recent Bioinformatics course that is part of the new undergraduate Biomathematics major, which also requires students to take the Introduction to Computational Science course. This course uses a similar approach but with a narrower focus; less emphasis is placed on learning to create and utilize simulations in teams, but lengthier and more detailed reports are expected. Again, there is a strong focus on performing computational science, that is, on using these models to perform computational experiments and to address scientific questions in a detailed and convincing manner. Meanwhile, an even more recent Data Science minor—expected to be expanded to a major in the near future—incorporates aspects of these same courses, and new courses continue to be created along these lines; for example, I will be offering a trial Computational Data Science course for the first time during Spring quarter of 2019. A prototype second course in computational modeling, with the main course as a prerequisite, will be given a soft trial the same term. In this talk I will briefly discuss the structure of the curricula of these majors and minors, emphasizing the Computational Science major and minor, then focus on how computational modeling skills are developed in Rose-Hulman’s Computational Science and Biomathematics students via the Computational Modeling and Bioinformatics courses: Philosophy, syllabi, materials, effective use of classroom time in a lab-like atmosphere, and so on.
Jeffery Leader
102 Growing an inclusive scientific computing community at Boise State University [abstract]
Abstract: In this work we describe the results of campus-wide efforts to grow a campus computing community over a four-year period, strongly leveraging The Carpentries pedagogy. We discuss (1) Development of a required introductory programming course within a materials science curriculum, (2) Impact of regular Software Carpentry training events, and (3) Outcomes of an interdisciplinary Vertically Integrated Projects course entitled "Computing Across Campus" aimed at supporting student researchers. We find that pedagogical approaches focused on lowering cognitive load are effective for efficiently training competent computational science practitioners as evidenced by student research outputs (posters, papers, talks, allocations, awards). We also find that creating computing demand from students requires strategic infrastructure planning and describe obstacles, challenges, and solutions that arose over this four-year period.
Eric Jankowski