PC204 Lecture 10
Tom and Conrad
Homework from Last Week
- Assignment: Write a two-player gomoku game
Course Wrap-up
- What we've covered in this ten-week course:
- Nearly all aspects of the Python programming language, including
variables, expressions, operators, statements, conditionals, functions,
exceptions, iteration, recursion, strings, lists, dictionaries, tuples,
and file I/O.
- Fundamentals of object oriented programming, include classes, methods
and inhertance.
- Fundamentals of programming style, including problem decomposition,
modular design, optimization, and debugging techniques.
- The basics of Graphical User Interface programming.
- Where do you go from here?
Remember this diagram from Week 1?
Available Python Packages
- The pypi.python.org/pypi web page provides tens of thousands of
freely available Python Packages!
- These packages may be installed using the
pip
or python3 -m pip
command for recent versions of Python.
- A few of the more useful ones are:
- xlrd - Library to extract data
from Microsoft Excel spreadsheet files
- matplotlib
- A comprehensive Python plotting library
- pandas - A data manipulation
and analysis library
- numpy - A package for doing scientific
computing with Python
- biopython - Freely available tools for
biological computation
Final Words on your Final Project
- When you turn in your final project, you need to include everything necessary
for Tom and Conrad (pc204@cgl.ucsf.edu)
to run your program. This includes:
- Instructions for running your program.
- Any input data files required, e.g., any database you may have created.
If your program requires us to download a public database, provide instructions
on where to get it.
- If you installed any Python packages, tell us what they are and where to get them.
- If your program takes a long time to execute, provide a rough estimate of
how much time is required so we don't sit and wait longer than needed if something
isn't working right.
- If the output produced by your program isn't something obvious, tell us how to
differentiate good output from bad.
What We Are Looking For
- Design
- Multiple modules and classes that partition the problem into manageable segments
- Well-defined application
programming interfaces (APIs) for modules
and classes
- Implementation:
- Choice of algorithms and data structures
- Documentation strings for modules and functions that describe their purposes
- Comments explaining what sections of code are intended to do (and perhaps how
things will be done)
- Do not put one comment per line such as "increment counter"
Sample Projects
- Calculate safe dosage levels for potentially toxic drugs
(click here)
- Lab animal colony database management system
(click here)
- Search for plasmids and primers used in the lab.
(click here)
Teaching Evaluations
- We strive to improve this course every year. This year we made several
changes and we already have more planned for next year. These are often
due to feedback we receive from students. For example, we've been asked
to make the course more interactive using a 'flipped classroom' approach.
So instead of just showing you code, we'd ask all of you to work on solving
a problem in small teams. Then, after 10 minutes or so, we'd pick a team at
random and have them describe the approach they used. Only afterwards would
we look at the instructor's solution.
- As part of this effort, we've asked our school's administration to send
you all a link to an on-line course evaluation form where you'll have an
opportunity to provide anonymous feedback and make suggestions. Please take
a few mintues to respond.
Thanks!