PIC16A covers programming in Python. Python is a modern, interpreted language widely used for software development, scientific computation, and data science. Python is justly famous for its ease of use, extensive set of open-source tools, and vibrant online community.

First panel: one stick figure looks at another stick figure, who is flying. The first figure asks: 'You are flying! How?' The second stick figure replies: 'Python'. Second panel: the second stick figure explains 'I learned it last night! Everything is so simple! Hello world is just print Hello World!'. Third panel: The first figure responds: 'I dunno...dynamic typing? Whitespace?' The second figure enthuses: 'Come join us! Programming is fun again! It is a whole new world up here!' The first figure asks: 'But how are you flying?' Final panel: The second figure answers: `I just typed import antigravity. First figure: 'That's it?' Second figure: '...I also sampled everything in the medicine cabinet for comparison. But I think this is the Python.'
Comic by Randall Munroe at xkcd .

The first half of this course covers fundamental Python constructs, like data types, loops, functions, and classes. The second half of this course surveys a wide array of useful packages in the Python ecosystem, with a special emphasis on data science. By the end of the course, students will:

  1. Construct Python programs using functions, loops, classes, and other tools.
  2. Use existing modules and self-written code to solve complex problems.
  3. Make design decisions about the programming constructs best suited to a given problem.
  4. Write reusable code, by encapsulating core operations in functions and classes, and documenting these constructs carefully.
  5. Study problems and data sets from science, economics, politics, and literature.

This offering of PIC16A uses a flipped classroom format, and thereby emphasizes active learning and group problem-solving.