In this 1-credit course, you will learn to use the Python scripting language and the UW’s Center for High-Throughput Computing (CHTC) facility to solve a variety of research computing challenges: data manipulation, data analysis, statistical analysis, image processing, workflow automation, etc.
From July 2010 to June 2011, researchers on campus used 45 million hours of computing time in the CHTC — for FREE! If computation is or could be part of your research, you might benefit from access to CHTC and basic scripting skills to harness its full power.
The course is ideal for students, faculty, and staff whose research work entails significant computing.
No prior programming or Linux experience is required. In the past, students without prior experience have completed the course successfully. However, without prior programming or Linux experience, the course is challenging and the student should expect to devote extra effort accordingly. Resources will be available prior to the start of the course to help those who need extra background knowledge and skills.
|Dates||October 22 (Monday) through December 13 (Thursday) — 8 weeks|
|Times||MoTh 1:20–2:10 p.m.|
|Location||Engineering Hall 2349|
|Instructor||Tim Cartwright : CS 4265 : cat [@] cs [.] wisc [.] edu|
|Mailing List||compsci368-4-f12-hhh [@] lists [.] wisc [.] edu|
Mondays, 3–4 p.m. and Thursdays, 3–4 p.m. in CompSci 4265 (my office).
You can also make an appointment (by email is probably best) to talk to me. I work full time here in the CS building, so will often be available. However, dropping by my office without an appointment is not guaranteed to work.
There are no books to buy for this course. There is a Python book that I suggest using, and it is available for free online through the UW library system. Also, there are plenty of good resources available online. Here are a few (including the book) to get started:
If you really want to buy a physical book, there are many books on Python. The Learning Python book, cited above, is fine. I have personally looked at the following book and thought it looked OK, too; plus, it focuses on teaching the basics of computing and programming along the way, so it is aimed at new programmers. However, I make no recommendations for purchasing a book.
Introduction to Computing Using Python: An Application Development Focus by Ljubomir Perkovic. ISBN 978-0-470-61846-2. Wiley, December 2011.
If you are new to programming or using the command line, I wrote a few pointers to get started. For more advanced students, I wrote a basic page on writing unit tests in Python.
Also, check out the other CS 368 sections for the 2012 Fall semester:
Slides, code samples, and homework assignments are posted on the day of the corresponding class. All reading assignments are from Learning Python (4th Ed.), unless otherwise as indicated by a hyperlink.
|1||October 22 (Mon)||Overview & Python Basics||
Ch.1: A Python Q&A Session [skim]
Ch.2: How Python Runs Programs [optional]
Ch.3: How You Run Programs
Ch.4: Introducing Python Object Types [overview]
Ch.5: Numeric Types
|2||October 25 (Thu)||More Basic Syntax||
Ch.6: The Dynamic Typing Interlude
Ch.10: Introducing Python Statements
Ch.11: Assignments, Expressions, and Prints
Ch.12: if Tests and Syntax Rules
Ch.13: while and for Loops [just while loops today]
|3||October 29 (Mon)||Collections||
Ch.8: Lists and Dictionaries
Ch.9: Tuples, Files, and Everything Else [just Tuples]
Ch.13: while and for Loops [for loops]
|4||November 1 (Thu)||I/O and Exceptions||
Ch.9: Tuples, Files, and Everything Else [just Files]
Ch.32: Exception Basics
|5||November 5 (Mon)||Data, Functions, and Classes||
Ch.16: Function Basics
Ch.25: OOP: The Big Picture [optional]
|6||November 8 (Thu)||Modules and the Standard Library||
Ch.21: Modules: The Big Picture
Ch.22: Module Coding Basics
Python (2.4.3) Global Module Index
|7||November 12 (Mon)||Regular Expressions||
Python module re (link is for 2.4.3)
[Very advanced:] Mastering Regular Expressions
|8||November 15 (Thu)||System Interaction||Python modules (links are for 2.4.3):||homework|
|9||November 19 (Mon)||Introduction to CHTC and HTCondor Jobs||HTCondor 7.8 Manual:||homework|
|November 22 (Thu)||NO CLASS — THANKSGIVING|
|10||November 26 (Mon)||More Complex Jobs||HTCondor 7.8 Manual:||homework|
|11||November 29 (Thu)||Workflows with DAGMan||HTCondor 7.8 Manual:||homework|
|12||December 3 (Mon)||Scripting Workflows I: Parameter Sweeps||—||homework|
|13||December 6 (Thu)||Scripting Workflows II: DAGMan||—||homework|
|14||December 10 (Mon)||Wrapper Scripts||—||homework|
|15||December 13 (Thu)||Writing Scientific Code in Python||—||—|