Develop programming and problem solving skills, progressing from procedural to object‐oriented programming
This page provides access to notes and other material that we'll be using in class. The module content is built around the idea of "topics". These correspond roughly but not exactly to weeks. In other words, we may not finish a topic in any given week or we may cover more than one topic in any given week.
This list will be expanded as the semester progresses.
The Practice of Computing Using Python (2nd Ed) William F. Punch, Richard Enbody
This is the main course text. We will be mostly using material from this, at least initially. We will also be using material from other sources including, but not limited to, those listed below.
|Python Programming In Context Bradley N. Miller, David L. Ranum
Publisher: Jones & Bartlett Learning; 2 ed (2013) ISBN: 978-1449699390
Think Python How to Think Like a Computer Scientist Allen Downey
There is a free download of this book available. make sure that you download the version for Python 3.
Dive Into Python 3 Mark Pilgrim
There is also a free download of this book available.
This section contains selected links that you should read. These generally cover topics that are worth discussing in class but that we don't have time to consider in a detailed lecture format.
There is no such thing as plain text. This statement has implications for how we think about text - characters (an abstract concept) and representation (how this abstraction is represented in bits and bytes in a computer).
Beginning students of programming often wonder why we don't start indexes for arrays, lists and suchlike from one. After all, we count from one so it would seem more intuitive. The following few articles might help to clarify the reasons why we use 0 as a start point and why this might be actually a good idea.
What is version control, and why should you care? Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. Any type of file on a computer can be placed under version control but, in our case, it is particularly useful for software source code.
If you want to keep every version of a file (which you certainly would), it is very wise to use a Version Control System (VCS). A VCS allows you to: revert files back to a previous state, revert the entire project back to a previous state, review changes made over time, see who last modified something that might be causing a problem, who introduced an issue and when, and more. Using a VCS also means that if you screw things up or lose files, you can generally recover easily. In addition, you get all this for very little overhead.
The VCS of choice in the School of Computing (and in many other places) is git. Material in the preceding paragraphs was taken and modified from the git website.
It is strongly recommended that you look at the following links, in order listed.
Python Tutor (http://www.pythontutor.com/) is a free educational tool created by Philip Guo that helps students overcome a fundamental barrier to learning programming: understanding what happens as the computer executes each line of a program's source code. Using this tool, a teacher or student can write a Python program in the Web browser and visualize what the computer is doing step-by-step as it executes the program.
This is a very useful tool that you should check out. It is, however, limited as to the size of progarm it can handle. Also, it won't cope with file I/O.