Workshops

Wednesday

101: Embracing our Future: CS Courses and Curriculum for Non-CS-majors

Paul Ruvolo, Darakhshan Mir and Zachary Dodds

Wednesday, February 27, 7:00 pm - 10:00 pm

Is your CS department feeling squeezed between a growing CS major and an even-faster-growing group of non-majors seeking computing skills and experiences? Join us for an overview of three departments' approaches to serving non-CS-majors. Those who bring laptops are invited to try out facets of the curricula. Opportunities to plan for the post-CS-major future are open to all.

CS majors are certainly not disappearing, but the interest and demand for computing from non-CS majors is a far larger part of our future, as members of CS departments, than those on the disciplinary-major path. As computing evolves from valuable specialty to a professional literacy, CS departments face several challenges. How do we support both the traditional CS-major path and provide computing curriculum to a far broader audience? How do we partner with sibling departments in order to foster their sense of ownership and identity with computing's mindsets and toolsets? And, perhaps especially poignant in 2018, how do we invest energy into the CS-for-All future during a time that demand in our major pathway is at historic highs? This workshop features three faculty members who have tried to answer these questions within the context of their departments. This workshop will share the results of those experiments, will offer hands-on exploration of a representative subset of the curricular materials, and will scaffold a strategic discussion of CS's future and identity in the era of "CS for All."

102: Exploring Parallel Computing with OpenMP on the Raspberry Pi

Suzanne Matthews, Joel Adams, Richard Brown and Elizabeth Shoop

Wednesday, February 27, 7:00 pm - 10:00 pm

Ever want to learn shared-memory programming? It’s easy as Pi! Join CSinParallel in this fun repeat of our very successful 2017 SIGCSE workshop, in which you will explore how to spread the workload of computationally-intensive workloads over the different cores of a Raspberry Pi, a quad-core single board computer that retails for $35.00. Attendees will learn the basics of OpenMP, an industry standard for shared memory programming. In Part I of the workshop, participants will set up and explore a Raspberry Pi multi-core computer in small teams. In Part II, each team will use the parallel capabilities of the Raspberry Pi to explore parallel computation through the use of OpenMP "patternlets" published on CSinParallel.org. In Part III, participants will investigate applications of the Raspberry Pi to parallel computations such as image processing and population dynamics, using OpenMP. This workshop is a great choice for attendees interested in exploring parallelism and the raspberry pi, and for any educator interested in a fun new way to inject parallelism into their classrooms!

Parallel computing is one of the new knowledge units in the ACM/IEEE CS 2013 curriculum recommendations. This workshop will present the Raspberry Pi as an inexpensive hardware platform for providing each student with her own parallel processor. The tactile benefits of each student having her own machine and being able to take full advantage of its multicore capabilities are significant. In this hands-on workshop, we show how parallelism can be used to spread the workload of compute-intensive applications across the multiple cores of a Raspberry Pi, and explore its use as an inexpensive hardware platform for teaching parallel computing. CS educators who are interested in learning about parallel computing, OpenMP, and how to teach these concepts on a Raspberry Pi are encouraged to attend. Participants will enjoy a hands-on hardware/software experience, exploring how parallel computations operate and work in practice. In Part I of the workshop, participants will set up and explore a Raspberry Pi multi-core computer in small teams. In Part II, each team will use the parallel capabilities of the Raspberry Pi to explore parallel computation through the use of OpenMP "patternlets" published on CSinParallel.org. In Part III, participants will investigate applications of the Raspberry Pi to parallel computations such as image processing and population dynamics, using OpenMP. All materials from this workshop will be freely available from CSinParallel.org.

103: Transform Your Computer Science Course with Specifications Grading

James McGuffee, David Largent and Christian Roberson

Wednesday, February 27, 7:00 pm - 10:00 pm

Are you tired of spending time dealing with students that complain over fractions of points? What if there was a better way to do grading that actually measured student learning outcomes, caused less arguments, and took less time? Well, there is and it’s called specifications grading. This workshop will explain what specifications grading is and give you an opportunity to apply these techniques to the actual computer science courses that you teach. Please bring one or more of your current syllabi and/or assignment instructions with you to this interactive workshop. You will leave the workshop with a plan to modify at least one of your courses. You will also receive a set of handouts and sample materials created by the presenters.

As proposed by Linda B. Nilson in Specifications Grading: Restoring Rigor, Motivating Students, and Saving Faculty Time, specifications grading is an assessment construct that relies on pass/fail grading of assignments and assessments, the structuring of course content into modules linked to learning outcomes, and the bundling of assignments and assessments within those modules. One of the intentions of this type of course grading construct is to more closely align assessment with student attainment of intended learning outcomes. While there has been very visible work in incorporating specifications grading in some academic areas (e.g. in mathematics), examples of the use of specifications grading in computer science courses are less common. The goal of this workshop is to introduce the concepts of specifications grading, explain how to apply these concepts to a wide range of computing courses, and have the participants apply these concepts to one of their current or upcoming computer science courses. Each participant should leave the workshop with at least one revised course syllabus or assignment that incorporates specifications grading.

104: Narratives and Evaluation: How to Write Competitive NSF CS Education Proposals

Stephanie E. August, Mark Pauley, S. Megan Che, Eileen Kraemer and Murali Sitaraman

Wednesday, February 27, 7:00 pm - 10:00 pm

What does it take to ensure that reviewers find merit in your NSF proposal? Join us for an inside look as we analyze projects, learn to identify key components, and examine how to clearly present project ideas and plans. This interactive workshop leads participants through each component by introducing related issues, engaging participants in group exercises designed to explore and share their understanding of the issues, and providing guidance on these issues. Examples include competitive and non-competitive projects and a Top Ten List of Do's and Don'ts. Approaches for volunteering to review and the elements of a good review are also covered. Presenters include both experienced principal investigators and NSF program officers. Please bring a laptop for viewing examples and review templates. One night of lodging and workshop registration fees will be covered by an NSF grant for the first 20 participants who submit their own one-page proposal summary to the organizers one month prior to the workshop and participate fully in the workshop. For further information see: https://people.cs.clemson.edu/~etkraem/UPCSEd/

You develop a plan for testing the prototype for a new learning strategy in class or across institutions. How can you ensure that your plan is clearly understood by reviewers and the managing NSF program officer? What goes through the reviewer's mind once a proposal is submitted? What prompts one proposal to be recommended for funding but another declined? Close examination of the panel review process can inform proposal writing and ensure that reviewers will understand an idea, identify its merit, and value a PI's vision of how the work will broaden participation in STEM education. This workshop steps through the NSF proposal review process from submission of proposal to award or decline, touching on NSF intellectual merit and broader impact criteria, mapping the project pipeline to appropriate evaluation, volunteering to review, and elements of a good review. Participants gain insight into writing a good review and improving one's own proposal writing. The interactive workshop leads participants through each topic by introducing related issues, engaging participants in group exercises designed to explore and share their understanding of the issues, and providing "expert" opinion on these issues. Examples include funded and non-funded projects and a Top Ten List of Do's and Don'ts. Laptop recommended. One night of lodging and workshop registration fees will be covered by an NSF grant for the first 20 participants who submit their own one-page proposal summary to the organizers one month prior to the workshop and participate fully in the workshop. For further information see: https://people.cs.clemson.edu/~etkraem/UPCSEd/

105: Bringing Real-World Data and Visualizations of Student-Implemented Data Structures into Sophomore CS courses Using BRIDGES

Kalpathi Subramanian, Jamie Payton and Erik Saule

Wednesday, February 27, 7:00 pm - 10:00 pm

Do you teach a Data Structure course? Here is an opportunity for you. We will be running a BRIDGES training workshop at ACM SIGCSE 2019. BRIDGES provides an infrastructure for data structures/algorithms courses that facilitates bringing in interesting real-world data into your routine course assignments, and lets your students visualize the data structures they themselves build. See the examples at http:// bridgesuncc.github.io/ to see what BRIDGES can do for you! Bring a laptop!

This workshop introduces participants to the concepts and use of BRIDGES, a software infrastructure for programming assignments in data structures and algorithms courses. BRIDGES provides two key capabilities: (1) easy to use interface to real world datasets spanning social networks, entertainment (movies on IMDB, song lyrics), scientific data (real-time USGIS Earthquake Data), civic issues (crime data), and literature (books); and (2) a visualization of the acquired data can be used in assignments by students to populate their implemented data structures, including the capability to bring out attributes of the dataset. The visualizations are displayed on the BRIDGES website and are easily shared (with family, friends, peers, etc) via a weblink. Workshop attendees will engage in hands-on experience with BRIDGES and multiple datasets and will have the opportunity to discuss how BRIDGES can be used in their own courses, as well as partner with the BRIDGES team.

106: Guiding Students to Discover CS Concepts and Develop Process Skills Using POGIL

Chris Mayfield, Debra Duke and Margarethe Posch

Wednesday, February 27, 7:00 pm - 10:00 pm

Come experience POGIL as a student! This hands-on workshop is designed for CS instructors who have never taught with (or even heard of) Process Oriented Guided Inquiry Learning. If you are interested in teaching and learning approaches that are described as active, constructivist, or discovery-based, including both college and high school faculty, join us.

This workshop introduces Process-Oriented Guided Inquiry Learning (POGIL) to anyone who teaches CS or related subjects. In a POGIL classroom, teams of 3-4 learners work on activities with a particular structure based on learning cycles. Through scripted inquiry and investigation, learners discover concepts and construct their own knowledge. Using assigned team roles and other scaffolding, learners develop process skills and individual responsibility. The teacher is not a lecturer, but an active facilitator who helps all students to be engaged and achieve the learning objectives. POGIL is an evidence-based approach that has been shown to improve student performance significantly. Workshop participants will work through POGIL activities as students and complete meta-activities designed to introduce core POGIL concepts, practices, and benefits. We will share POGIL materials for a variety of CS courses. For more information, see http://IntroCSpogil.org and http://pogil.org, where you will find activities for CS1, CS2, and other courses. Laptops optional.

107: Security Labs for Software Defined Networks in CloudLab

Younghee Park, Hongxin Hu and Xiaohong Yuan

Wednesday, February 27, 7:00 pm - 10:00 pm

Software-Defined Networking (SDN) has been changing inflexible networks in software-based programmable networks for more flexibility, scalability, and visibility into networking. At the same time, it brings many new security challenges, but there are very few educational materials for students in learning about SDN security. In this workshop, we present our newly designed SDN security education materials, which can be used to meet the ever-increasing demand for high-quality cybersecurity professionals with expertise in SDN security. For effective hands-on learning, the security labs are designed in CloudLab, a free open cloud platform supported by NSF. Participants receive handouts describing security problems, lab instructions, techniques to use CloudLab, and worksheets for Q&A, which can be directly used for their networking classes at their home institutions. The workshop proceeds in three sessions in which we: present the way to use CloudLab and to understand SDN; practice in simulating three networking attacks in SDN on CloudLab; and discussion and critique in small groups for new SDN security labs.

Software-Defined Networking (SDN) has been changing inflexible networks in software-based programmable networks for more flexibility, scalability, and visibility into networking. At the same time, it brings many new security challenges, but there are very few educational materials for students in learning about SDN security. In this workshop, we present our newly designed SDN security education materials, which can be used to meet the ever-increasing demand for high-quality cybersecurity professionals with expertise in SDN security. For effective hands-on learning, the security labs are designed in CloudLab, a free open cloud platform supported by NSF. Participants receive handouts describing security problems, lab instructions, techniques to use CloudLab, and worksheets for Q&A, which can be directly used for their networking classes at their home institutions. The workshop proceeds in three sessions in which we: present the way to use CloudLab and to understand SDN; practice in simulating three networking attacks in SDN on CloudLab; and discussion and critique in small groups for new SDN security labs. Further information is at http://sdn-nfv-seclab.com/lab.html. After participating in these well-designed CloudLab-based security labs, they will have a better understanding of SDN and its security problems.

108: Programming Smart Contracts in Ethereum Blockchain using Solidity

Debasis Bhattacharya

Wednesday, February 27, 7:00 pm - 10:00 pm

Come to this workshop to understand Ethereum Blockchains and write a smart contract using the Solidity programming language! In this workshop, you will have the opportunity to learn about programming smart contracts using blockchains and how to teach this technology in the classroom. We will cover the basics of the Solidity programming language used to create smart contracts. Please bring a laptop so that we can access https://ethereum.org

This workshop introduces participants to programming smart contracts using Ethereum Blockchains and the Solidity programming language. Cryptocurrencies such as Bitcoins use Blockchains and Smart Contracts to enforce transactions. Given the popularity of Bitcoins and related technologies in the press, this module provides a template for CS educators to introduce the Blockchain technology into their classrooms. Participants receive handouts describing sample programming techniques and worksheets for creating basic smart contracts. The workshop proceeds in three sessions in which we: present the underlying technology of Ethereum; practice the creation of smart contracts using the Solidity programming language; and discuss the implementation of this module in our classrooms in small groups. Further information, sample code and workshop handouts are at: http://maui.hawaii.edu/cybersecurity.

109: Assessing writing in CS: A hands-on workshop

Phillip Barry, Mia Minnes and Stephanie Taylor

Wednesday, February 27, 7:00 pm - 10:00 pm

Writing and Computer Science may not mix in the public perception of the developer writing code in some obscure language. But successful computer scientists know the importance of communication, particularly written communication, in pursuing a successful career. Writing as part of learning also improves retention and gives additional feedback to faculty and the students about comprehension. The barriers to adding writing to CS courses are many: we don’t feel qualified, we don’t feel like we have time, we’re worried about grading, or we don’t know how to scale writing exercises to large classes. If you want to enrich your curriculum with writing, but aren’t sure how to get started, this workshop is for you. Through a combination of short presentations and hands-on exercises, participants will develop and evaluate grading rubrics, explore different goals and templates for writing exercises, and work through a set of strategies for scaling writing exercises to large classes. Along the way, you’ll realize you know more about writing than you thought and be ready to enrich your CS curriculum and better prepare your students for success.

Although many educators acknowledge the importance of written communication in computer science education, there are a number of challenges to using writing assignments in classes. These include assessing writing effectively and efficiently, especially in larger classes. The workshop will consist of a combination of short presentations, hands-on exercises, and discussion of a number of items related to writing assessment: the role of writing in computer science classes and how different types of assessment apply to different types of writing; how clarifying the goals of writing assignments often leads to better assessment; different techniques, such as rubrics, for grading writing; and strategies — such as peer review and breaking a substantial writing assignment into a sequence of subassignments — for scaling writing and its assessment to larger classes.

110: Computing infrastructure and curriculum design for introductory data science

Mine Cetinkaya-Rundel

Wednesday, February 27, 7:00 pm - 10:00 pm

Interested in teaching introductory data science? running your course on GitHub, and doing so efficiently? what first exposure to computing with R might look like? what the tidyverse is? If your answer is yes to any of these, this workshop is for you! We will showcase and discuss the pedagogical considerations behind the introductory data science curriculum presented in Data Science in a Box (datasciencebox.org), get hands on practice with tooling, and share a complete set of open source course materials, including teacher facing documentation and student facing learning resources and assessments.

The goal of this workshop is to equip educators with concrete information on content and infrastructure for designing and painlessly running a modern data science course. This is a three-part workshop. Part 1 will outline a curriculum for an introductory data science course and discuss pedagogical decisions that go into the choice of topics and concepts, programming language (R) and syntax (primarily tidyverse), emphasis on literate programming for reproducibility (with R Markdown). Part 2 will discuss infrastructure choices around teaching data science with R: RStudio as an integrated development environment, cloud-based access with RStudio Cloud and Server, version control with Git, and collaboration with GitHub. Part 3 will focus on classroom management on GitHub (with ghclass) and automated feedback with continuous integration tools (e.g. Wercker). Workshop attendees will work through several exercises from the course and get first-hand experience with using the tool-chains and techniques described above. All workshop content, including teacher facing documentation and student facing course materials, will also be available to participants via datasciencebox.org.

Friday

301: Adopting, Integrating, and Evaluating Computational Creativity Exercises to Improve Student Learning

Leen-Kiat Soh and Markeya Peteranetz

Friday, March 1, 7:00 pm - 10:00 pm

In this workshop, we will introduce you to a suite of Computational Creativity Exercises (CCEs) and prepare you to use them in your courses. CCEs address core aspects of computational thinking while exposing students to creative thinking skills and can be adapted for use in your own courses. Activities such as writing a story in separate chapters and then merging the chapters to form a coherent whole or designing strategies for testing an alien health machine require students to apply computational thinking to unorthodox contexts and situations, promoting creative application of CS knowledge and skills. CCEs are group-based, promote active learning, and are designed to foster collaborative problem solving necessary in today’s diverse workplace. Engage in a hands-on demo of CCEs and learn how to adapt CCEs for use in your classes, including technical support from the IC2Think Project team. Learn about the rigorous research studies behind the development, design and administration of these CCEs, including the instruments we use to evaluate the CCEs. Let’s compute, create, and collaborate!

In this workshop, participants will learn how to integrate in their classes computational thinking and creative thinking activities that have been shown via rigorous research to significantly improve student learning and performance. Specifically, participants will be familiarized with the suite of Computational Creativity Exercises (non-programming-based, group-based, active learning exercises), take part in completing two of the exercises, learn how to integrate and adapt them into their courses, and be exposed to the educational research studies behind the development, design, and administration of these exercises. Participants will also learn how to conduct evidence-based, educational research studies. Workshop sessions will include presentations, panel-based Q&A, breakout group discussions, and hands-on activities.

302: Using Raspberry Pi as a Platform for Teaching Cybersecurity Concepts

Andreea Cotoranu and Li-Chiou Chen

Friday, March 1, 7:00 pm - 10:00 pm

Are you a high school or college educator teaching cybersecurity topics for the first time or looking for a new approach to teach specific topics with hands-on activities? This workshop will introduce Raspberry Pi as a teaching platform for topics such as network traffic analysis, cryptography or web security. We will discuss the Raspberry Pi hardware and software requirements, and will demonstrate network traffic analysis using Wireshark. Participant will receive a fully configured Raspberry Pi kit to use during the workshop and then take home at the end. Manuals on Raspberry Pi configuration on both Windows and Mac platforms, as well as sample lesson plans on network analysis and its security implications will be shared. The workshop will send all participants home with flexible tools and new expertise in implementing cybersecurity curricula. Bring a laptop with an Ethernet port or adapter, and ensure that you have full administrator privileges to configure settings and install software on your device. Seats are limited.

The goal of the workshop is to assist high school and college educators with implementing cybersecurity into their current curriculum. The workshop will introduce participants to Raspberry Pi as a platform for teaching cybersecurity concepts. The following topics will be highlighted: network traffic analysis, public/private key encryption, and web certificates. In particular, the Raspberry Pi environment will be used to demonstrate network traffic analysis using Wireshark. Each participant will be provided with a Raspberry Pi kit which they will use during the workshop and then take home at the end. Each kit will be imaged with a customized Raspbian OS, with SSH server, X11, and various cryptography utilities installed and enabled. Participants will be provided with lab manuals on how to configure the Raspberry Pi on both Windows and Mac platforms, as well as sample lesson plans on network analysis and its security implications. The workshop will send all participants home with flexible tools and new expertise in implementing cybersecurity curricula.

303: Using Subgoal Labeling in Teaching CS1

Briana Morrison, Lauren Margulieux and Adrienne Decker

Friday, March 1, 7:00 pm - 10:00 pm

Subgoal labeling is a technique for increasing student understanding of introductory programming concepts and problem-solving performance. Come participate in this workshop to find out how to incorporate subgoal labeling into your introductory programming classroom. Examples, exercises, and assessments will be shared as well as experiences using this technique. You will leave with access to subgoal labels, worked examples, and practice for common topics in an imperative Java-based CS1. All examples, practice problems, and assessments will be available for Python by Fall 2019. Participants will be reimbursed for the workshop registration fee from an NSF grant.

Subgoal labeling is an instructional design framework for breaking down problems into pieces that are small enough for novices to grasp, and often difficult for instructors (i.e., experts) to articulate. Subgoal labels have been shown to improve student performance during problem solving in disciplines both in and out of computing. Improved student performance occurs because subgoal labels improve student transfer and retention of knowledge. With support from NSF (DUE-1712025, #1712231), subgoal labels have been identified and integrated into a CS1 course (variables, expressions, conditionals, loops, arrays, classes). This workshop will introduce participants to the materials and demonstrate how the subgoal labels and worked examples are integrated throughout the course. Materials include over 100 worked examples and practice problem pairs that increase in complexity and difficulty within each topic. The materials are designed to be integrated into CS1 courses as homework or classroom examples and activities. Assessment of topics using subgoal labels will also be discussed. Participants will also engage in an activity where they create an example for their own course using subgoal labels. Laptop recommended.

304: Micro:bit Magic: Engaging K-12, CS1/2, and non-majors with IoT & Embedded

Bill Siever and Michael Rogers

Friday, March 1, 7:00 pm - 10:00 pm

There's never enough time to fully explore during workshops, so participants will get a micro:bit and additional components to take home!

Are you interested in a fun way to introduce a variety of students to significant contemporary CS topics, like wireless networking, robotics, and the Internet of Things (IoT)? Do you want to do so using a platform that is cheap, has a low-barrier to entry, but where learning can translate to the real world and where advanced students can pursue advanced topics? If so, you need a micro:bit! The micro:bit is a platform developed by the British Broadcasting Corporation (BBC) to encourage children to pursue computing and electronics. Although designed for children, its capabilities are sufficient for a variety of postsecondary applications. It includes a 32-bit processor, lights, buttons, an accelerometer, digital I/O, and wireless communication, making it ideal for wearables and robotics. It also leverages some of the latest trends in introductory computing, like support for block-based languages (àla Scratch), while also being sophisticated enough for complex topics in Operating Systems and Networking. This workshop will introduce the micro:bit and focus on engaging, lightweight coverage of complex topics, including robotics, mesh networks, and IoT. Participants will work through classroom-ready exercises suitable for K-12 workshops, student recruiting events, CS1/2, or as bootstrap topics in IoT courses. The workshop will include some subjects not commonly covered in existing micro:bit material, like integration with mobile apps and IoT applications. Participants will be provided with hardware but will need a laptop with internet access and a mobile device (any OSes).

305: Integrating Agent-based Modeling in STEM Classes–From Blocks to Text and Back?

Connor Bain and Gabriella Anton

Friday, March 1, 7:00 pm - 10:00 pm

Come learn how to integrate computational thinking and computer science into STEM classrooms with the power of agent-based modeling. Agent-based modeling (ABM) is a form of computational modeling whereby a phenomenon is modeled in terms of agents and their interactions. By looking at scientific phenomenon using ABMs, students can learn to understand the micro interactions that are responsible for so many of the seemingly complex systems in the world around them. In addition, by integrating CT skills into science classrooms, we can simultaneously broaden participation in computing, provide a more authentic scientific experience for learners, and encourage deeper scientific content learning. In this hands-on workshop, we introduce participants to two parallel agent-based modeling environments: NetTango (Olson & Horn, 2011), a blocks-based language, and NetLogo (Wilensky, 1999), a text-based language. The workshop will focus on contextualizing agent-based modeling activities within high school STEM classrooms, allowing participants to explore how computer science can be integrated into existing high school STEM curricula. Over the course of the workshop, participants will gain first-hand experience with ABM and how to design ABM activities in classrooms using NetTango and NetLogo. In addition, the workshop will feature open discussions in which participants will discuss the learning trajectories and affordances of the different programming modalities, brainstorm models that could be built for student exploration, and design activities that incorporate both scientific and computer science content for existing curricula.

In this hands-on workshop, we introduce participants to two parallel agent-based modeling environments: NetTango (Olson & Horn, 2011), a blocks-based language, and NetLogo (Wilensky, 1999), a text-based language. The workshop will focus on contextualizing agent-based modeling activities within high school STEM classrooms, allowing participants to explore how computer science can be integrated into existing high school STEM curricula. Over the course of the workshop, participants will gain first-hand experience with agent-based modeling (ABM) and how to design ABM activities in classrooms using NetTango and NetLogo. In addition, the workshop will feature open discussions in which participants will discuss the learning trajectories and affordances of the different programming modalities, brainstorm models that could be built for student exploration, and design activities that incorporate both scientific and computer science content for existing curricula.

306: SciGirls Code: Creative Robotics for Tween Girls in Out of School Time

Joan Freese, Heather Benedict, Sarah Carter, Katie Hessen, Karen Peterson and Cassandra Scharber

Friday, March 1, 7:00 pm - 10:00 pm

Tween girls <3 CS! In this workshop, educators will learn strategies, curriculum, and technology that can be employed to engage middle school girls in robotics. Participants will learn to code the Hummingbird robot and build a creature out of recycled materials and craft supplies. Once their creature is built, they will make it come alive!

This workshop introduces participants to SciGirls Code, a unique, connected learning model for engaging middle school girls in computer science (CS) in out of school time. The pilot project, which ran nationally at 16 sites across the United States in 2017-18, included: three curriculum strands (mobile apps, robotics, and e-textiles); role model training for female technology professionals; professional development for informal STEM educators; and a research study that investigates the ways in which learning experiences impact the development of girls’ computational thinking as well as their interest and attitudes toward computer science. Workshop participants will learn best strategies for engaging girls in CS and see how those strategies play out in a creative robotics activity using Hummingbird robots. (See https://sites.google.com/tpt.org/scigirlscode/robotics/12-hummingbird-art-bot.)

307: Competency-Based Education: The Future of Learning

Amardeep Kahlon, Linda Smarzik and Ann Kennedy

Friday, March 1, 7:00 pm - 10:00 pm

With apologies to Shakespeare - to cBE or not to cBE? Computer Science is especially suited for competency-based education (CBE) as clear and measurable competencies can be defined in this field. Come to this workshop and learn what CBE is and what it is not, why it is important, how to take a traditional curriculum to CBE, quality standards for CBE programs, and about authentic assessments to measure competencies. A version of this workshop has been offered at many venues including the SXSW EDU International Conference. Participants will leave with a workbook and a list of CBE resources. Target Audience: This workshop is designed for faculty, administrators, and instructional designers from all levels of institutions: undergraduate, including community colleges, and graduate degree granting institutions.

Competency-based education (CBE) has been the focus of much attention lately –from institutions, employers, and policy makers alike. In traditional education, time is the constant and learning becomes the variable. However, in CBE learning is the constant and time becomes the variable. CBE allows a student to move at his/her own pace, can cut the total cost to degree, and also provides a very clear snapshot to the employer about the abilities of the student. This workshop introduces participants to competency-based education (CBE). A major emphasis will be on effective competency-based course and program design. Participants will receive a workbook that they can use a reference in the future. Participants will also learn why computer science lends itself very well to CBE. In addition, they will learn how to include the employer in the process of developing competencies. This workshop will be useful to faculty and course designers at all levels – from K-12 through graduate school.

308: Playing with and Creating Practice Spaces for Equitable Teaching

Joshua Littenberg-Tobias, Amanda Aparicio and Justin Reich

Friday, March 1, 7:00 pm - 10:00 pm

How do assumptions about students impact student-teacher interactions? Why do some students feel like they belong in a classroom while others don’t? What does it look like to “enact equity” in Computer Science? Come join MIT researchers as they share online practice spaces: interactive,game-inspired, learning experiences for teachers. These practice spaces have been used by over 6,000 people in CS teacher preparation programs across the United States to support CS teachers’ practice and reflection on equitable teaching in computer science classrooms. During this session, participants will try multiple practice spaces and brainstorm improvements to existing practice spaces. All participants will leave with curriculum materials and links to practice spaces that they can use in their own work.

In computer science classrooms, the assumptions teachers have about students can significantly shape their interactions. Deeper understandings of the decisions impacting equity offers teacher educators and researchers new leverage in cultivating equitable teaching.Our work uses interactive online practice spaces to focus on specific teaching decisions that may be impacted by teachers’ assumptions about students. Teacher practice spaces are learning experiences, inspired by games and simulations, that allow teachers to rehearse and reflect on important decisions in teaching. Practice spaces are a potentially powerful approach for encoding equitable teaching strategies because they have the potential to reveal the different assumptions and interpretations which drive different teaching decisions We developed these practice spaces and embedded them within CS teacher preparation programs where they have been used by over 6,000 teachers. In this workshop, we'll use online practice spaces as a novel way to approach discussions about equity in computer science classrooms. We'll have participants try out different variations on these practice spaces, brainstorm ideas for improving existing practice space, and invite reflection about challenges they’ve observed in training CS teachers in equitable teaching practices. Participants will leave with links to practice spaces, and related curriculum materials they can use in their own work

309: Code Crafters Curriculum: A Textile Crafts Approach To Computer Science

Ursula Wolz, Seoyeon Aka Stella Lee, James Mulligan and Alexander Terjak Wall

Friday, March 1, 7:00 pm - 10:00 pm

Return home with unique SIGCSE swag: an embroidered design of your own making! The Jacquard Loom is often referenced as the first example of ‘coding.’ But coding goes back millennia to the invention and evolution of textile craft. Weaving, quilting, embroidery and other ‘women craft’ have employed patterns, variables, and control structures long before the industrial revolution. This workshop is a repeat of a highly successful SIGCSE 2018 workshop in which participants explored curricula ranging from a middle school camp experience to a full semester CS 0 course. Using the blocks language ‘TurtleStitch’ (turtlestitch.org), which is a descendent of Snap!, participants experiment with concepts as simple as the impact of parameter values, to shortest path finding. Discussion of jewelry making using 3D printing, and off-computer coding with crocheting, quilting and weaving will also be shown. Bring a laptop. Take home knowledge, curricular ideas, and a crafted textile of your own design.

This reprise of a highly successful SIGCSE 2018 workshop provides a novel perspective on : skills that are often labeled ‘women’s work’ are the foundational principles of computer science developed from textile crafts. The 'Code Crafters' curriculum, which expands Andrea Mayer’s Snap-based TurtleStitch embroidery programming project, is being successfully taught in 3 ways: as a full semester undergraduate course, as a weeklong summer workshop for middle and high school students, and as a half day event. The SIGCSE workshop will introduce participants to potential adaptations of this curriculum, report on its use as both a CS 0, and CS 1 course, and give participants hands-on experience in designing and rendering a machine embroidery pattern in TurtleStitch and Processing Stitch (Java). Key concepts from the full semester curriculum will be demonstrated: (1) crocheting as a vehicle for learning about primitive operations instruction codes for process control, and reading and writing patterns (algorithms); (2) programing machine embroidery provides exposure to agile design; (3) contrasting embroidery with quilting provides experience in abstraction and reuse; (4) weaving and tapestry provide concrete illustrations of manipulating two dimensional data structures; (5) studying embroidery machine file formats demonstrates how language translation takes place; (6) sharing a limited resource (a $500 programmable, single thread machine) provides concrete experience in scheduling, and product testing; (7) collaborative crochet and quilted projects provide experience in team dynamics. Participants in this workshop will be invited to join an online community of mutual support.

310: Make and Take an Ethics Module: Ethics Across the CS Curriculum

Darakhshan Mir, Iris Howley, Evan Peck, Deborah Tatar and Janet Davis

Friday, March 1, 7:00 pm - 10:00 pm

Have you always wanted to pair the teaching of computing concepts with a critical reflection on ethical implications? Don’t know where to start? Do you want students to practice active ethical reflection and deliberation as and when they learn fundamental computing principles? Do you want to start small by implementing ethical reflection in ONE assignment? If so, this workshop will help you find other educators like yourself to collaborate with and find a space to create a module in a course of your (and your collaborators’ ) choice.

This Workshop is intended to be a generative space for participants to create a module on ethics in a Computer Science course of their choice. Participants will choose an existing course in the typical CS curriculum; and coalesce around common themes to create a module that integrates critical reflection on ethical choices and societal impact of computing with the practice of computing. The workshop will offer a space to collaboratively work on designing an ethics module for a CS course chosen by the participants. The ethics module would integrate teaching specific concepts and practices in computing alongside a critical reflection of these practices. Ideally, these modules would be flexible enough to fit into curricula at various institutions.

Saturday

401: Using and Customizing Open-Source Runestone Ebooks for Computer Science Classes

Barbara Ericson, Bradley Miller and Jaclyn Cohen

Saturday, March 2, 3:00 pm - 6:00 pm

Come learn about many free interactive ebooks on the open-source Runestone Interactive platform that can be used in high school (AP CSP and AP CSA) or college computing courses (CS1, CS2, and web programming). These ebooks include executable code and a wide variety of practice problems. You can create a custom course from any of the existing ebooks and then track your student’s progress. You can create and grade assignments. Students enjoy using the ebooks. They appreciate the immediate feedback and the variety of practice problems.

Runestone Interactive is an open-source ebook platform designed to create and publish interactive computer science textbooks. (See http://runestoneinteractive.org). Runestone ebooks support programming within the browser, code visualizations, and a wide variety of practice activities, from multiple choice and fill-in-the-blank questions to Parsons Problems (drag-and-drop mixed-up code). Free textbooks have been created for CS1, CS2, and AP CS. The presenters have several years of experience creating and using Runestone ebooks. Several studies have demonstrated good usability and positive learning and attitude impacts on students using these ebooks. Runestone ebooks can be customizable to meet the needs of individual courses and teachers. Over 20,000 people a day use Runestone ebooks. The goal of this workshop is to introduce computer science teachers (both secondary and post-secondary) to Runestone ebooks. The hands-on session will start by leading participants through use of ebooks as if they were students. Participants will be introduced to the interactive features of the ebooks. Participants will next create a custom course from an existing ebook in the library and will use the instructor’s dashboard to review student activity, modify the course, and grade students. Participants will create their own assignments using existing active learning components. Participants will also be shown how to create new material for assignments, such as multiple-choice questions for a quiz. Laptop Required: all participants will need a laptop.

402: To Dissemination... And Beyond!: Building Better Propagation Plans for Computer Science Education Innovations

Christopher Hovey, Cynthia Taylor, Heather Bort, David Bunde and Zack Butler

Saturday, March 2, 3:00 pm - 6:00 pm

Do you have a great idea that will change the way students learn or instructors teach in the CS classroom (or maybe even outside the classroom)? Are you flummoxed by the lack of adoption your idea has achieved despite your best efforts? Do you wish you could convince your department to try a new pedagogy, curriculum, or other innovation? You should attend our CS Education Innovation Propagation Planning Workshop! Learn about best practices for propagation planning throughout STEM and in CS specifically, get feedback on your plan, and refine your approach to increase adoption.

In CS, educational innovation is constant, but many great ideas never achieve the type of widespread adoption necessary to make lasting and effective change to the way we teach and learn. Research across STEM education has shown that propagation planning is often an overlooked or undervalued part of educational innovation. Whether promoting our own project or an outside innovation, barriers to success are more difficult to overcome when encountered without sufficient preparation. Plans for adoption and scaling of innovations are not one-size-fits-all, but there are lessons we can learn from both successful and unsuccessful previous projects. We will present a summary of these lessons based on our recent ITiCSE working group research experience on the topic. This writing workshop will focus on building propagation plans informed by best practices and within the context of individual project definitions of success. We will work in small groups to identify potential barriers to the success of our projects, learn about best practices for overcoming those barriers, and put in place a measurable and actionable plan for adoption and propagation. Participants will work toward a better plan for propagation while garnering advice from their peers, learning and generating new ideas about and methods for dissemination and adoption, and building a community of resources for future collaboration, champions for change, and peer feedback.

403: Architecting Serverless Microservices on the Cloud with AWS

Ariel Ortiz

Saturday, March 2, 3:00 pm - 6:00 pm

Come and learn how to teach application development using microservices in a cloud computing environment. You'll get a chance to experiment with Amazon Web Services (AWS) free tier products that allow building software from the comfort of a web browser. Why AWS? Well, because AWS has established itself as the front-runner in the cloud computing market. Participants are expected to create an AWS account (https://aws.amazon.com/free/) at least 48 hours before the workshop (registration is free but you must provide credit card information). Prerequisites: familiarity with Python programming, web development, and basic Linux commands. Please bring your own laptop computer (any OS) with WiFi access and a modern web browser (Chrome or Firefox recommended).

A microservice architecture decomposes the entire functionally of an application into a set of services that can be deployed and scaled independently. Each service does only one job and does it well. Thus, it's simpler to develop, test and maintain. Additionally, it has its own database and provides access to datasets and services through a well-defined application programming interface (API). Highly successful Internet companies, such as Amazon, Netflix, and Twitter, use microservice architectures to build their software. This workshop is aimed at CS instructors that wish to teach students how to design and build microservice-based applications using cloud services and products provided by the Amazon Web Services (AWS) free tier. We'll start creating a cloud development environment with the AWS Cloud9 IDE. Afterwards, we'll code in Python several RESTful web services using AWS Lambda functions, which are serverless cloud computing services that are executed in response to events. The advantage of going serverless is that you build and run applications and services without thinking about servers. Your application still runs on servers, but all the server management is done by AWS. Finally, we'll demonstrate how to persist our information in a NoSQL database using the Amazon DynamoDB service. More information available at: http://microservices.arielortiz.info/

404: NSF Interactive Discussion: Computer Science Undergraduate Education in 2026 and Beyond

Stephanie E. August, Alexandra Medina-Borja, Mark Pauley and Michael M. Rook

Saturday, March 2, 3:00 pm - 6:00 pm

If you could redesign STEM higher education in general and undergraduate computing sciences education specifically, what would you do differently? Join us for a highly interactive session in which we are presented with a problematic scenario, and collaborate to construct the future of computing sciences education. Participants will identify the structures, knowledge, skills and experiences, networks and relationships that are essential to achieving the well-prepared and innovative science, technology, engineering, and mathematics (STEM) workforce that is crucial to the Nation's prosperity and security. Collectively we will create a vision of what we hope undergraduate computing education will look like in 2026 or 2050. Ideas gathered in this workshop will inform a nationwide dialogue that that the National Science Foundation Division of Undergraduate Education is preparing to have the STEM communities and industry partners on this topic. Participants in previous versions of the workshop appreciated the new perspectives gained through their dialogue with colleagues.

By 2026, today's fifth graders will be entering college and our first-year college students will be the assistant professors. The workforce will see (r)evolutionary changes in the workplace at the human‐technology frontier. Participants will be asked to think strategically about how we will reach the future we want to live. Content delivery mechanisms and active learning/project-based experiences for undergraduate students have developed and matured at a dramatic pace in recent years. How can we leverage what we already know, working to improve and broaden undergraduate STEM education and computing education in particular? How do we prepare students to solve the wicked societal problems of the future? Will students require problem-solving skills that transcend disciplines? Is interdisciplinarity teachable at the undergraduate computer science level? Which skills/knowledge will employers and graduate schools require in 10/20 years? What do we hope undergraduate computing education will look like in 2026/2050? How will we get there? What will ensure that we achieve this vision? The National Science Foundation Division of Undergraduate Education is preparing to have a nationwide dialogue with STEM communities and industry partners on this topic. This interactive session offers an opportunity to reflect on these questions. Participants will be presented with a problematic scenario and discuss how to construct the future of computer science education, including its structures, knowledge, skills and experiences, networks and relationships. We will gather ideas about the participants' visions of the future as they engage in varied discussions and construct a shared vision for future computer science education.

405: CyberPaths: cyber security labs for liberal arts institutions using the NSF Global Environment for Network Innovations (GENI)

Xenia Mountrouidou and Vicraj Thomas

Saturday, March 2, 3:00 pm - 6:00 pm

Are you thinking about teaching cyber security? No funds to setup? Do you have limited resources and time? Then this workshop is for you! Come learn through presentations and hands-on exercises on how to use the cyber security labs we have created on the free NSF GENI testbed and how to create your own labs. Participate in a discussion on integrating cyber security into liberal arts general education and paths your students can follow to enter a career in the field. Please bring a laptop with a browser and an ssh client installed.

The primary purpose of this workshop is to help undergraduate liberal arts colleges integrate cyber security seamlessly into the curriculum with little to no additional investment. We believe Liberal Arts Colleges can provide to the cyber security workforce well-rounded individuals equipped to tackle new and complex problems. However, liberal arts colleges rarely have the resources needed to provide the hands-on labs critical to attracting students to cyber security classes and for preparing students for the workforce. Our NSF funded project “CyberPaths” addresses this by devising several active learning labs on topics such as ransomware, authentication, Distributed Denial of Service (DDoS), and remote network attacks. These labs are implemented on the cloud infrastructure GENI, an NSF funded free academic cloud infrastructure for realistic networking experimentation. The labs are suitable for non-CS majors as well as CS upper level courses. In addition, we propose interdisciplinary cyber security modules and multiple paths that can lead to the cyber security professions, starting from the general education courses, moving to an intro to cyber security course, and upper level CS courses. Our goal is to offer solutions to liberal arts institutions with cyber security active learning and introducing cyber security early in the curriculum with low overhead. This workshop will be highly interactive using a combination of hands-on labs and discussions. If you wish to do the hands-on exercises please bring a laptop with a browser and ssh client installed.

406: Modernizing Early CS Courses with Parallel and Distributed Computing

Sushil Prasad, Sheikh Ghafoor, Charles Weems and Alan Sussman

Saturday, March 2, 3:00 pm - 6:00 pm

Our students all have multicore laptops. Most of their favorite applications use vast numbers of distributed processors. Why are we still teaching them to solve problems using only sequential thinking? Come to this workshop to see how easy it is to open their eyes to exploiting concurrency in problem solving, starting in their earliest courses. You'll hear about and experience some unplugged activities, learn how to help students recognize examples of concurrency in the world around them, see how event driven user interfaces can easily exemplify issues related to multithreading, and how freely available libraries can be used to naturally exploit parallelism in working with large data structures. Having a laptop that can run Java and C++ will allow you to follow along with some code examples, but isn't necessary.

Parallel and distributed computing (PDC) is now a pervasive aspect of deployed systems, and thus it is essential that students include parallelism and distribution in the computational thinking that they apply to problem solving, from the very beginning. In some cases, concurrency actually offers simpler solutions than sequential approaches. In this workshop we overview the key PDC concepts that have been identified through our curriculum work, and give several examples of how they may naturally be incorporated in common existing courses in the first two years of a typical CS program, including unplugged activities. We will also highlight the two summer training programs that we are organizing, for which we have funding to support attendance by instructors.

407: An Afternoon with an AP Computer Science A Exam Reader

Ria Galanos, Timothy Gallagher and Briana Morrison

Saturday, March 2, 3:00 pm - 6:00 pm

Ever wanted to be quicker and more consistent in your grading of code-based exam questions? Attend this workshop! Each summer, college faculty and high school teachers gather to score over 60,000 Advanced Placement Computer Science A (APCS A) exams in one week. How do they accomplish this? Come learn the amazing process behind this task that ensures all of these exams are graded consistently. Find out how the organizers can take a mundane task such as grading papers, and turn it into a remarkable professional development experience for everyone involved. Each year, faculty and teachers alike rave about their time spent at the AP Reading. Come find out for yourself what this is like by spending an afternoon with a few AP CS A Exam readers! Faculty who teach a Java-based CS1/CS2 course and high school AP Computer Science A teachers are especially welcomed.

Advanced Placement (AP) Computer Science A (CS A) is an introductory high school Java course equivalent to a CS1 course at the undergraduate level. Over 66,000 high school students sat for the AP CS A end-of-course examination in May 2018. The exam contains four free-response questions (FRQs) where students are to implement methods or a full class according to specifications. Each June, these exams are graded at the AP CS A Reading. This workshop provides a behind-the-scenes look at the Reading, during which the FRQs are read (scored) by more than 325 college faculty and high school AP teachers. You will learn how the FRQs are scored, the roles of the various Reading participants, and the steps to ensure consistent grading. You will engage in an AP Reading–style training by applying a rubric based on a past free-response question and then participate in a mock reading using the rubric. After attending this workshop, you will be able to understand the role and responsibilities of the Chief Reader, Question Leader, and Table Leader at the AP Reading; develop strategies for creating rubrics for code questions; consistently apply rubrics for free-response questions and similar assignments; and apply strategies to prepare students for the free-response portion of the AP Exam or to similar style questions in an introductory college-level course.

408: Interactive Programming Environments for Teachers and Students

David J. Malan, Doug Lloyd and Kareem Zidane

Saturday, March 2, 3:00 pm - 6:00 pm

A hands-on introduction to three (free!) web-based programming environments for quick demos, scaffolded lessons, and programming projects!

We present in this hands-on workshop a suite of interactive programming environments for teachers and students, each of them cloud-based and free. The first in the suite is CS50 Sandbox, a web app at sandbox.cs50.io that enables teachers and students to create temporary programming environments quickly, without even logging in, and share copies of those sandboxes with others. With this app can a teacher start programs in class that students can then finish, distribute starter code for problems, and post interactive solutions. The second tool in the suite is CS50 Lab, a web app at lab.cs50.io that enables teachers to create step-by-step programming lessons, providing incremental feedback at each step, and enables students to progress from an empty file (or starter code) to working code, with hints and feedback along the way. Via this app can teachers author their own Codecademy-style lessons using just a GitHub repo of their own. The third tool in the suite is CS50 IDE, a web app at cs50.io built atop Cloud9 that provides students with their own cloud-based Linux environment. Each of these environments offers a built-in file browser and code editor and, most importantly, an interactive terminal window with shell access to their very own container. And each enables students to write programs in any language. Throughout this workshop will we discuss lessons learned from having deployed these tools in CS50 at Harvard to hundreds of students on campus and thousands of students online. And we'll discuss challenges encountered and best practices adopted.

409: Big Data Analytics with Spark

Mark Lewis

Saturday, March 2, 3:00 pm - 6:00 pm

The role of big data in industry continues to grow. It is a driving force behind many of the advances in machine learning and deep learning and some knowledge of it should be part of any serious data science program. The term “big data” gets used in a lot of situations, but to really be appropriate you need to be talking about datasets and analyses that can’t be done on a single machine and hence require a cluster of machines. While MapReduce and Hadoop drove the initial growth in big data, Spark is currently the king of the big data frameworks. The goal of this workshop is to introduce educators to Apache Spark and how it can be used to do big data processing on clusters in a manner that is approachable by upper-division undergraduate students. Unlike Hadoop’s implementation of MapReduce, Spark is highly accessible to students. While it can be run on large cloud clusters, and providers like AWS and Google Cloud provide support for it, it is also trivial to run on a small cluster at your school and can even run locally on student machines with smaller datasets. This workshop will give participants hands-on experience using that last option.

Born from a Berkeley graduate project, the Apache Spark library has grown to be the most broadly used big data analytics platform for big data. While Spark integrates with the older Hadoop ecosystem, it provides much more intuitive, faster, and powerful abstractions for manipulating distributed data than MapReduce. In this workshop, we will cover the basics of the Spark library with the goal of getting participants up to speed so that they can use the library or teach it in courses that involve big data or distributed processing. Participants will work with examples that range from calculating basic summary statistics to using the Spark Machine Learning library for performing sophisticated machine learning analyses on large datasets. Tasks during the session will be performed on smaller samples using the Spark local standalone implementation on participant’s laptops. We will also discuss how Spark can be run on a local or cloud-based cluster and point participants toward resources for setting up those environments for their students.

410: Booting into AI: Startup Instructions for Teaching Artificial Intelligence

Brian Hare and David Heise

Saturday, March 2, 3:00 pm - 6:00 pm

So... you’ve just been asked to work-up an AI course because “somebody has to”! This workshop is aimed toward faculty members from smaller schools where there may not be anyone with a specialization in AI or machine learning, but the need for coursework (required or elective) in this broad area is acute. The problem isn’t finding material, it’s intelligently selecting from the wide array of options and materials available. We will share our experience and ideas in offering such courses to our campuses, providing resources to help the faculty member new to this area or looking to refresh his or her approach.

This tutorial will provide a foundation for faculty members either teaching a course in artificial intelligence for the first time or renewing a course that has been dormant. The growing ubiquity of AI and machine learning dictates that departments offer a course in this area, regardless of whether any such expertise exists locally. Furthermore, there are many possible approaches, from a general overview to a tight focus on a particular application area, either as a single elective or a specialization area within an undergraduate degree. An increasingly wide range of resources is available, but intelligent selection from the plethora of information can be a challenge, particularly in smaller programs where no local expertise is available. The tutorial is in two parts. Part 1 focuses on background knowledge, discussing major divisions within the broad field of AI, research trends and application areas, and commonly used tools. Part 2 addresses classroom implementation, assessment, textbook options, and online resources including code libraries, free-to-use data sets, development environments, and visualization tools. Participants will have the opportunity to brainstorm and discuss options for course focus. Sample syllabi using differing course approaches, sample exams and assignments, and a non-exhaustive list of useful resources will be provided.