Class Description
Practical Python Programming teaches the fundamentals of Python by solving a series of problems that incrementally introduce features of the language. "Learning by doing" is emphasized. Good programming practices and algorithm design will be important. The class will include hands-on programming in a variety of application areas. Major general-purpose Python modules including numeric and graphing modules will be explored in the context of simple problems to solve. A solid grasp of basic college level math is a required. There will be lots of programming assignments.
Time: 12:30-1:30 Pacific Time MWF
Location: Live at the time above via Zoom (no face to face class).
See BBLearn for class for Zoom id. Yes, you can take this course anywhere in the world.
Tests: TBD
Final: TBD
Coding: *Lots* of Python plus some UNIX skills.
Goals:
- Learn the Python Language
- Learn to use several important and popular Python modules
- Practice these skills
Covid-19 Adjustments
|
Recommended Textbook: |
Python Programming in Context, 3rd ed. ISBN: 978-1284175554, Jones and Bartlett Learning |
|
Recommended Textbook: |
The Quick Python Book, 3rd ed. ISBN: 978-1617294037, Manning Publications |
Estimated Syllabus
This syllabus is an estimate of what we might cover this semester. This is the first time this class has been taught.
Wk# | Monday |
Topics/Links | Assignments | Comments |
---|---|---|---|---|
1 | Jan 11 | Introduction to the class, what we plan on doing, how the class works, where to find stuff. | assignment | NO CLASS MONDAY |
2 | Jan 18 | Introduction to the course. Survey. Pros and cons of using Python. What are your options. The layout and philosphy of the Python language and how it compares with other languages. Running Python. How to get Python on your machine. IDEs such as idle and Jupyter. UNIX basics. ways to run Python. | NO CLASS MONDAY - MLK/Human Rights Day | |
3 | Jan 25 | Object/function/operator invocation. basic types including lists and tuples. mutable vs immutable. helper functions like dir and help. assignment and scope. names and name spaces. Functions and good programming practice. Python style. | ||
4 | Feb 1 | control structures in general. string basics, slicing and dicing, translation. coercion and casting. three ways to do importing. sys and I/O and formatting. | ||
5 | Feb 8 | more on the usefulness of dictionaries. | ||
6 | Feb 15 | program layout. how to start and writing reliable code. design for testing. visibility of symbols and abstraction. | NO CLASS MONDAY. President's Day | |
7 | Feb 22 | using modules. name space and file collisions. Abstraction again. Fun with drawing and the Turtle module. Example: building Lsystems with Python using much of what we have learned up to now. | ||
8 | Mar 1 | Objects. The importance of object oriented design. Build your own objects. The complexity of scoping and naming for abstraction. build a useful join utility using dictionaries and the OptionParser module. | ||
9 | Mar 8 | how to make a module. | ||
10 | Mar 15 | NO CLASS THIS WEEK! SPRING BREAK | ||
11 | Mar 22 | plotting with mathplotlib. How to process data read in from a basic file. The types of plots available in mathplotlib and how to make your graphs pretty and informative. Examples plotting crime data and then plotting them geographically using our join tool. Seaborn. | ||
12 | Mar 29 | Some GUI things with the Images module. How to do some interactive data analysis. | ||
13 | Apr 5 | Using csv module to do read *real* csv files. example computing distances on Earth using a data file of latitude and longitude. | ||
14 | Apr 12 | Using numpy. Seeing how numpy reshapes what you can do with numbers. Linear algebra with numpy and array based operations. I/O in numpy. Cleaning data from real sources. Common mistakes with matrices and vectors. | ||
15 | Apr 19 | Objects and inheritance. How to usefully build a hierarchy of classes. Example: build a DnD world using a hierarchy of classes. | ||
16 | Apr 26 | Building a digraph (nodes/edges) object for practice. building weighted graph and nondirected graph objects. Graph algorithms using graph objects and things to watch out for. The PyGraph module. | ||
17 | May 3 | |||
18 | May 10 | FINALS WEEK (NO FINAL FOR US) | Final: None |
References and Resources
- The "whiteboards" from all the lectures tagged by date
- Basic UNIX command information including stuff about sdiff
Code
Services
scl enable devtoolset-7 "make"to get the same compiler and options. The devtoolset-7 command is an annoying command prefix you have to use to access a 21st century compiler. Not my fault, it is a consequence of the Linux distribution we are using.