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.

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

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.

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

Service

Professional Service

Departmental & Institutional Service

Writing & Publications

Invited Talks, Workshops & Lectures

  1. Faberllull: Educational Programming Languages and Robotics IX (Invited Resident). Olot, Spain, 2026. faberllull.cat/ca/residencia.cfm?id=45467.

  2. Faberllull: Educational Programming Languages and Robotics VIII (Invited Resident). Olot, Spain, 2025. faberllull.cat/en/residencia.cfm?id=43646.

  3. Faberllull: Educational Programming Languages and Robotics VII (Invited Resident). Olot, Spain, 2024. faberllull.cat/en/residencia.cfm?id=43646.

  4. Faberllull: Educational Programming Languages and Robotics VI (Invited Resident). Olot, Spain, 2023. faberllull.cat/en/residencia.cfm?id=42597.

  5. ChatGPT: What does it mean for Education? (Invited Panelist). UC Berkeley Center for Teaching and Learning, 2023.

  6. UC Berkeley Vice Provost for Undergraduate Education’s Remote Proctoring Session (Online Workshop, Co-host). UC Berkeley, August 2022.

  7. Educational Programming Languages and Systems (Invited participant, Dagstuhl Seminar 22302). Wadern, Germany, 2022. doi.org/10.4230/DagRep.12.7.205.

  8. UC Berkeley Vice Provost for Undergraduate Education’s Remote Proctoring Session (Online Workshop, Co-host). UC Berkeley, January 2022.

  9. Ball, Michael; Garcia, Daniel. Online Learning (Talk). University of Washington CS Education Seminar (Online), 2020.

  10. Ball, Michael; Garcia, Daniel. Mastery Learning at Scale (Talk). University of Washington CS Education Seminar (Online), 2020.

Conference Papers

  1. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. Blank, Adam; Walther, Kendra; Ball, Michael. Teaching Track Faculty with a Masters-Only (BoF). 2021 Richard Tapia Celebration of Computing (Online), 2021.
  18. 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.
  19. 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.
  20. 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.
  21. 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.
  22. 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.
  23. 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.
  24. 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.
  25. 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.
  26. 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.
  27. 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.
  28. 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.
  29. 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.
  30. Ball, Michael; Jatzlau, Sven. An Analysis of 500,000 Snap! Projects (Lightning Talk). Snap!Con 2019, Heidelberg, Germany, 2019.
  31. Ball, Michael. Using JSFunction with the Wolfram Alpha API (Lightning Talk). Snap!Con 2019, Heidelberg, Germany, 2019.
  32. Mönig, Jens; Romagosa, Bernat; Ball, Michael; Harvey, Brian. The Future of Snap! (Panel). Snap!Con 2019, 2019.
  33. Ball, Michael. Snap! — A Look at 550K Projects (Poster). Snap!Con 2019, Heidelberg, Germany, 2019.
  34. Ball, Michael. What’s New in Snap! 5? (Poster). Snap!Con 2019, Heidelberg, Germany, 2019.
  35. Ball, Michael. A Look at 6 Years of the Snap! Cloud. Snap!Con 2019, Heidelberg, Germany, 2019.
  36. 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.
  37. Mock, Lauren; Ball, Michael; Garcia, Daniel; Barnes, Tiffany. Computer Science Principles Providers and Teachers Forum (Pre-Symposium Workshop). SIGCSE 2019, 2019.
  38. Ball, Michael. Teaching Accessibility Using Software (SIGCSE 2019 Pre-Symposium Event). SIGCSE 2019, 2019.
  39. 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.
  40. 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.
  41. 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.
  42. 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.
  43. Ball, Michael; Garcia, Daniel; Mock, Lauren. Writing Autograders for Snap! and Integrating them Into Your Course (Short Talk). Scratch Conference 2017, Bordeaux, France, 2017.
  44. 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.
  45. Ball, Michael; Garcia, Daniel; Mock, Lauren. Early Analysis of “In-Lab” Autograding for Snap! (Poster). Scratch Conference 2017, Bordeaux, France, 2017.
  46. 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.
  47. 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.
  48. 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.
  49. 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.
  50. 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.
  51. 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.
  52. 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.
  53. 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.
  54. Garcia, Daniel; Harvey, Brian; Mönig, Jens; Ball, Michael. The Beauty and Joy of Computing (Workshop). Scratch 2015, Amsterdam, Netherlands, 2015.
  55. 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.
  56. 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.
  57. 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.
  58. 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

  1. Fox, Armando. Engineering Software as a Service, 2nd Edition — Contributed Book Chapter on Accessibility. saasbook.info. saasbook.info.

  2. 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.

  3. Ball, Michael. Where are the Practical Computing Classes? (Op-Ed). The Daily Californian, 2014. www.dailycal.org/2014/01/31/practical-computing-classes/.

Theses

  1. 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

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.

snap.berkeley.edu

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.

bjc.berkeley.edu

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.

github.com/cs10/Alonzo

Downshift

Prior maintainer of Downshift, an open-source React component (~3M weekly NPM downloads). Contributed accessibility enhancements and reviews.

github.com/paypal/downshift

Technical Skills

References

References available upon request.