The Business, Science and Technology Desk of San Francisco Public Library and Bonfire School present Learn, Design and Build Software

Build software with Python

Software can be hard to understand. It’s harder still to make software. This class aims to make learning with an industry professional fun and engaging. Through a series of group exercises we will think about the needs of others and how we can solve their problems with software.

There are three main concepts in this series, each with it’s own class!

March 15th: Learn to find human needs for software

  • Listen and spend time with others to know what people need

March 22nd: Design software based on human needs

  • Draw pictures and tell a story of what to build to meet those needs

March 29th: Build software with Python using design

  • Code software and change it until it meets the needs of others

Location:

San Francisco Public Library
Computer Training Center
5th Floor, Main Library
(415) 557-4388

Ice Breakers

If you arrive early with other students, ask your neighbor:

  • What do you expect to learn today?
  • Why did you come to this class?
  • What programming have you done?
  • How did you get here today?

About the Instructor

Louis Rawlins is a writer and technologist building community in design and health. For the past decade, he designed mobile apps and built websites in Silicon Valley. Louis founded Bonfire School for people of any background to create what they want – crafts, software, dance and more – in a place that supports personal health. He dreams that it can become a physical school one day. Louis is excited to teach a public class in San Francisco, a city that has inspired him since he arrived in 2004.

If you have feedback or questions after the class, please email [email protected]

Mindful Moment

Let's take a breath for clarity to see how we are doing and what we will do next.

Group Introductions

Your instructor has lived in San Francisco for twelve years.

Where are you from? What would you like to learn?

How Computers Work

Before we start, it's good to review how computers work. Programming can be difficult because the computer system is built upon the work of many different parts that aid to remove complexity when we use these computers.

As a result, when we are programming a computer to do something for us, we must know exactly what the system expects, the inputs and outputs to the system, as well as some knowledge about how the computer stores information.

Knowing how the computer works helps us build the right thing for the right person

How Computers Work: The CPU and Memory

Introduction to Python

Python Interpreter

We will be using the Python REPL, which stands for read-eval-print loop. You can think of it as a command prompt that allow your computer to read input, evaluate it and then show you the result on the screen. That is the basic concept.

Python 3 REPL

What's an interpreted language?

Python is an interpreted language. As a gross over-generalization, we can think of programming language as having several layers:

  • Interpreted languages (like JavaScript, Python) are expressive because they use patterns that closely resemble English. Commands can generally be run immediately without being compiled.

  • Compiled languages (like Java, C++) are expressive and must be compiled to run on a computer.

  • Assembly language is an arcane, but expressive language for programming directly to a computer. It offers shortcuts to store data in memory registers and control how the program will run on a computer.

  • Machine code is the information that controls how the program will run on a computer.

Basic Concepts

Using repl.it, we will consider a few basic topics:

Reflect on what you did on your own and as a group. What was surprising? What was difficult?


Short Break

Get up and move around. Drink some water. We'll start again in 10 minutes.


Gopher

Our code example is inspired by Gopher which is a technology that came before the web. The aim of our program is to be simple and clear for people that want to find information. We will be using computers for what they are good at – storing and finding information.

Programming in Python

alt textalt text

Pair up with another student.

For the first interview:

  • Person A is driver
  • Person B is navigator

Finding Books

Pair up with another student. One of you can 'drive' and write code while the other person 'navigates' by calling out things you're looking for or might have missed. Working together facilitates learning because computer programming is a complex subject. Don't worry, you'll have time to work on your own as well.

We will again use repl.it and load the program from Python Code for SFPL (2017-03). Look through the code and see what you can learn.

Change the program to learn to new things. See what removing and adding code does to the output on your screen.

More Concepts

Using repl.it, we will consider a few basic topics:

What is the purpose of conditionals?

Why are functions important? How are we using them now and how could we use them? Take some time to explore.


After we are done building and changing software in Python, reflect on what you did one your own and as a group. What was surprising? What was difficult?

Professional Context

Bringing these skills together, we can start to understand the role of a software engineer. These skills help us learn how to express human needs as software, but we still need feedback about how well our software is working.

What does it mean to build software for human needs? When can you use these skills? How can it be useful?

Class Reflection

What worked and what would you change? Let's improve together.

Learn to find human needs

Design software

Build software with Python


Copyright 2017 Bonfire School

For use of curriculum, contact author [email protected] for permission.

alt text

results matching ""

    No results matching ""