CSIS 042: Python Programming
Course Outline and Learning Objectives
Weeks 1 - 2 | |||
Lecture | What is Python: scripting languages, interpreted languages and environment, installing, setting up, workflow and first program: "Hello world". Introduction to variables, printing to the screen, reading from the keyboard, and simple loops. | Reading: prog ch 1 |
|
Homework / Lab | Download and install the Python language for the student's appropriate platform. Type and run "the simplest possible program". Quiz and problem set |
||
Performance Objectives | Students will become familiar with the history of the python language and its place in the catalog of computer languages. Become familiar with the python.org website and the resources and documentation therein. Demonstrate the ability to get "up and running" with python on one of the major computer operating systems. |
||
Weeks 3 - 4 | |||
Lecture |
|
Reading: fxns ch 3
|
|
Homework / Lab | Case study #1: Parse and gather statistics from web access logs (or similar text file) Project assignment #1: Demonstrate variables, looping, and simple lists. Add feature to case study. |
||
Performance Objectives | Students will practice using variables to store information. |
||
Weeks 5 - 6 | |||
Lecture | Variables: "Everything is an object". Creating, changing, inspecting, and deleting objects. Subroutines, modules, functions, and recursion. |
Reading fxns ch 5 |
|
Homework / Lab | Quiz and problem set. |
||
Performance Objectives | Demonstrate the use of built-in functions (the Standard Library) to solve common problems. (For example: sort, filter, join and more.) |
||
Weeks 7 - 8 | |||
Lecture | More string handling: search and replace using regular expressions. Library modules: internet access (email, web, and others), mathematics, object persistence |
Reading: strings ch 7 other regex reading |
|
Homework / Lab | Case study #3: A web page "scraper" that retrieves stock quotes or similar data |
||
Performance Objectives | Students will gain familiarity with a subset of the built-in tools python provides to address common programming tasks. |
||
Weeks 9 - 10 | |||
Lecture | Advanced regular expressions and more examples. Object orientation: modules, classes, instances, inheritance and design. Documentation and unit testing. Test-driven development. |
Reading classes ch 12, 13, 14 |
|
Homework / Lab | Case study #4: Gathering / compiling statistics from a gene database, including unit tests. (or similar) |
||
Performance Objectives | Students will demonstrate the use of regular expressions to perform a variety of text manipulation tasks. |
||
Weeks 11 - 12 | |||
Lecture | Strategies for large problems: modules, classes and organization. Standard Library: Performance testing (of code), speed measurements. Introspection: dir() and examining built-in functions. |
||
Homework / Lab | Case study #5: Gather and organize statistics from public mapping (GIS) databases. |
||
Performance Objectives | Practice object-oriented programming techniques for organization and simplicity. |
||
Weeks 13 - 14 | |||
Lecture | Platform specifics: MS Windows, Unix-based, others. Introduction to 3rd party modules. Debugging and troubleshooting techniques. Exception handling. |
||
Homework / Lab | Code review of a 3rd party module: overview, description, caveats, and criticisms. Step-through its execution using the debugger. |
||
Performance Objectives | Students will practice the use of exceptions for error handling. |
||
Weeks 15 - 16 | |||
Lecture | Real world problem-solving. Question and answer and code review of in-progress final projects. Overview of advanced features: threading, generators, patterns, functional programming. Where to go from here. |
||
Homework / Lab | Quiz and problem set. |
||
Performance Objectives | Ability to judge between effective and ineffective code. |
||
Weeks 17 - 18 | |||
Lecture | Course review. Project presentations. |
||
Homework / Lab | Peer review / code review of student projects. |
||
Performance Objectives | Judge the completeness, and correctness of student projects. |