In what types of applications is PYTHON used? +

Internet Applications
(BitTorrent, Jogger Publishing Assistant, TheCircle, TwistedMatrix)

 

3D CAD/CAM - Computer-Aided Design/Computer-Aided Manufacturing
(FreeCAD, Fandango, Blender, Vintech RCAM)

Enterprise Applications
(Odoo, Tryton, Picalo, LinOTP 2, RESTx)

Image Applications
(Gnofract 4D, Gogh, imgSeek, MayaVi, VPython)

Mobile Applications
(Aarlogic C05/3, AppBackup, Pyroute)

Office Applications
(calibre, faces, Notalon, pyspread)

Personal Information Managers
(BitPim, Narval, Prioritise, Task Coach, WikidPad)

 

Python is a great choice for:

Web and Internet development
(e.g., Django and Pyramid frameworks, Flask and Bottle micro-frameworks)

Scientific and numeric computing
(e.g., SciPy - a collection of packages for the purposes of mathematics, science, and engineering; Ipython - an interactive shell that features editing and recording of work sessions)

Education
(it's a brilliant language for teaching programming! And that's why we're offering this course to you!)

Desktop GUIs
(e.g., wxWidgets, Kivy, Qt)

Software Development
(build control, management, and testing - Scons, Buildbot, Apache Gump, Roundup, Trac)

Business applications
(ERP and e-commerce systems - Odoo, Tryton)

What is a computer program? +

A predetermined set of known commands given to the computer to execute.

Internet Applications
(BitTorrent, Jogger Publishing Assistant, TheCircle, TwistedMatrix)

 

3D CAD/CAM - Computer-Aided Design/Computer-Aided Manufacturing
(FreeCAD, Fandango, Blender, Vintech RCAM)

Enterprise Applications
(Odoo, Tryton, Picalo, LinOTP 2, RESTx)

Image Applications
(Gnofract 4D, Gogh, imgSeek, MayaVi, VPython)

Mobile Applications
(Aarlogic C05/3, AppBackup, Pyroute)

Office Applications
(calibre, faces, Notalon, pyspread)

Personal Information Managers
(BitPim, Narval, Prioritise, Task Coach, WikidPad)

 

Python is a great choice for:

Web and Internet development
(e.g., Django and Pyramid frameworks, Flask and Bottle micro-frameworks)

Scientific and numeric computing
(e.g., SciPy - a collection of packages for the purposes of mathematics, science, and engineering; Ipython - an interactive shell that features editing and recording of work sessions)

Education
(it's a brilliant language for teaching programming! And that's why we're offering this course to you!)

Desktop GUIs
(e.g., wxWidgets, Kivy, Qt)

Software Development
(build control, management, and testing - Scons, Buildbot, Apache Gump, Roundup, Trac)

Business applications
(ERP and e-commerce systems - Odoo, Tryton)

What is the difference between natural languages and programming languages? +

Natural languages of humans are continually evolving and changing and can be very complex. New words are created every day as old words disappear.

A computer, even the most technically sophisticated, is devoid of even a trace of intelligence—it responds only to a predetermined set of known commands. The commands it recognizes are very simple.

Programming languages are developed by humans. Currently computers cannot develop their own languages.

Both humans and computers have many different languages.

What is machine language? +

-a computer programming language consisting of binary or hexadecimal instructions which a computer can respond to directly.

Machine languages are developed by humans.

Currently no computer can create it's own language.

What is an instruction list (IL)? +

-the alphabet of a machine language. This is the simplest and most primary set of symbols we can use to give commands to a computer. It's the computer's mother tongue.

What are the elements of a language? +

-an alphabet

-a lexis

-a syntax

-semantics

What is an alphabet? +

a set of symbols used to build words of a certain language

What is a lexis? +

(aka a dictionary) a set of words the language offers its users

What is syntax? +

a set of rules (formal or informal, written or felt intuitively) used to determine if a certain string of words forms a valid sentence (e.g., "I am a python" is a syntactically correct phrase, while "I a python am" isn't)

What is semantics? +

a set of rules determining if a certain phrase makes sense (e.g., "I ate a doughnut" makes sense, but "A doughnut ate me" doesn't)

What is a high-level programming language? +

We need a language in which humans can write their programs and a language that computers may use to execute the programs, one that is far more complex than machine language and yet far simpler than natural language. They are at least somewhat similar to natural ones in that they use symbols, words and conventions readable to humans. These languages enable humans to express commands to computers that are much more complex than those offered by ILs.

What is source code? +

A program written in a high-level programming language is called a source code (in contrast to the machine code executed by computers).

What is a source file? +

the file containing the source code is called the source file

What is a compiler/compilation? +

-computer software that translates (compiles) source code written in a high-level language (e.g., C++) into a set of machine-language instructions that can be understood by a digital computer's CPU. Compilers are very large programs, with error-checking and other abilities.

-the source program is translated once (however, this act must be repeated each time you modify the source code) by getting a file (e.g., an .exe file if the code is intended to be run under MS Windows) containing the machine code; now you can distribute the file worldwide; the program that performs this translation is called a compiler or translator;

What is an interpreter/interpretation? +

-an interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program.

-interpretation is the act of translating and immediately executing the source code.

You (or any user of the code) can translate the source program each time it has to be run; the program performing this kind of transformation is called an interpreter, as it interprets the code every time it is intended to be executed; it also means that you cannot just distribute the source code as-is, because the end-user also needs the interpreter to execute it.

The interpreter reads the source code in a way that is common in Western culture: from top to bottom and from left to right. There are some exceptions - they'll be covered later in the course.

First of all, the interpreter checks if all subsequent lines are correct (using the four aspects covered earlier).
If the compiler finds an error, it finishes its work immediately. The only result in this case is an error message.
The interpreter will inform you where the error is located and what caused it. However, these messages may be misleading, as the interpreter isn't able to follow your exact intentions, and may detect errors at some distance from their real causes.
For example, if you try to use an entity of an unknown name, it will cause an error, but the error will be discovered in the place where it tries to use the entity, not where the new entity's name was introduced.
In other words, the actual reason is usually located a little earlier in the code, for example, in the place where you had to inform the interpreter that you were going to use the entity of the name.
If the line looks good, the interpreter tries to execute it (note: each line is usually executed separately, so the trio "read-check-execute" can be repeated many times - more times than the actual number of lines in the source file, as some parts of the code may be executed more than once).

It is also possible that a significant part of the code may be executed successfully before the interpreter finds an error. This is normal behavior in this execution model.

What are the advantages of compilation? +

• the execution of the translated code is usually faster;
• only the user has to have the compiler - the end-user may use the code without it;
• the translated code is stored using machine language - as it is very hard to understand it, your own inventions and programming tricks are likely to remain your secret.

What are the disadvantages of compilation? +

• the compilation itself may be a very time-consuming process - you may not be able to run your code immediately after making an amendment;
• you have to have as many compilers as hardware platforms you want your code to be run on.

What are the advantages of interpretation? +

• you can run the code as soon as you complete it - there are no additional phases of translation;
• the code is stored using programming language, not machine language - this means that it can be run on computers using different machine languages; you don't compile your code separately for each different architecture.

What are the disadvantages of interpretation? +

• don't expect interpretation to ramp up your code to high speed - your code will share the computer's power with the interpreter, so it can't be really fast;
• both you and the end user have to have the interpreter to run your code.