Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Latest commit

 

History

History
157 lines (95 loc) · 5.36 KB

File metadata and controls

157 lines (95 loc) · 5.36 KB

Python 300 Summer, 2015 June 25th through September 3rd, Thursdays @ 6:00pm

Instructors

Greg Corradini ( gregcorradini+uwpce@gmail.com )

Rick Riehle ( rriehle@uw.edu )

Office Hours

Sundays ( 9:00am to 11:00am ) online and in person at Cafe Vivace across from REI

Recommended Books

Learning Python, 5th Edition

SciPyLectures

Python Course for Python2 and Python3

Course Materials

Lecture Slides and Code Examples:

Adobe Connect Login:

Course Objectives

At the end of the class, students will have completed a project of their own choosing and been exposed to a variety of advanced topics about the python programming language. Most programming class coursework involves small, self contained, assignments. While this is useful for learning specific concepts, it is hard to develop an understanding of the issues associated with larger software projects. This class gives students a chance to develop a significant project with the guidance of the instructors.

Technology Requirements

Students will need a laptop computer with:

Assessment Criteria & Course Expectations

Students are required to attend 8 out 10 classes and complete a significant software project in the Python language, either individually or as part of a small group. In addition, each student will be required to present their work at the end of the class.

Courses in this program are arranged sequentially. To recieve the certificate, students are required to earn a grade of Successful Completion (SC) in this course. Students must have successfully completed all courses in the program to receive a certificate of completion.

The class project:

Each student will develop a substantial project throughout the class. It can be an individual project or a group project with a small group from the class (2-4 students). We suggest that you strongly consider a group project -- it will give you a chance to practice developing with others, as well as give you a built-in way to get code review, folks to bounce ideas off of, etc.

Requirements:

  • The project can be anything done primarily in Python: command line utility, desktop GUI, web application, web service, numerical model, smart phone app, you name it.

  • The projects should be large enough to take everyone in the group about 8-10 hours a week in addition to class time, but small enough that you can get it to a useful state in 8-9 weeks of the class.

  • Each project group will be expected to present their work in one of the last two classes. The presentations should be focused on the software design, rather than the problem solved (though, of course, we'll want to know what problem you solved...)

  • We will expect you to use a Revision Control System (likely git), and employ unit testing.

  • You should set it up with good package structure -- ready to share and/or deploy.

  • The project code should be documented: Sphinx or Markdown

  • Conform to PEP8 or a subset of styles

Please have your project selected and be prepared to start right in on it on day one!

Typical class:

Each class will involve a lecture interspersed with in-class exercises about the lecture topic. Beginning the fourth week, the final hour or so of the class will consist of students presenting their project ideas and progression.

Schedule

Week 1

June 25th

Topics ( Greg )

  • class intro
  • unit testing and coverage
    • context managers
    • decorators

Week 2

July 9th

( Proposals Due )

Topics ( Rick )

  • Documentation (docstrings, sphinx)
  • PEP-8 (pylint/pychecker/pyflakes)

Week 3

July 16th

Topics ( Greg )

  • Debugging (print, logging, pdb/ipdb, winpdb)

Week 4

July 23rd

Topics ( Rick )

  • Databases (DB-API w/ sqlite, NoSQL)

Week 5

July 30th

Topics ( Greg )

  • Advanced OO:
    • super()

Week 6

August 6th

Topics ( Rick )

  • functional programming in Python
    • functools
    • itertools

Week 7

August 13th

Topics ( Greg )

  • ipython/notebook
  • packaging

Week 8

August 20th

Topics

  • profiling ( Rick )
  • multi-threading/processing ( Greg )

Week 9

August 27th

Student Presentations

Week 10

September 3rd

Student Presentations

Student Resources

The following link includes student handbooks, services, and policies, and other important information: http://www.pce.uw.edu/resource.aspx .

Disability Accommodation

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 the Disability Services Office at 206.543.6450/V, 206.543.6452/TTY, 206.685.7264 (FAX), or e-mail at dso@u.washington.edu.