Software Design by Example Personas

These personas describe who Software Design by Example in Python is for:

  • Aïsha has a master’s degree in genomics and does very complicated science things in a wet lab. She has taught herself enough Python to do some sophisticated data analysis, but is constantly frustrated by what she doesn’t know about how software actually works. This material will take away some of the mystery.

  • Rupinder is studying computer science at college. He uses Git and style checkers in his assignments and wants to know how they work. This material will answer his questions and show him new ways to think about software design.

  • Yim teaches two college courses on web programming. They are frustrated that so many books talk about algorithms but not about design and use examples that their students can’t relate to. This material will give them material they can use in class and starting points for course projects.

Like these three personas, readers should be able to:

  • Write Python programs using dictionaries, exceptions, and classes. (We assume that if you can use these, you can also use lists, loops, conditionals, and functions.)

  • Create static web pages using HTML and CSS.

  • Use Git to save and share files. (It’s OK not to know the more obscure commands.)

  • Process a tree’s nodes recursively. (Trees and recursion are the most complicated things we don’t explain.)

You can read this book on its own or use it as a classroom resource. If you need projects for a software design course, adding a tool to those covered here would be fun as well as educational: please email me if you’d like to chat.