Copyright Anne Dawson 2005 - 2011

This file is:
First created: Tuesday 8th March 2005, 7:28 PT, AD
Last updated: Tuesday 18th May 2010, 17:38 PT, AD

Python Programming - Hint Sheet

To learn how to program in any language you must
practice, practice, practice.
You must learn gradually but thoroughly.

If you're struggling to understand one part of the language,
ask your instructor for an explanation, either in class, 
in the office hour, or by email. 

Use any resource you can to get information
- the Internet is an excellent information exchange.

Python Useful Links

Understand how the different numbering systems work
- decimal, binary, hexadecimal.

Understand binary logic -  AND, OR, NOT.

Know how to use the Python development environment (IDLE).

Make use of the Python's online help.

Find a book which really explains programming to you - if it's a hard-copy book, make useful notes in it.

Don't be afraid to ask questions - there are no stupid questions.

Plan your program on paper first (the algorithm) 
- if your program involved calculations, 
break down a long calculation into a sequence of simple steps.
Test your sequence of calculations on paper first.
Write down test values and calculate test results.
You can use this same test data when you test your running program.

Use a "Top Down" approach
- break down what you're trying to do into little simple parts. 
Plan to implement each little part as a mini program or function.
functions are a feature of the Python language covered in all programming courses.
Give the function a name which reflects what the function is going to do.
Write down your plan on paper.  
Use any method you like which helps you to picture what your program should be doing.
Some people use flowcharts - some people use pseudocode
- you MUST use a method to describe your program on paper. 

Make sure the program works on paper before you type it in
- a program which works on paper will work on the computer.

Make sure you understand how spaces are used in a Python program.

Put comments in your code.
You should be able to read a program like a book.
It should tell its own story.  
The first page of the code should include:
the file name with version number ( eg ),
your name, 
the date the code was started,
date completed (if complete),
the current status (COMPLETED or INCOMPLETE),
a brief description of the purpose of the code,
a brief description of what was in each previous version,
and any other pertinent details
- interpreter version (Python 4.3.2), OS platform (Windows XP) etc.

Use lower case for variable names eg "salary",
and uppercase for constants such as "TAXRATE"
- that way, you can see immediately which values may change,
and which may not.

- you don't learn how to program by reading books alone
- you must be prepared to make lots of mistakes
- and to learn from them.

Keep your code simple
- a program that looks confusing IS confusing.

Keep it simple
- a simple program is more likely to work and continue to work
because it is easy to understand,
hence easy to change and easy to debug.

Initialize your variables.
This means giving a variable a starting value, e.g. 
count = 0

Use meaningful variable names 
- "lunar_miles_per_second"  is much clearer than "lumps". 
Always use names which accurately reflect the content
- like "dollars_per_hour".

Use the appropriate data type
- if you are counting people, use the integer type. 
People don't come as fractions.

Use the appropriate control structure for the job (selection, repetition). 
Know when should you use a for loop as opposed to a while loop.
If you don't know - find out.

Do not have multiple copies of the same code
- if this happens convert them into a single function.

Make use  of "function stubs"  when you're developing a program
- a function stub is a function with just the bare bones inside it
- usually just a print statement
to report that the function has been called successfully.

Put a comment line of #'s at the start and end of every function
to show where one function ends and the next starts:

Do not have functions larger than one screen full
- functions longer than a screen full are hard to follow.
Break large functions down into smaller ones.
A function should ideally perform just one task.

Don't write the next line of code
until you fully understand the current line of code
- if you don't understand it, don't use it!

Develop your program gradually.
Using function stubs allows you to develop your code
with all the functions in place. 
The stubs are then completed one by one,
with full testing before starting to code the next function. 
This gradual development of a program leads to fewer errors,
and generally shorter development times.

DEVELOP YOUR CODE IN STAGES.  Always have a working version to fall back on. 
Copy to, then add more functionality (well commented)
to - a few lines at a time - save the code and test every few lines
- if you do get an error, you know it is the last few lines entered where the problem lies.

Run and test your program
after every time you have added another few lines of code.
That way, any errors can be traced to those last few lines added.

Save, save, save!!!!  
Save your code at regular intervals.
You never know when there will be a power outage.
Make duplicate copies of your code just in case.

Use a print statement to print out the value of a variable you're not sure about.

Don't borrow code from another programmer 
- you may inherit their bugs.
Don't borrow code, borrow ideas!

Find someone who is struggling on the same thing
- work together - a problem shared is a problem halved.

Don't be afraid to help others
- explaining to others makes things clearer to yourself.

Test your program in as many different ways you can think of. 

After you've tested your code, get somebody else to test it for you.

Valid XHTML 1.0!

Valid CSS!