Michael Ball
Continuing Lecturer, UC Berkeley EECS & Data Science
Education
M.S. Computer Science · 2015–2016 University of California, Berkeley, Berkeley, CA Advisor: Dr. Daniel Garcia Thesis: Lambda: An Autograder for Snap!
B.A. Computer Science · 2011–2015 University of California, Berkeley, Berkeley, CA
Positions
Continuing Lecturer · July 2025 – Present UC Berkeley EECS & Data Science, Berkeley, CA
Lecturer · July 2019 – June 2025 UC Berkeley EECS & Data Science, Berkeley, CA
Full-time lecturer, actively involved in EECS undergraduate curricular matters and pedagogy. Primarily responsible for CS 88 / DATA C88C, an introductory CS course for data science students; share work in many activities for training student instructors and advising summer instructors.
Software Engineer · July 2016 – July 2021 Gradescope (acquired by Turnitin, 2018), Berkeley, CA
Early software engineer from startup through acquisition. Responsible for web accessibility and conference presentations. Part-time starting Fall 2019.
-
Led web accessibility work; addressed compliance with WCAG 2.0/2.1, set up automated front-end accessibility testing, and trained engineers in the wider Turnitin organization.
-
Built modern AWS-hosted data pipelines for user onboarding and product analytics.
-
Collaborated with the design team on new platform features and provided customer support and training.
Researcher and Engineer · 2016–2018 UC Berkeley EECS, Berkeley, CA
Part-time role focused on Snap! and The Beauty and Joy of Computing projects (funded via Hopper-Dean Foundation grant).
Research Interests
Computer Science Education — Most experienced in high school, CS0, and CS1 courses. Particularly interested in exploring and improving structural issues in courses, such as sound principles for course policies, teaching with teams, and effective use of education technology.
Digital Accessibility — Experience building tools for software teams to improve the accessibility of web applications. Interested in improving methods for automatically detecting accessibility defects and recommending corrections, and in building accessible CS courses and materials to teach accessibility to students.
Teaching — UC Berkeley
Course Descriptions
- CS 10 — The Beauty and Joy of Computing (4 units). Non-majors introduction to computer science. Hands-on, project-based course taught using Snap! and Python. cs10.org
- CS 88 / DATA C88C — Computational Structures for Data Science (3 units). CS1-or-1.5 course for data science majors, based on Sussman’s SICP and taught in Python. c88c.org
- CS 169 — Engineering Software as a Service (4 units). The original software engineering course, later split into CS169A and CS169L. saasbook.info
- CS 169A — Engineering Software as a Service (4 units). Upper-division course on modern software engineering through RESTful design, HTTP, and team projects. saasbook.info
- CS 169L — Software Engineering Team Project (4 units). Follow-up to CS 169A; teams build a semester-long project for a campus organization or local nonprofit. saasbook.info
- CS W186 — Introduction to Databases (4 units). Upper-division databases course offered in an online format.
- CS 194-23 — Art & Science of Digital Photography (4 units). Highly technical photography course bridging art and engineering.
- CS 195 / CS H195 — The Social Implications of Computing Technology (1 / 3 units). Course exploring the unintended consequences of computing, including the culture of how we build programs. H195 is an honors course where students complete a small research project.
- CS 294-188 — Design and Evaluation of CS at Scale (1 unit). Pedagogy course for teaching assistants on course-course collaborations and current computing-education pedagogy.
- CS 302 — Designing Computer Science Education (3 units). Course preparing students to be the instructor of record for a summer CS course.
- CS 375 — Teaching Practicum (2 units). First-time CS teaching assistant training.
- DATA 101 / CS C187 — Data Engineering (4 units). Upper-division course putting databases into practice. Topics include SQL, window functions, indexing, design, ETL, NoSQL, and graph databases. data101.org
Teaching Assignments
* denotes courses that were co-taught. Spring 2020 included an abrupt switch to remote instruction. Fall 2020 and Spring 2021 were entirely remote semesters. Fall 2021, Spring 2022, and Fall 2022 included significant hybrid teaching components.
- Summer 2026 — Co-Director EECS Summer Program (10 courses)
- Spring 2026 — DATA C88C (500 students, 14 staff), CS 169L* (18 students, 2 staff), CS 302* (8 students, 1 staff)
- Fall 2025 — DATA C88C (550 students, 13 staff), CS 169A (140 students, 3 staff), CS 294-189* (16 students, 0 staff)
- Summer 2025 — Co-Director EECS Summer Program (10 courses)
- Spring 2025 — DATA C88C (550 students, 14 staff), CS 169L* (18 students, 3 staff), CS 302* (25 students, 1 staff)
- Fall 2024 — DATA 101* (450 students, 12 staff), CS 169A (280 students, 5 staff)
- Summer 2024 — Co-Organizer EECS Summer Program (11 courses)
- Spring 2024 — DATA C88C (500 students, 14 staff), CS 169L* (16 students, 2 staff), CS 302* (20 students, 0 staff)
- Fall 2023 — DATA C88C (460 students, 10 staff), CS 169A* (270 students, 6 staff)
- Summer 2023 — Organizer EECS Summer Program (10 courses)
- Spring 2023 — DATA C88C (500 students, 15 staff), CS 169L* (20 students, 1 TA), CS 302 (24 students, 0 staff)
- Fall 2022 — CS 88 (450 students, 14 staff), CS 169A* (240 students, 7 staff), CS 195/H195* (300 students, 1 TA)
- Summer 2022 — Co-Organizer EECS Summer Program (10 courses)
- Spring 2022 — CS 88 (420 students, 12 staff), CS 10 (150 students, 6 staff), CS 302* (25 students, 1 reader)
- Fall 2021 — CS 88 (400 students), CS 169A* (300 students), CS 294-188 (10 students)
- Spring 2021 — CS 88 (400 students), CS 195 (400 students), CS 169L* (60 students)
- Fall 2020 — CS 88 (360 students), CS 169A* (300 students)
- Spring 2020 — CS 88* (300 students), CS W186* (700 students), CS 195* (400 students)
- Fall 2019 — CS 88 (240 students, 8 staff), CS 169 (120 students, 4 staff), CS 375 (80 students)
- Summer 2015 — CS 10* (60 students, 5 staff)
- Spring 2015 — Head TA, CS 10 (330 students)
- Fall 2014 — Head TA, CS 10 (330 students)
- Spring 2014 — Head TA, CS 10 (300 students)
- Fall 2013 — TA, CS 10 (300 students)
- Spring 2013 — TA, CS 194-23 (30 students); TA, CS 10 (300 students)
- Fall 2012 — TA, CS 10 (240 students)
Awards
UC Berkeley Lecturer Teaching Fellows · 2019–2020
Year-long project on Parsons Puzzles in intro CS courses.
Best Lightning Talk Award, 49th ACM Technical Symposium on Computer Science Education · 2018
Awarded for the lightning talk “IRT in 5 Minutes.”
Eugene L. Lawler Prize · 2015 · UC Berkeley EECS
The Lawler Prize honors computer science undergraduates from disadvantaged groups, or who have surmounted unusual difficulties in pursuing a degree with demonstrated academic effort. Established by the UC Berkeley Computer Science Division to honor the memory of Professor Eugene L. Lawler.
www2.eecs.berkeley.edu/Students/Awards/#11
EECS Distinguished Graduate Student Instructor Award · 2015 · UC Berkeley EECS
Selected from the top 9% of UC Berkeley EE/CS GSIs and group tutors. The department selects one top EE and one top CS GSI for the award each year.
www2.eecs.berkeley.edu/Students/Awards/#13
Grants & Gifts
UC Berkeley Instructional Technology Micro-Grant · 2024–2025 $50,000 · Lisa Yan, Michael Ball
Following a successful first year, awarded subsequent funding to continue work with a focus on accessibility and sustainable maintenance of educational tools.
UC Berkeley Instructional Technology Micro-Grant · 2023–2024 $50,000 · Lisa Yan, Michael Ball
Year-long pilot through the Vice Provost’s Office; coordinated a team of students modernizing educational tools for CS and DS courses. Collaborated closely with Research, Teaching, and Learning to share custom tools with larger campus groups.
UC Berkeley Presidential Chair Fellows · 2021–2022 $22,500 · Pamela Fox, Michael Ball
Year-long grant through the Center for Teaching and Learning to add Parsons Problems — interactive puzzles that lower the burden of memorizing syntax — to CS61A and CS88.
Hopper-Dean Foundation BJC · 2020–2023 $600,000 · Dan Garcia, PI
Sponsored development of the Beauty and Joy of Computing curriculum. Helped create BJC Sparks, a new functional-first middle-school curriculum, and contributed engineering for the Spanish translation of the high-school CS Principles course and the Snap! programming language.
NSF EAGER, Student Mission Control for the International Space Station (Award #2027260) · 2021–2024 $298,944 · Research Engineer (Dan Garcia, co-PI)
Funding to support development of an API, website, “Student Mission Control” interface, and curriculum modules centered on data streaming out of the ISS.
UC Berkeley College of Engineering, Course Adaptation and Remote Delivery · 2020 $60,000 · Dan Garcia, co-PI
Question generators and MOOC-like videos and quizzes for remote CS61C, CS10, and CS169A.
Hopper-Dean Foundation, Accelerating CS Diversity Programs Fund · 2019 $600,000 · Dan Garcia, PI
The foundation granted $3M to the department to fund diversity initiatives. Summer salary supported the middle-school curriculum, Spanish translation, software development, and staff.
Hopper-Dean Foundation · 2016 $200,000 · Researcher (Daniel Garcia, PI)
Diversity initiatives in CS to support high schools nationwide. The course CS10 / Beauty and Joy of Computing was developed into an AP course, delivered through an edX SPOC.
Google CS Engagement Award · 2015 $5,000 · Michael Ball
Gift to support CS10 and the Beauty and Joy of Computing. Funds were used to develop Snap! enhancements and help fund the Snap! Cloud infrastructure.
Google’s 3X in 3 Years · 2015 $900,000 · Student Researcher (Dan Garcia)
Three-year project to grow undergraduate capacity and support diversity via “Scaling Computer Science through Targeted Engagement.” Goals included reducing the intro GPA gap, increasing software-engineering enrollment, and tripling women and URM CS majors.
NSF STEM-C BJC4NYC: Bringing the Beauty and Joy of Computing to the Largest School System in the US · 2014 $7,874,876 · Consultant
Curricular materials, based on the Beauty and Joy of Computing, for teaching CS Principles at the high-school level using Snap!. Trained 100 NYC high-school teachers; reviewed/edited curriculum with EDC; developed BJCx (with auto-grading) as a SPOC; supported teachers online.
edX · 2014 $50,000 · Staff
Development of BJCx, a CS Principles edX MOOC offered as a synchronous SPOC for high schools, a synchronous open MOOC, and an asynchronous self-study course. Supported Snap! cloud integration, autograding, and online support for students and teachers.
Students Supervised
- Rebecca Dang · May 2026 (Co-advised with Lisa Yan)
- Edwin Vargas-Navarro · May 2025 (Co-advised with Lisa Yan)
- Alex Kassil · May 2021 — Active Academic Integrity (Co-advised with John DeNero). www2.eecs.berkeley.edu/Pubs/TechRpts/2021/EECS-2021-157.html
- Mansi Shah · May 2020 — Exploring the Use of Parsons Problems for Learning a New Programming Language (2nd Reader; advised by Dan Garcia). www2.eecs.berkeley.edu/Pubs/TechRpts/2020/EECS-2020-88.html
- Harikaran Subbaraj · May 2020 — Using Dataflow for Machine Learning Inference (2nd Reader; advised by Joey Gonzalez). www2.eecs.berkeley.edu/Pubs/TechRpts/2020/EECS-2020-75.html
Service
Professional Service
- 2024 — SIGCSE Online: 2024 Posters and Lightning Talks Program Chair
- 2024 — Snap!shot 2024 Co-Organizer; Technical Lead
- 2023 — Snap!Con 2023 Co-Organizer; Technical Lead
- 2022 — Snap!Con 2022 Co-Organizer; Technical Lead
- 2021 — Snap!shot 2021 Mini-Conference Co-Organizer; Technical Lead, December 2021
- 2021 — Snap!Con 2021 Co-Organizer; Technical Lead
- 2021 — SIGCSE Technical Symposium Publicity Co-Chair
- 2021 — SIGCSE Technical Symposium Associate Program Chair / Senior Reviewer “Experience Reports and Tools”
- 2020 — Snap!shot 2020 Mini-Conference Co-Organizer; Technical Lead
- 2020 — Snap!Con 2020 Co-Organizer; Technical Lead
- 2020 — SIGCSE Technical Symposium Publicity Co-Chair
- 2018–2020 — SIGCSE Technical Symposium Computer Science Principles Providers and Teachers Forum Co-Organizer (Launched because there had been no formal face-to-face community for providers and teachers of CSP to discuss best practices, feedback, or share teaching experiences at SIGCSE.)
- 2016–2020 — SIGCSE Technical Symposium Reviewer
- 2018 — SIGCSE Technical Symposium Photography Chair
Departmental & Institutional Service
- 2025–2026 — UC Berkeley EECS Summer 2026 Instruction Co-Director
- 2026 — UC Berkeley Unit 18 Faculty Excellence Review Committee (Lecturer in Computer Science)
- 2024–2025 — UC Berkeley EECS Summer 2025 Instruction Co-Director
- 2025 — UC Berkeley Unit 18 Faculty Excellence Review Committee (Lecturer in Economics)
- 2024–2025 — UC Berkeley EECS Computer Networks and Instructional Labs Committee
- 2023–2024 — UC Berkeley EECS Summer 2024 Instruction Co-Director (Hired 10 Unit 18 Lecturers; involved in union- and campus-level negotiations.)
- 2023–2026 — UC Berkeley Teach-Net Faculty Community Moderator (Campus-wide community of 1,000 faculty, staff, and administrators.)
- 2022–2023 — UC Berkeley EECS Summer 2023 Instruction Coordinator
- 2019–2025 — UC Berkeley EECS Undergraduate Study Committee
- 2021–2022 — UC Berkeley EECS Summer 2022 Instruction Co-Coordinator
- 2021–2022 — UC Berkeley: Research, Teaching & Learning Faculty Advisory Committee, Co-Chair
- 2020–2023 — EECS Department Student Grievances Committee, CS Chair
- 2020–2021 — UC Berkeley: Disabled Students Program Faculty Advisory Committee, Member
- 2020–2021 — UC Berkeley: Research, Teaching & Learning Faculty Advisory Committee, Member
- Winter 2020–2021 — UC Berkeley Working Group: Online Proctoring Policies, Member
- Spring 2020 — UC Berkeley Working Group: Best Practices for Remote Exams, Member
- 2016 — UC Berkeley EECS Graduate Student Instructor Survey Presentation for Faculty
- 2014–2015 — UC Berkeley EECS Undergraduate Study Committee, Student Member
Writing & Publications
Invited Talks, Workshops & Lectures
-
Faberllull: Educational Programming Languages and Robotics IX (Invited Resident). Olot, Spain, 2026. faberllull.cat/ca/residencia.cfm?id=45467.
-
Faberllull: Educational Programming Languages and Robotics VIII (Invited Resident). Olot, Spain, 2025. faberllull.cat/en/residencia.cfm?id=43646.
-
Faberllull: Educational Programming Languages and Robotics VII (Invited Resident). Olot, Spain, 2024. faberllull.cat/en/residencia.cfm?id=43646.
-
Faberllull: Educational Programming Languages and Robotics VI (Invited Resident). Olot, Spain, 2023. faberllull.cat/en/residencia.cfm?id=42597.
-
ChatGPT: What does it mean for Education? (Invited Panelist). UC Berkeley Center for Teaching and Learning, 2023.
-
UC Berkeley Vice Provost for Undergraduate Education’s Remote Proctoring Session (Online Workshop, Co-host). UC Berkeley, August 2022.
-
Educational Programming Languages and Systems (Invited participant, Dagstuhl Seminar 22302). Wadern, Germany, 2022. doi.org/10.4230/DagRep.12.7.205.
-
UC Berkeley Vice Provost for Undergraduate Education’s Remote Proctoring Session (Online Workshop, Co-host). UC Berkeley, January 2022.
-
Ball, Michael; Garcia, Daniel. Online Learning (Talk). University of Washington CS Education Seminar (Online), 2020.
-
Ball, Michael; Garcia, Daniel. Mastery Learning at Scale (Talk). University of Washington CS Education Seminar (Online), 2020.
Conference Papers
- Garcia, Daniel; Fries, Mary; Ball, Michael; Fox, Pamela; Gelosi, Deanna; Mock, Lauren; Dastur, Della; Briccetti, Dave; Kahn, Bob. BJC Sparks: A New Functional-First Middle School CS Curriculum. SIGCSE 2023, March 2023. https://doi.org/10.1145/3545945.3569842
Conference and Workshop Presentations
- Ball, Michael; Mönig, Jens; Garcia, Daniel; Phelps, Victoria; Garcia, Yuan; Huegle, Jadga. A Community of Snap! Educators — New Features and Tools for Teaching AI (Demo). SIGCSE 2026 (Proc. of the 57th ACM Technical Symposium on CS Education V.2), 2026. doi.org/10.1145/3770761.3777109.
- Blank, Adam; Ball, Michael; McGaha, Travis; Rampure, Suraj; Velasco, Yesenia; Walther, Kendra. Teaching Faculty Careers without a PhD: A Mentoring Community (BoF). SIGCSE 2026, 2026. doi.org/10.1145/3770761.3777084.
- Ball, Michael; Garcia, Daniel; Fries, Mary; Hill, Marnie; Dastur, Della; Mock, Lauren. The Beauty and Joy of Computing: CS Curricula That Scales from Middle School to University (Tutorial). SIGCSE 2026, 2026. doi.org/10.1145/3770761.3777056.
- Garcia, Daniel; Mönig, Jens; Hügle, Jadga; Fries, Mary; Kang, Jane M.; Dastur, Delnavaz; Phelps, Victoria; Bettencourt, Bryant; Ball, Michael; Mock, Lauren. A Hands-on and Interactive Introduction to the Fundamentals of Artificial Intelligence using Snap! (Tutorial). SIGCSE 2026, 2026. doi.org/10.1145/3770761.3777048.
- Ball, Michael; Rampure, Suraj; Lin, Kevin. A New Class of Teaching-Track Faculty: No Ph.D. Required (BoF). SIGCSE 2025, 2025. doi.org/10.1145/3641555.3705113.
- Phelps, Victoria; Ball, Michael; Garcia, Daniel; Garcia, Yuan. Snap! 10 — From Blocks to AI: Empowering Learning with Custom Primitives and Machine Learning (Demo). SIGCSE 2025, 2025. doi.org/10.1145/3641555.3705048.
- Garcia, Daniel; Fries, Mary; Ball, Michael; Mock, Lauren. Igniting Curiosity with BJC Sparks: A Transformative Curriculum for Middle and High School Computer Science (Workshop). SIGCSE 2024, 2024. doi.org/10.1145/3626253.3633415.
- Garcia, Daniel; Hug, Josh; Badrinath, Anirudhan; Ball, Michael; Mock, Lauren. Student Mission Control: Integrating Space Data Exploration into Data and Computer Science Education (Workshop). SIGCSE 2024, 2024. doi.org/10.1145/3626253.3633417.
- Ball, Michael; Garcia, Daniel; Phelps, Victoria; Garcia, Yuan. Snap! 9 — Support for Teachers and Programming with Data (Demo). SIGCSE 2024, 2024. doi.org/10.1145/3626253.3635437.
- Walther, Kendra; Blank, Adam; Ball, Michael; Rampure, Suraj. A New Class of Teaching-Track Faculty: No Ph.D. Required (Panel). SIGCSE 2023, 2023. doi.org/10.1145/3545947.3569608.
- Zhou, Lauren; Dewan, Akshit; Kothapalli, Anirudh; Fox, Pamela; Ball, Michael; Joseph, Thomas. Implementing Faded Parsons Problems in a Very Large CS1 Course (Poster). SIGCSE 2023, 2023. doi.org/10.1145/3545947.3576300.
- Ball, Michael; Garcia, Daniel; Garcia, Yuan. Snap! 8 — Smart Script Pics and Metaprogramming for All! (Demo). SIGCSE 2023, 2023. doi.org/10.1145/3545947.3573231.
- Ball, Michael; Garcia, Daniel; Garcia, Yuan. Ten Years of Snap! — Where Should We Go Next? (Birds of a Feather). SIGCSE 2023, 2023. doi.org/10.1145/3545947.3573357.
- Walther, Kendra; Blank, Adam; Ball, Michael; Rampure, Suraj. A New Class of Teaching-Track Faculty: No Ph.D. Required (Panel). Proceedings of the 53rd ACM Technical Symposium on Computer Science Education V. 2, 2022. doi.org/10.1145/3478432.3499227.
- Garcia, Dan; Ball, Michael; Garcia, Yuan. Snap! 7 - Microworlds, Scenes, and Extensions! (Demo). Proceedings of the 53rd ACM Technical Symposium on Computer Science Education V. 2, 2022. doi.org/10.1145/3478432.3499266.
- Ball, Michael; Mock, Lauren; Garcia, Dan; Barnes, Tiffany; Hill, Marnie; Fries, Mary; Fox, Pamela; Garcia, Yuan. Beauty and Joy of Computing: AP CS Principles & Middle School Curriculum (Workshop). Proceedings of the 53rd ACM Technical Symposium on Computer Science Education V. 2, 2022. doi.org/10.1145/3478432.3499145.
- Blank, Adam; Walther, Kendra; Ball, Michael. Teaching Track Faculty with a Masters-Only (BoF). 2021 Richard Tapia Celebration of Computing (Online), 2021.
- Mönig, Jens; Romagosa, Bernat; Harvey, Brian; Ball, Michael; Hügle, Jadga. What Might Be the Future of Snap!? (Panel). Snap!Con 2021 (Online), 2021. www.snapcon.org/conferences/2021/program/proposals/295.
- Garcia, Daniel; Gelosi, Deanna; Fries, Mary; Fox, Pamela; Ball, Michael. BJC Middle School 1.0 (Panel). Snap!Con 2021 (Online), 2021. www.snapcon.org/conferences/2021/program/proposals/277.
- Ball, Michael; DeOrio, Andrew; Hsia, Justin; Blank, Adam. Teaching TAs to Teach: Strategies for TA Training (Panel). Proceedings of the 52nd ACM Technical Symposium on Computer Science Education, 2021. doi.org/10.1145/3408877.3432579.
- Kassil, Alex; Ball, Michael. Active Academic Integrity (Poster). Proceedings of the 52nd ACM Technical Symposium on Computer Science Education, 2021. doi.org/10.1145/3408877.3439674.
- Ball, Michael; Garcia, Dan; Arvai, Eric. Effective Video Production for Online and In-Person Courses (Workshop). Proceedings of the 52nd ACM Technical Symposium on Computer Science Education, 2021. doi.org/10.1145/3408877.3432509.
- Lin, Kevin; Battestilli, Lina; Ball, Michael. Strategies for Authentic Assessments of Mastery in CS Courses (Birds of a Feather). Proceedings of the 52nd ACM Technical Symposium on Computer Science Education, 2021. doi.org/10.1145/3408877.3439504.
- Hill, Marnie; Garcia, Dan; Barnes, Tiffany; Mock, Lauren; Ball, Michael; Isvik, Amy; Bell, Dave. Teaching with the Beauty and Joy of Computing – AP CSP and More! (Workshop). Proceedings of the 52nd ACM Technical Symposium on Computer Science Education, 2021. doi.org/10.1145/3408877.3432507.
- Garcia, Dan; Ball, Michael. Snap!6, Introducing Hyperblocks! (Demo). Proceedings of the 52nd ACM Technical Symposium on Computer Science Education, 2021. doi.org/10.1145/3408877.3439545.
- Mönig, Jens; Harvey, Brian; Ball, Michael; Guillén, Joan; Hügle, Jadga; Romagosa, Bernat. The Future of Snap! (Panel). Snap!Con 2020 (Online), 2020. www.snapcon.org/conferences/2020/program/proposals/35.
- Garcia, Dan; Ball, Michael. Snap! V5, Our Biggest, Feature-Filled Release Ever! (Demo). Proceedings of the 51st ACM Technical Symposium on Computer Science Education, 2020. doi.org/10.1145/3328778.3372549.
- Ball, Michael; Mock, Lauren; Garcia, Dan; Barnes, Tiffany; Hill, Marnie; Milliken, Alexandra; Paley, Joshua; Lopez, Efrain; Bohrer, Jason. The Beauty and Joy of Computing Curriculum and Teacher Professional Development (Workshop). Proceedings of the 51st ACM Technical Symposium on Computer Science Education, 2020. doi.org/10.1145/3328778.3367029.
- Ball, Michael; Hsia, Justin; Pon-Barry, Heather; DeOrio, Andrew; Blank, Adam. Teaching TAs To Teach: Strategies for TA Training (Panel). Proceedings of the 51st ACM Technical Symposium on Computer Science Education, 2020. doi.org/10.1145/3328778.3366987.
- Ball, Michael; Jatzlau, Sven. An Analysis of 500,000 Snap! Projects (Lightning Talk). Snap!Con 2019, Heidelberg, Germany, 2019.
- Ball, Michael. Using JSFunction with the Wolfram Alpha API (Lightning Talk). Snap!Con 2019, Heidelberg, Germany, 2019.
- Mönig, Jens; Romagosa, Bernat; Ball, Michael; Harvey, Brian. The Future of Snap! (Panel). Snap!Con 2019, 2019.
- Ball, Michael. Snap! — A Look at 550K Projects (Poster). Snap!Con 2019, Heidelberg, Germany, 2019.
- Ball, Michael. What’s New in Snap! 5? (Poster). Snap!Con 2019, Heidelberg, Germany, 2019.
- Ball, Michael. A Look at 6 Years of the Snap! Cloud. Snap!Con 2019, Heidelberg, Germany, 2019.
- Ball, Michael; Mönig, Jens; Romagosa, Bernat; Harvey, Brian. Snap! A Look at 5 Years, 250,000 Users and 2 Million Projects (Poster). Proceedings of the 50th ACM Technical Symposium on Computer Science Education, 2019. doi.org/10.1145/3287324.3293863.
- Mock, Lauren; Ball, Michael; Garcia, Daniel; Barnes, Tiffany. Computer Science Principles Providers and Teachers Forum (Pre-Symposium Workshop). SIGCSE 2019, 2019.
- Ball, Michael. Teaching Accessibility Using Software (SIGCSE 2019 Pre-Symposium Event). SIGCSE 2019, 2019.
- Ball, Michael. IRT in 5 Minutes: Easy Ways to Better Understand an Assessment (Abstract Only) (Lightning Talk). Proceedings of the 49th ACM Technical Symposium on Computer Science Education, 2018. doi.org/10.1145/3159450.3162211.
- Galanos, Ria; Ball, Michael; Dougherty, John; Hummel, Joe; Malan, David J.. Technology We Can’t Live Without!, Revisited (Panel). Proceedings of the 49th ACM Technical Symposium on Computer Science Education, 2018. doi.org/10.1145/3159450.3159629.
- Milliken, Alexandra; Ball, Michael; Mock, Lauren. AP CS Principles and The Beauty and Joy of Computing Curriculum: (Abstract Only) (Workshop). Proceedings of the 49th ACM Technical Symposium on Computer Science Education, 2018. doi.org/10.1145/3159450.3162375.
- Garcia, Daniel; Harvey, Brian; Mönig, Jens; Ball, Michael; Romagosa, Bernat; Low, Robert; Mock, Lauren. The Beauty and Joy of Computing (Workshop). Scratch Conference 2017, Bordeaux, France, 2017.
- Ball, Michael; Garcia, Daniel; Mock, Lauren. Writing Autograders for Snap! and Integrating them Into Your Course (Short Talk). Scratch Conference 2017, Bordeaux, France, 2017.
- Garcia, Daniel; Harvey, Brian; Mönig, Jens; Ball, Michael; Mock, Lauren; Low, Robert; Romagosa, Bernat. The Beauty and Joy of Computing and the Snap! Programming Language (Poster). Scratch Conference 2017, Bordeaux, France, 2017.
- Ball, Michael; Garcia, Daniel; Mock, Lauren. Early Analysis of “In-Lab” Autograding for Snap! (Poster). Scratch Conference 2017, Bordeaux, France, 2017.
- Mock, Lauren; Ball, Michael; Garcia, Daniel; Harvey, Brian. Lessons Learned Delivering a Customizable Course with Autograders to 200 Teachers (Ignite Talk). Scratch Conference 2017, Bordeaux, France, 2017.
- Garcia, Daniel; Romagosa, Bernat; Ball, Michael; Mönig, Jens; Harvey, Brian. Programming the Internet (of things) with Snap! (Short Demo). Scratch Conference 2017, Bordeaux, France, 2017.
- Ball, Michael. Writing Autograders for Snap! And Integrating Them Into Your Course (Abstract Only) (Demo). Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education, 2017. doi.org/10.1145/3017680.3022385.
- Ball, Michael. Implementing “In-Lab” Autograding for Snap! (Abstract Only) (Poster). Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education, 2017. doi.org/10.1145/3017680.3022443.
- Garcia, Daniel; Ball, Michael. Bringing the Beauty and Joy of Computing to the World via edX: An Experience Report (Panel). Scratch Conference 2016, Cambridge, MA, 2016.
- Ball, Michael A.; Garcia, Daniel D.. Autograding and Feedback for Snap! A Visual Programming Language (Abstract Only) (Poster). Proceedings of the 47th ACM Technical Symposium on Computing Science Education, 2016. doi.org/10.1145/2839509.2850572.
- Garcia, Daniel D.; Barnes, Tiffany; Ball, Michael; Biga, Emil; Paley, Josh; Hill, Marnie; Mattix, Nathan; Safa, Parisa; Morris, Sean; Kenner, Shawn. AP CS Principles and The Beauty and Joy of Computing Curriculum (Abstract Only) (Workshop). Proceedings of the 47th ACM Technical Symposium on Computing Science Education, 2016. doi.org/10.1145/2839509.2844714.
- Ball, Michael A.. Using Instant Chat for Fun and for Profit to Run a Large Class (Abstract Only) (Abstract Only). Proceedings of the 47th ACM Technical Symposium on Computing Science Education, 2016. doi.org/10.1145/2839509.2850526.
- Garcia, Daniel; Harvey, Brian; Mönig, Jens; Ball, Michael. The Beauty and Joy of Computing (Workshop). Scratch 2015, Amsterdam, Netherlands, 2015.
- Garcia, Daniel; Harvey, Brian; Mönig, Jens; Ball, Michael. Bringing the Beauty and Joy of Computing to the World via edX (Special Session). Scratch 2015, Amsterdam, Netherlands, 2015.
- Garcia, Daniel; Harvey, Brian; Mönig, Jens; Ball, Michael. The Beauty and Joy of Computing and the Snap! Programming Language (Poster). Scratch 2015, Amsterdam, Netherlands, 2015.
- Ball, Michael; Mock, Lauren; McKinsey, Jonathan; Machardy, Zachary; Garcia, Daniel; Titterton, Nathaniel; Harvey, Brian. Oh, Snap! Enabling and Encouraging Success in CS1 (Abstract Only) (Poster). Proceedings of the 46th ACM Technical Symposium on Computer Science Education, 2015. doi.org/10.1145/2676723.2691947.
- Garcia, Daniel; Ball, Michael; Parikh, Aatash. L@S 2014 Demo: Best Practices for MOOC Video (Demo + Paper). Proceedings of the First ACM Conference on Learning @ Scale Conference, 2014. doi.org/10.1145/2556325.2567889.
Other Writing
-
Fox, Armando. Engineering Software as a Service, 2nd Edition — Contributed Book Chapter on Accessibility. saasbook.info. saasbook.info.
-
Ball, Michael. AUTOGRADING FOR SNAP!. Hello World Magazine, Issue 3, Autumn 2017, 2017. magazines-static.raspberrypi.org/issues/full_pdfs/000/000/004/orignal/HelloWorld03.pdf.
-
Ball, Michael. Where are the Practical Computing Classes? (Op-Ed). The Daily Californian, 2014. www.dailycal.org/2014/01/31/practical-computing-classes/.
Theses
- Ball, Michael. Lambda: Autograding for Snap! (Master’s Thesis). UC Berkeley EECS Technical Report 2018-2, 2018. www2.eecs.berkeley.edu/Pubs/TechRpts/2018/EECS-2018-2.pdf.
Media & News
- CSEd Podcast — Guest Editor — S3xE4: Accessibility with Richard Ladner. csedpodcast.org/blog/season3_episode4/
- CSEd Podcast — Guest Host — S3xE3: Undergraduate Teaching Assistants with Michael Ball. csedpodcast.org/blog/season3_episode3/
- NPR — Adding ‘Beauty And Joy’ To Obama’s Push For Computer Science Teaching · 2016-01-14. www.npr.org/sections/ed/2016/01/14/462954645/adding-beauty-and-joy-to-obamas-push
Academic & Open-Source Software
Snap!
Snap! is a blocks-based visual language designed to make teaching computer science easy while exposing hard concepts like lambdas, recursion, and web APIs. I contribute to the core IDE and collaboratively designed, built, and maintain the Snap! cloud-based project infrastructure, which currently supports more than 5 million projects and 500,000 users.
The Beauty and Joy of Computing
BJC is a university-level non-majors or high-school AP CS Principles course designed to broaden participation in computing. In addition to programming, the course emphasizes the context and implications of computing. I provide infrastructure maintenance, technical consulting, and curriculum review, and contributed heavily to early versions of the course still used at UC Berkeley.
Flextensions — Assignment Extension Management
Web application that streamlines requesting, approving, and applying assignment extensions in Canvas. Originally piloted with support from Berkeley’s Research, Teaching, and Learning unit, the tool reached 10,000+ student enrollments across two semesters. Supervised a team of 12 students and led the campus integration with Canvas and partner units.
github.com/berkeley-cdss/flextensions
Alonzo, A Staff Chatbot
Course staff chatbot that automates grading workflows, including in-class oral lab check-offs for CS10. Maintained across multiple generations of TAs.
Downshift
Prior maintainer of Downshift, an open-source React component (~3M weekly NPM downloads). Contributed accessibility enhancements and reviews.
Technical Skills
- Programming Languages — JavaScript, Ruby, Python, Snap!, SQL, Lua, Bash, CSS/SASS, HTML. Less frequently used: Scheme, C, Java, Apex, MATLAB.
- Development Tech — Agile development, RESTful design, Ruby on Rails, Git, React, accessibility testing and compliance, PostgreSQL, AWS / GCP, Heroku, Terraform, software testing, continuous integration.
- Media Engineering — Semi-professional photographer, videography, online event production, audio recording, Final Cut Pro X, Adobe Creative Suite, advanced Zoom programming.
References
References available upon request.