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.


  1. Learn the Python Language
  2. Learn to use several important and popular Python modules
  3. Practice these skills

Covid-19 Adjustments
  • This class will be taught live entirely on Zoom. ZOOM ID in bblearn for class.
  • All zoom lectures will be recorded and appear in the videos section in the class BBLearn page. There may be as much as a week delay in posting a class video.
  • Except for videos and grades in BBLearn, all else will appear here on the class web page.
  • All email from students should have the subject: CS212.
  • Since almost no one showed up for office hours last semester I will try office hours BY APPOINTMENT ONLY. Please send email. Appointments will be in 20 minute slots. Multiple people can arrange to see me at the same time if you wish. We will see how this works out.
  • Since we can't have in class exams, all exams will be take home. I will assume I am working with adults in extraordinary times and that students will not share hints or answers.
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.


of that

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. The layout of the Python language. Running Python.   NO CLASS MONDAY - MLK/Human Rights Day
3 Jan 25    
4 Feb 1    
5 Feb 8
6 Feb 15   NO CLASS MONDAY. President's Day
7 Feb 22    
8 Mar 1    
9 Mar 8      
11 Mar 22    
12 Mar 29      
13 Apr 5    
14 Apr 12      
15 Apr 19      
16 Apr 26    
17 May 3      
18 May 10   FINALS WEEK (NO FINAL FOR US) Final: None

References and Resources



  • Homework submission page. This our homework submission page. This is not to be confused with any other submission tools used in the CS department. This is How Testing Works
  • Submitting homework without a browser
  • Computer Science IT FAQ including information on logging onto class machines.
  • The CS212 student machine is called If you are off campus you can access this machine only by first "coming on campus" with VPN. For details see CS IT FAQ The compile command I run on that machine is:
     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.

    Policies and Processes