Learning to Program: Why Python is a Great Choice for Beginners, Slides of Introduction to Computing

The benefits of learning to program, with a focus on python as an accessible and relevant language for both computer science majors and non-majors. It covers the basics of python, including its ease of use, relevance to various fields, and the intellectual rewards of programming. The document also provides an overview of a university course on python programming.

Typology: Slides

2012/2013

Uploaded on 08/17/2013

bakul
bakul 🇮🇳

4.6

(16)

69 documents

1 / 16

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Interlude: Why learn to program? "
(which is subtly distinct from, although a core part of, computer science itself) !
3!
From the Economist: Teach computing, not Word!
http://www.economist.com/blogs/babbage/2010/08/computing_schools!
Like philosophy, computing qua computing is worth teaching
less for the subject matter itself and more for the habits of
mind that studying it encourages. !
!
The best way to encourage interest in computing in school is
to ditch the vocational stuff that strangles the subject
currently, give the kids a simple programming language, and
then get out of the way and let them experiment. For some, at
least, it could be the start of a life-long love affair.!
docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download Learning to Program: Why Python is a Great Choice for Beginners and more Slides Introduction to Computing in PDF only on Docsity!

Interlude: Why learn to program? 

(which is subtly distinct from, although a core part of, computer science itself) 3 From the Economist: “Teach computing, not Word” http://www.economist.com/blogs/babbage/2010/08/computing_schools Like philosophy, computing qua computing is worth teaching less for the subject matter itself and more for the habits of mind that studying it encourages. The best way to encourage interest in computing in school is to ditch the vocational stuff that strangles the subject currently, give the kids a simple programming language, and then get out of the way and let them experiment. For some, at least, it could be the start of a life-long love affair.

Interlude, continued

4 That, for me, sums up the seductive intellectual core of computers and computer programming: here is a magic black box. You can tell it to do whatever you want, within a certain set of rules, and it will do it; within the confines of the box you are more or less God, your powers limited only by your imagination. But the price of that power is strict discipline: you have to really know what you want, and you have to be able to express it clearly in a formal, structured way that leaves no room for the fuzzy thinking and ambiguity found everywhere else in life… The sense of freedom on offer - the ability to make the machine dance to any tune you care to play - is thrilling.

Intro Programming Classes Compared

CS 1110: Python

  • No prior programming experience necessary
  • No calculus
  • Non-numerical problems
  • More about software design
  • Focus is on training future computer scientists

CS 1112: Matlab

  • No prior programming experience necessary
  • One semester of calculus
  • Engineering-type problems
  • Less about software design
  • Focus is on training future engineers that compute 1/21/13 Overview; Types & Expressions 8 But either course serves as  a pre-requisite to CS 2110

Academic Integrity

• Do not cheat , in any way, shape, or form

• Will be very explicit about this throughout course

• Pay attention to all assignment instructions

• In return, we try to be fair about amount of work,

grading the work, and giving you a course grade

• See website for more information

1/21/13 Overview; Types & Expressions 12

Getting Started with Python

  • Designed to be used from  the “command line” § OS X/Linux: Terminal § Windows: Command Prompt § Purpose of the first lab
  • Once installed type “python” § Starts an interactive shell § Type commands at >>> § Shell responds to commands
  • Can use it like a calculator § Use to evaluate expressions Overview; Types & Expressions 14 This class uses Python 2.7. - Python 3 is too cutting edge - Minimal software support 1/21/

The Basics

1/21/13 Overview; Types & Expressions 15

42 “Hello!” int eger

Values

Types

Expressions

float (real number) str ing (of characters) 34 * (23 + 14) "Hel" + "lo!" 1.0 / 3.

Expressions vs. Statements

Expression

• Represents something

§ Python evaluates it § End result is a value

• Examples:

Statement

• Does something

§ Python executes it § Need not result in a value

• Examples:

§ print "Hello" § import sys 1/21/13 Overview; Types & Expressions 17 Literal An expression with four literals and some operators

Type: int

  • Type int (integer): § values: …, –3, –2, –1, 0, 1, 2, 3, 4, 5, … - Integer literals look like this: 1 , 45 , 43028030 (no commas or periods) § operations: +, – , *, /, **, unary –
  • Principle : operations on int values must yield an int § Example: 1 / 2 rounds result down to 0 - Companion operation: % (remainder) - 7 % 3 evaluates to 1, remainder when dividing 7 by 3 § Operator / is not an int operation in Python 3 (use // instead) 1/21/13 Overview; Types & Expressions 18 multiply to power of

Floats Have Finite Precision

• Python stores floats as binary fractions

§ Integer mantissa times a power of 2 § Example: 1.25 is 10 * 2

• Impossible to write most real numbers this way exactly

§ Similar to problem of writing 1/3 with decimals § Python chooses the closest binary fraction it can

• This approximation results in representation error

§ When combined in expressions, the error can get worse § Example : type 0.1 + 0.2 at the prompt >>> 1/21/13 Overview; Types & Expressions 20 mantissa exponent

Type: str

  • Type str (string of characters): § values: any sequence of characters § operation(s): + (catenation, or concatenation)
  • String literal : sequence of characters in quotes § Double quotes: " abcex3$g<&" or "Hello World!" § Single quotes: 'Hello World!'
  • Concatenation can only apply to Strings. § "ab" + "cd" evaluates to "abcd"

§ "ab" + 2 produces an error

1/21/13 Overview; Types & Expressions 21

Converting Values Between Types

• Basic form: type ( value )

§ float(2) converts value 2 to type float (value now 2.0)

§ int(2.6) converts value 2.6 to type int (value now 2)

§ Explicit conversion is also called “casting”

• Narrow to wide: bool ⇒ int ⇒ float

• Widening. Python does automatically if needed

§ Example : 1/2.0 evaluates to 0.5 (casts 1 to float )

• Narrowing. Python never does this automatically

§ Narrowing conversions cause information to be lost § Example : float(int(2.6)) evaluates to 2. 1/21/13 Overview; Types & Expressions 23