ICS 31 • David G. Kay • UC Irvine
ICS 31 Resource Materials
These reference materials reflect the required portion of the course:
- The ICS 31 Course Reference (syllabus) page: For every class, the syllabus covers the basic "ground rules."
- In-class lecture notes and code: Sent to the class mailing list after each class. All official course Email is archived at eee.uci.edu; log in, choose MyEEE and this class, and select "Class Mail List Archive."
- UCI Replay recordings of each lecture (audio and screen capture of class sessions; not guaranteed to be available for 100% of the class meetings): Links are sent to the class mailing list after class. For the links to UCI Replay recordings from earlier in the quarter, consult the mail list archive on EEE as described above.
- Questions and answers on course material: At www.piazza.com. See the syllabus for instructions on how to register.
- Weekly online quizzes and answers: On the ICS 31 quizzes page.
- Past ICS 31 midterms and answers: Also on the ICS 31 quizzes page.
- Description of the "design recipe" for functions.
- Summary table of Python data structures.
- A brief introduction to namedtuples.
- Introduction to string formatting and the
format()
method.
- The textbook:
Ljubomir Perkovic's Introduction to Computing Using Python: An Application Development Focus, second edition (Wiley).
This text will shortly be available at the UCI Bookstore; the ISBN they have is supposed to be a specially priced edition for UCI, reportedly for $66.65. The text is also available from other sources: Amazon.com, the publisher directly, and probably other places. Any version that says "Second Edition" will have the same content. There is also an electronic version (that can be searched, annotated, copy/pasted, and printed, but without interactivity); there's a discount for ordering this version before September 30. Ordering on line with fast shipping can get the book to you most quickly.
Each of these references supplements the course
material in some way. They're not required unless we say otherwise.
If you'd like to suggest additions to this page, please feel free.
- Running Python on the web:
www.pythontutor.com
lets you run Python code on the web and provides a clear visualization of what happens as it runs. It's still under development and doesn't include 100% of Python features. Be sure to choose Python 3 and not Python 2.7.
codingbat.com/python
provides dozens of simple practice programming problems, categorized by type. Enter your solution and Codingbat will test it for you.
- Python interpreter software can be downloaded for free to use on your own computer (use version 3.6.1 or later; version 3.6 is okay and version 3.5 will work for nearly everything, but do not use version 2.7 or earlier). There are also IDEs to automate some tasks:
- IDLE is the simple Python IDE that comes with the software installation. It will be our default tool; all our classwork can be done using IDLE. Detailed installation instructions are available.
-
Eclipse:
This is a popular open-source professional development environment, particularly in the Java community.
Its PyDev package configures it for Python. Eclipse does a lot; it's very complex; it's highly configurable. There are reports that PyDev is not completely stable, so use it at your own risk; we do not expect or require this for ICS 31.
-
PyCharm and Wing are commerial alternatives; PyCharm comes in a free "Community Edition"; that's the IDE we use in lecture after the first week.
-
Shorter documents about various aspects of
our course
- Broader topics in computing:
- The Tao of Computing, by Henry Walker.
Similar in theme to the previous book, this one is both briefer and
deeper.
- Tables of decimal, binary, hexadecimal, and
ASCII values: a simple ASCII table with 8-bit codes, decimal, octal, and hexadecimal;
all 255 ASCII characters, categorized;
a compact ASCII table. The Unicode standard handles most of the world's writing systems; check out Ethiopic (from Africa), Devangari (from India), Chinese (from Asia), Cherokee (from North America), Armenian (from Europe), or Linear B (from ancient Greece).
- Many people with an interest in computing don't see themselves pursuing a career as a programmer. Marty Stepp at Stanford lists many non-programming career paths for people with a computer science background.
David G. Kay, kay@uci.edu