Course Syllabus

image of Python logo Programming in Python

This is the first course in Python Certificate program which is a 9-month curriculum.

By the end of the certificate program students will have gained a fundamental understanding of programming in Python by creating a variety of scripts and applications for the Web and for systems development. Python is a versatile programming language, suitable for projects ranging from small scripts to large systems. The certificate program emphasizes best practices such as version control, unit testing and recommended styles and idioms. Students will explore the large standard library of Python 3, which supports many common programming tasks.

 

Course Objectives

Upon successfully completing this course, students will be able to “do something useful with Python”.

  • Identify/characterize/define a problem
  • Design a program to solve the problem
  • Create executable code
  • Read most Python code
  • Write basic unit tests

Course Requirements

Prerequisites

This course is not intended for absolute beginners in programming, but includes review of elementary features. Students are expected to be able to open command prompt window or terminal window, edit a text file, download and install software, and understand basic programming concepts.

Technology Requirements

You must have easy access to a computer with strong internet capabilities and a high-speed internet connection. Online students should purchase or borrow a headset (possibly with microphone) for use during our live Adobe Connect sessions.

Completion Requirements

This course is graded pass/fail, based on attendance and completion of projects. Students are required to attend at least 8 of the 10 classes.

About the Lessons

The lessons in this course include the following topics.
  • Lesson 1: Introduction
  • Lesson 2: gitHub, Functions, Booleans and Modules
  • Lesson 3: Sequences, Iteration and String Formatting
  • Lesson 4: Dictionaries, Sets, and Files
  • Lesson 5: Exceptions, Testing, Comprehensions
  • Lesson 6: Advanced Argument Passing, Lambda -- functions as objects
  • Lesson 7: Object Oriented Programming
  • Lesson 8: More OO -- Properties, Special methods
  • Lesson 9: Iterators, Iterables, and Generators
  • Lesson 10: Decorators, Context Managers, Regular Expressions, and Wrap Up

Topics of each week

Week 1: Jan. 7

  • General Introduction to Python and the class. Using the command interpreter and development environment.

  • Kick-off tutorial

  •  Finding and using the documentation. Getting help.

  •  Python 2/3 differences.

Week 2: Jan. 14

  • Introduction to git and GitHub

  • Basic data types.

  • Functions: definition and use, arguments, block structure, scope, recursion

  • Modules and import

  • Conditionals and Boolean expressions

Week 3: Jan. 21

  • Sequences: Strings, Tuples, Lists

  • Iteration, looping and control flow.

  • String methods and formatting

Week 4: Jan. 28

  • Dictionaries, Sets and Mutability.

  • Files and Text Processing

Week 5: Feb. 4

  • Exceptions

  • Testing

  • List and Dict Comprehensions

Week 6: Feb. 11

  • Advanced Argument passing

  • Lambda

  • Functions as Objects

Week 7: Feb. 18

  • Classes

  • Class instances

  • Methods

Week 8: Jan. 25

  • Multiple inheritance

  • Properties

  • Special methods

  • Emulating built-in types

Week 9: Mar. 3

  • Iterators and Generators

Week 10: Mar. 10

  • Decorators

  • Context Managers

  • Regular expression

  • Wrap Up / Students Code review

Assignments and Assessments

Assignments

This course is graded pass/fail, based on attendance and completion of projects. Students are required to attend at least 8 of the 10 classes.

There will generally be weekly homework assignments. They will include both reading and video watching and programming exercises. You are not required to turn in the assignments to pass the course, however, we learn by doing, so your are encouraged to put some time in to the homework. The instructors will review your work on your request. There will be office hours to answer your questions.

Grading

This course is graded pass/fail, based on attendance and completion of projects. Students are required to attend at least 8 of the 10 classes.

Policies And Values

Active learning requires students to participate in the class, as opposed to sitting and listening quietly. In class students will follow the instructor in creating demonstrative examples. Outside of class, students are expected to read the assignments, perform the homework, and post questions (about recent session topics) that they have on the class mailing list before the next class session. Other students are strongly encouraged to answer these questions if possible. Answers to common and unanswered questions will be reviewed in the next class session.

 

Your feedback on the course and instruction

After the 3rd class session, we solicit anonymous feedback from all students regarding the pacing and instruction of the course. Students will also be invited to provide comments at the end of the course.

 

Reading

There is no assigned text book. However, you may find it beneficial to read other discussions of topics in addition to what are presented in class or assigned as reading: either to explore a topic more deeply, or to simply get another viewpoint. There are many good books on Python, and many more excellent discussions of individual topics on the web.

References for getting started

  • The Python Tutorial (https://docs.python.org/3/tutorial/): This is the official tutorial from the Python website. No more authoritative source is available.

  • Code Academy Python Track (http://www.codecademy.com/tracks/python): Often cited as a great resource, this site offers an entertaining and engaging approach and in-browser work.

  • Learn Python the Hard Way (http://learnpythonthehardway.org/book/): Solid and gradual. This course offers a great foundation for folks who have never programmed in any language before. [Python 2]

  • Core Python Programming (http://corepython.com/): Only available as a dead trees version, but if you like to have book to hold in your hands anyway, this is the best textbook style introduction out there. It starts from the beginning, but gets into the full language. Published in 2009, but still in print, with updated appendixes available for new language features. In the third edition, "the contents have been cleaned up and retrofitted w/Python 3 examples paired w/their 2.x friends."

  • Dive Into Python 3 (http://www.diveinto.org/python3/): This book offers an introduction to Python aimed at the student who has experience programming in another language.

  • Python for You and Me (http://pymbook.readthedocs.org/en/latest/): Simple and clear. This is a great book for absolute newcomers, or to keep as a quick reference as you get used to the language. The latest version is Python 3.

  • Think Python (http://greenteapress.com/thinkpython/): Methodical and complete. This book offers a very "computer science"-style introduction to Python. It is really an intro to Python in the service of Computer Science, though, so while helpful for the absolute newcomer, it isn't quite as "pythonic" as it might be.

  • Python 101 (http://www.blog.pythonlibrary.org/2014/06/03/python-101-book-published-today/) Available as a reasonably priced ebook. This is a new one from a popular Blogger about Python. Lots of practical examples. Also avaiable as a Kindle book: http://www.amazon.com/Python-101-Michael-Driscoll-ebook/dp/B00KQTFHNK

  • Problem Solving with Algorithms and Data Structures (http://interactivepython.org/runestone/static/pythonds/index.html)

  • Python Course (http://www.python-course.eu/python3_course.php)

References for getting better, once you know the basics

  • Python Essential Reference (http://www.dabeaz.com/per.html): The definitive reference for both Python and much of the standard library.
  • Hitchhikers Guide to Python (http://docs.python-guide.org/en/latest): Under active development, and still somewhat incomplete, but  there is good stuff.
  • Writing Idiomatic Python (https://www.jeffknupp.com/writing-idiomatic-python-ebook): Focused on not just getting the code to work, but how to write it in a really "Pythonic" way.
  • Fluent Python (http://shop.oreilly.com/product/0636920032519.do): All python3, and focused on getting the advanced details right. Good place to go once you've got the basics down.
  • Python 3 Object Oriented Programming  (https://www.packtpub.com/application-development/python-3-object-oriented-programming): Nice book specifically about Object Oriented programming stucture, and how to do it in Python. From local Author and founder of the Puget Sound Programming Python (PuPPy) meetup group, Dusty Phillips.
  • ... and many others

Student Resources

Student Handbooks

This Online Student Handbook answers questions about your online learning course, such as how to purchase your text, schedule an exam, obtain a transcript, and get technical help if you need it. The handbook also provides additional resources, such as how to order books or journals from the library and how to study for an online course.

The Certificate Student Handbook is intended to inform the UW Professional & Continuing Education community about policies concerning certificate programs.

 

UW Library Services

As a PCE student, you have access to a wealth of Web resources compiled to provide fast, easy access to information that supports your learning experience. Organized by subjects, UW Library Services links you to sites with help for writing and research, study skills, language learning, and library reference materials. All links have been assessed for credibility and reliability, and they are regularly monitored to ensure their usability.

Online Communication

  • E-mail is a quick and efficient way to communicate with your instructor about feedback you've received on an assignment.
  • Online Discussion Forums allow you to communicate with other currently enrolled students and with your instructor. You can use the General Discussion Forum in this course to post questions, share resources, or engage in conversations about topical issues. You may also be asked to participate in lesson- or assignment-related forums.
  • Online Office Hours (Adobe Connect)  Throughout the program, students can attend online office hour sessions.

Accomodations

The University of Washington is committed to providing access and reasonable accommodation in its services, programs, activities, education and employment for individuals with disabilities. For information or to request disability accommodation contact: Disability Services Office: 206.543.6450/V, 206.543.6452/TTY, 206.685.7264 (FAX), or e-mail at dso@u.washington.edu.

 

Course Summary:

Date Details