Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Is your software teachable?

Is your software teachable?

For DevFestWI, 18 August 2022.

Dorothea Salo

August 18, 2022

More Decks by Dorothea Salo

Other Decks in Technology


  1. None
  2. Dorothea Salo Distinguished Teaching Faculty III Information School University of

    Wisconsin-Madison Is Your Software Teachable?
  3. Some stuff I teach LIS 500: Code and Power (and

    PHP) LIS 510: Human Factors in Information Security LIS 711: Data Management LIS 668: Digital Collections and Curation CS 202: Introduction to Computing LIS 751: Database Design/SQL LIS 640: Linked Data/RDF LIS 632: Metadata and XML LIS 351: Introduction to Digital Information
  4. • Does your software fi t into one or more

    of my classes? • Does your software do something useful that students should learn? • Would you like to hire a new graduate who’s learned your software? Would your clients hire new graduates to work with your software? • Would you like additional mindshare or market share for your software? Why do you care? Does it matter?
  5. Then you want me to teach it.

  6. Then you want me to teach it. us

  7. • My budget for software: $0 • My budget for

    server space: $0 • Available servers dedicated to teaching: 0 • # FTE assigned to systems administration for teaching: 0 • Amount of formal education I have in sysadminning, devops, etc.: 0 • (never mind infosec; I know more than the average bear, but…) Constraints
  8. TIME

  9. • If I can’t install and con fi gure it

    in the time and with the resources I actually have, I can’t teach it. • If I can’t fi gure out how to make it do something useful, I can’t teach it. • Corollary: If my students and I can’t get unstuck using its documentation, I can’t teach it. I am all the tech support there is for specialized software in my courses. • If I can’t build demos and assignments that help students learn it and do useful things with it, I don’t want to teach it. How pointless. Lessons: Working within constraints
  10. War Story 1: The Useless Digital Library

  11. If you say your software is “out of the box”

    you better mean it. Lesson:
  12. • Do not mire me in dependency hell. I do

    not have time for it. • Make it work with a static IP address. Don’t mire me in FQDN hell either! • Make it installable on MAMP/WAMP, VMs, the likes of Digital Ocean, Docker, and for bonus points, CPanel/Softaculous/Installatron. • Do I really need root to install this? Really? REALLY? • Explicitly document the Minimum Necessary Con fi guration Changes. • Help me make it multi-user (as appropriate). Write me a shell script to add a class’s worth of login credentials with minimum hassle. Lessons: server software
  13. • Prior tech experience is a bimodal curve. Including in

    advanced classes! • Wide range of con fi dence with tech and learning tech. • Most are future “end-user programmers.” Tech in and of itself is not their intended career path. • Collectively cross-all-the-platforms. Some on Windows, some MacOS, a very few Linux/BSD, the occasional ChromeBook (boo!). • Wide range of socioeconomic statuses. Most work; many have to! • Wide range of personal-technology age. Seven-year-old laptops? Sure. My students…
  14. War Story 2: The XML Editor

  15. • Every cent my students have to pay to license

    your software… • … is money they don’t have for basic needs. (Ask me why I almost never assign commercial textbooks.) • I hope it’s obvious whom among my students this hits worst. • Please treat my students as a future market, not a current one. Thanks. • (Demo sites, educational licensing, open source… all can work.) Issues of inclusion!
  16. War Story 3: The Uninstallable Infosec Tool

  17. • DOCUMENT YOUR SOFTWARE. As something other than an afterthought.

    On every OS/distro you claim to support. • Assume less about my (students’) prior preparation. • Community support? Don’t make us hunt for your community. • Have [email protected]$$hole rules in your community, and enforce them. That’s another inclusion issue, folks. Include all my students. Lessons: help me help students! NAUGHTY WORD!
  18. Actual classroom choices I have actually made

  19. • Power: Medium • Flexibility: Medium-to-low • Documentation: BRILLIANT •

    Community: Large, helpful • Power: High • Flexibility: High • Documentation: Incomplete and confusing • Community: scattered, unreliable Scratch Snap So I teach with Scratch.
  20. • Time to install: 90 minutes • Install docco: Horrible

    • Post-install con fi g: Essentially in fi nite • Capacity after install: 0 • Time to install: 90 seconds • Install docco: Excellent • Post-install con fi g: Some, but manageable • Capacity after install: Lots! Useless DL Omeka So I teach with Omeka.
  21. • Cost: $0 • OSes: all (minus Chromebooks) • GUI:

    yes • Kewl Trix: sure, lots, go through the menus to discover them • Sample data to play with: yes! • Cost: usually $0, sometimes $$$$$ • OSes: only some • GUI: nope, command-line only • Kewl Trix: only via incomprehensible command-line incantations • Sample data: get your own, chum(p) Wireshark™ Anything else So I teach with Wireshark.
  22. • Cross-platform client GUI or GTFO. I do not have

    class time to teach shell to future end-user programmers, much less a programming language. • The easier and faster it is to fi nd and explain Kewl Trix with your software, the easier it is for me to teach it. • Give me sample data, sample problems, sample work fl ows, sample everything! Bonus points: walk me through the work fl ow, soup to nuts, one step at a time. • (Good practice: many infosec capture-the- fl ag events do problem writeups. I adore those! Could more software sectors do them?) Lessons
  23. I would like to teach your software. No, really, I

  24. Please help me do it.

  25. Thank you! [email protected] ▪ https://speakerdeck.com/dsalo This presentation is copyright 2022

    by Dorothea Salo. It is available under a Creative Commons International 4.0 Attribution license (CC-BY).