This year's Snap! 10 release marks a major leap forward, bringing advanced machine learning capabilities directly into the hands of students and educators. Version 10 introduces support for building ML models, including single-layer perceptrons, making it easier than ever for students to explore AI concepts within a block-based environment. These updates are accompanied by the ability to define Snap! primitives using Snap! blocks themselves, empowering users to deeply customize and extend the language. Building on the rich foundation of previous versions, Snap! 10 also includes hundreds of improvements aimed at enhancing both the classroom and the individual learning experience. These include quality-of-life updates such as new debugging tools, dynamic runtime access via the ''this'' reporter, and expanded support for working with dictionaries and APIs. In this demo, we'll showcase the exciting new features in Snap! 10, focusing on how they can be used to engage students in advanced topics like machine learning, data science, and computational thinking. Attendees will learn how to leverage these tools to build custom experiences that meet the evolving needs of their classrooms.
The Beauty and Joy of Computing (BJC) Sparks curriculum is an innovative computer science curriculum designed to introduce middle school and early high school students to the world of computer science through functional programming. Developed by the creators of BJC CS Principles (CSP), BJC Sparks presents a simplified yet engaging approach to programming, emphasizing the flow of information through functions. By focusing on functions rather than commands and iteration, BJC Sparks nurtures problem-solving skills and reduces bugs in future programming experiences. At SIGCSE 2023, the BJC Sparks team shared their insights into the curriculum's development and implementation, featuring real-world accounts from pioneering teachers. The use of microworlds and multimedia elements captured middle school students' interest, particularly in physical computing micro:bit activities. This approach showcased the potential of multimedia and data science projects in teaching functional programming through exciting, personalized activities. Building on the success of previous summer PD workshops with 76 educators across the U.S., we propose a condensed version of our comprehensive workshop for SIGCSE. Participants will gain a deep understanding of BJC Sparks' design principles, hands-on experience with the Snap! programming language, collaborative lab activities, alignment with CSTA standards, access to teacher materials and resources, and effective pedagogical strategies. Attendees will receive a three-hour professional development certificate and will be equipped to empower the next generation of young minds in the world of functional programming and beyond.
This year's Snap! 9 release represents 10 years since Snap! 4.0 was initially released as a web application. Version 9 includes hundreds of new features, focused on providing students and teachers with new cloud tools, continued development of tools for working with data, and ''quality of life'' enhancements. The Snap! Cloud has been upgraded to support dedicated student and teacher accounts. Teachers can create accounts on behalf of their students, and manage students in their class. Everyone can also choose to ''follow'' users and see a feed of new projects shared with the community. It's also never been easier to work with data! Snap! 9 adds the ability to treat lists as ''dictionaries'' (lists of lists can now be indexed by arbitrary alphanumeric values). A number of blocks have been made variadic (i.e., supporting a variable number of inputs), saving the user the tedium of dragging over multiple copies of the same block. These include and, or, all comparison operators, and if, which adds more intermediate else if cases when the right arrow is clicked. Finally, Parsons Puzzles can be created with a single click. The Generate Puzzle command generates a microworld with only the blocks present in the selected sprite (and hides the answer behind a menu choice). In this demo, we'll share ways that you can use new Snap! features in the classroom, and provide attendees with the tools to build engaging experiences for students. All materials from this demonstration will be shared at https://bjc.link/snap-sigcse24
Data Science (DS) blends computer science, statistics, mathematics, and visualization. The absence of a nationwide DS curriculum in the US prompts educators to independently devise engaging DS curriculum. With support from the National Science Foundation and the United States Amateur Radio on the International Space Station, UC Berkeley teaching faculty developed a pilot curriculum, Student Mission Control (SMC), to engage middle and high school students with direct access to data and experiments aboard the International Space Station (ISS) to help develop skills of data inquiry, analysis, and exploration. SMC addresses a crucial challenge in computing education-enhancing the depth and engagement of data analysis activities with students. By using ISS on-orbit sensor data, SMC offers activities focused on data literacy, catering to an evolving need in computing courses. SMC not only enriches educational experiences, but also broadens participation in computing from underrepresented students to engage with authentic STEM-based data and visualizations, leveraging their interest in science, engineering, and space exploration. To extend the reach of SMC, we propose a workshop at SIGCSE. This workshop will equip participants with insights into the ISS, telemetry data, SMC design principles, and curriculum highlights. Engaging participants in collaborative hands-on notebook-based lab activities, the workshop will empower educators to integrate space-themed content into their classrooms. Attendees will receive a three-hour PD certificate, supporting their efforts to innovate CS education and make it more appealing to diverse students.
We present our experience with the design and implementation of BJC Sparks, a new introductory computer science curriculum for middle school piloted by ten teachers in the 2021-2022 academic year. Our curriculum is functional-first, using abstraction, functional decomposition, immutable data, and powerful higher-order functions such as map, keep, and combine. Based on a decade of experience teaching thousands of first-time programmers, we believe starting with functions teaches students the habit of solving problems functionally when possible, helping to avoid bugs in later programming experiences. BJC Sparks uses the Snap! blocks-based programming environment, which brings the expressive power of a general-purpose programming language without requiring mastery of the syntax of a text-based language. We take advantage of new Snap! features to develop microworlds: customized projects that simplify the blocks palette to further lower cognitive load. We designed projects that use Snap!'s multimedia features to explore data science, encryption, and computational media. We end with physical computing using the BBC micro:bit that students program using MicroBlocks. In terms of findings, we confirmed that it indeed was possible to capture the interest of middle school students with functional programming activities, especially through the use of microworlds. We were surprised at the strong student and teacher interest in our micro:bit lessons, which many wanted as a stand-alone unit. Finally, it became quite clear that multimedia and data science projects offer promising avenues for teaching functional programming through fun, engaging, and personally relevant activities.
The poster shows early results implementing Faded Parsons prob- lems at a large public R1 university in a 1000+ enrollment CS1 course. Assignments traditionally involved open-ended code-writing questions that had little scaffolding, and many students spent long periods of independent time working on them. We attempted to improve scaffolding via Faded Parsons problems (FPPs)-a new variant to popular Parsons problems-where students fill in blanks in addition to rearranging lines of code into a valid program. We integrated these problems into assignments by adding an FPP with similar concepts for each code-writing question. By first learning the concepts within the constraints of an FPP, we hoped students would be able to identify and apply those concepts once faced with the code-writing questions. Our findings suggest that students took fewer attempts on code-writing problems than in a previous semes- ter, and survey results indicate that the majority of students found FPPs beneficial as an easier introduction to programming, and that they were good preparation for hand written exams
The Beauty and Joy of Computing (BJC) is a CS Principles (CSP) course created at UC Berkeley to reach high school and university nonmajors in computer science. It was chosen for the CSP pilot and endorsed by the College Board as an AP CSP curriculum and PD provider since the first AP CSP exam sitting in 2017. This past year, BJC developed a new course for middle school and early high school that teaches a functional approach to programming, emphasizing iteration and commands, and including exciting projects in graphics, data, and media. In this workshop, we will provide an overview of the BJC middle school and high school curriculum including course materials, teacher resources, and an introduction to Snap!, the chosen visual programming language of BJC. We will not only cover curriculum updates, Snap! updates, BJC for middle school, BJC in other languages, but also dive into labs with hands-on programming. Laptop is required.
Demand for computer science teaching faculty is skyrocketing. In response, many colleges and universities are beginning to advertise for and hire teaching candidates without a PhD. In this panel, we discuss our experiences as faculty in this position and explore how we can promote and support the important contributions that non-PhD faculty have on students. Throughout this interactive panel, we will engage in-person and virtual participants from all levels of higher education to discuss the experiences surrounding teaching track faculty without a PhD. Additionally we will reflect and envision how our community can systematically support and create alternative paths within academia that will allow potential faculty to earn a terminal Master's degree and learn how to be effective teachers at the same time.
Snap! version 7 introduces three big new features: microworlds, scenes, and extensions. Microworlds allow curriculum designers to hide blocks for novice users, allowing them to focus only on the blocks they need. This is similar to Parson's Problems, in which students rearrange commands to solve a challenge. The new version makes it easy for curriculum developers to design these microworlds; we think this can be truly transformative for younger learners. Scenes provide the ability for a single project to have different resources (sprites, sounds, costumes) that would normally have been cluttered in the same "namespace", but now can be nicely organized into different scenes. The last addition may be the most exciting - extensions allow the many Snap! forks now to be brought back in under the primary Snap! umbrella. To make that work, we have exposed low-level JavaScript functionality, and extensions can make use of those functions to adjust the look and feel of Snap! in many ways, provide different tabs or default blocks, and more. Finally, we would like to present some new ways that our teachers say they are using Hyperblocks (vector operations), introduced last year with Snap! 6. Overall, this new release represents more than 18 months of hard work by a dedicated team, and we would be delighted to share these new features with our SIGCSE family.
Snap! version 8 introduces more than 700 documented fixes and enhancements book-ended by two major new features: smart script pics and metaprogramming. "Smart script pics" enable users to easily share images that embed the program inside the image file! All you need to do is simply drag-and-drop and images to share code. This simple feature makes projects far more collaborative by reducing the burden to share code.
Even in an introduction to computer science course, students commit academic misconduct. Traditional plagiarism detection software like MOSS fail to give great results for assignments whose solutions are only a few lines long. We change program variable names and then search student code for those variable names. If their code backups contain the variable names, they are flagged for cheating. Our tool was used in a CS1 course that had a Spring 2020 enrollment of 1800 students. We accused 164 students for the first homework, and enforced 142 penalties (86.6% of accused students) for the first homework. Over the semester we had 452 enforced cases of cheating on homeworks, labs, and projects out of 598 accusations (75.6% of accused students). In Summer 2020 we improved the tool to speed up response time and reduce false positive rate from 24.4% to 21.9%. We built open source software using Python that searches students' code for suspicious keywords and uploads it all to a spreadsheet. We also asked students to provide their past work at the beginning of the semester. This is important because it reduces student stress and reduces false positives. Our work helps the remedial nature of communicating to students they have been flagged for cheating by having the students know that someone is monitoring their work. Students are caught breaking the rules before they develop bad habits that hinder their learning and lead to persistent cheating.
The Beauty and Joy of Computing (BJC) is a CS Principles (CSP) course created at UC Berkeley to reach high school and university non-majors in computer science. It was chosen for the CSP pilot and endorsed by the College Board as an AP CSP curriculum and PD provider since the first AP CSP exam sitting in 2017. In this workshop, we will provide an overview of the BJC curriculum including course materials, teacher resources, and an introduction to Snap!, the chosen visual programming language of BJC. We will not only cover curriculum updates, Snap! updates, BJC for middle school, BJC in other languages, but also dive into labs with hands-on programming. Some of our experienced BJC Lead Teachers will provide support and answer questions based on personal classroom experience. This workshop is intended to be an introduction and update to the Beauty and Joy of Computing curriculum (bjc.edc.org) and community. This is not intended to be an in-depth experience, but an overview. Note: It is recommended to use least a Chromebook during the workshop in order to achieve the learning outcomes. Also, having Multiple/dual monitors will make for a better experience.
"The only thing that scales with undergrads is undergrads". As Computer Science course enrollments have grown, there has been a necessary increase in the number of undergraduate and graduate teaching assistants (TAs, and UTAs). TA duties often extend far beyond grading, including designing and leading lab or recitation sections, holding office hours and creating assignments. Though advanced students, TAs need proper pedagogical training to be the most effective in their roles. Training strategies have widely varied from no training at all, to semester-long prep courses. We will explore the challenges of TA training across both large and small departments. While much of the effort has focused on teams of undergraduates, most presenters have used the same tools and strategies with their graduate students. Training for TAs should not just include the mechanics of managing a classroom, but culturally relevant pedagogy. The panel will focus on the challenges of providing "just in time", and how we manage both intra-course training and department or campus led courses.
The pace of technology for use in computing education is staggering. In recent years, the following technologies have completely transformed our teaching: Piazza, GradeScope, YouTube, Google Docs, Doodle and whenisgood.net, Skype and Google Hangout, and Khan Academy among others. Hardware has also played a part. We love our Zoom digital voice recorder (for recording CD-quality lecture audio), Blue Yeti USB mike (for audio/videoconferences), and iClickers (for engaging students in class). This panel is an outgrowth of a Technology that Educators of Computing Hail (TECH) Birds of a Feather session that we've held at SIGCSE for seven years, and the panel from SIGCSE 2015 [1] that served as a springboard for a regular column in ACM Inroads [2]. It will provide a chance for seasoned high school and university educators to show you the technologies that have "bubbled to the top" for them, and what key problems they solve. Like concert musicians, they will give live demonstrations and reveal the configuration options required to make their technology "sing". We hope this forum will allow the presenters to dive deeply into the common use cases of these technologies, highlight why they are invaluable, share any "gotchas" they've uncovered, and explain how others can adopt them at their institutions. The highlight of the panel is when the audience, inspired by the presentations, is invited to share their favorite "can't live without" technologies as well.
The Beauty and Joy of Computing (BJC) is a CS Principles (CSP) course developed at UC Berkeley, intended for high school juniors through university non-majors. It was twice chosen as a CSP pilot, and both the College Board and code.org have endorsed it. Since 2011, we have offered professional development to over 400 high school teachers. BJC covers the big ideas and computational thinking practices required in the AP CSP curriculum framework, using an easy-to-learn blocks-based programming language called Snap! (based on Scratch). During this workshop, we will provide an overview of the BJC curriculum, share our experiences as instructors of the course at the university and high school levels, and share details of potential summer professional development opportunities. Attendees should be prepared to program a BJC project in the Snap! environment. Please bring laptops with the Chrome browser installed.
Dan Garcia合作论文数UC Berkeley Berkeley Engineering10