CIT 590 Intro to Programming Lecture 1 By way of introduction … • Arvind Bhusnurmath • There are no bonus points for pronouncing my.

Download Report

Transcript CIT 590 Intro to Programming Lecture 1 By way of introduction … • Arvind Bhusnurmath • There are no bonus points for pronouncing my.

CIT 590

Intro to Programming Lecture 1

By way of introduction …

• Arvind Bhusnurmath • There are no bonus points for pronouncing my last name correctly • Please call me Arvind • New to teaching at Penn • • However, not new to Penn. Graduated 2008 Ex GRASPee – thesis on convex optimization in computer vision

Who is this course for?

• non CS majors. 591 is the preferred course for MCIT.

• People who want to learn the basics of programming and have never programmed before • People who have programmed before but have not used that skill in a while

Contents of the course

• 50% Python and 50% Java • Why begin with Python?

• • • • • Easier language to pick up you can spend more time thinking about programming logic and algorithms, and less time thinking about correct syntax Interpreted language (more on that in a bit) An actual commercially used language in places like Google, Youtube most of the lines of code for YouTube are still in Python. Everytime you watch a YouTube video you are executing a bunch of Python code.

• Why transition to Java?

• Instills the fundamentals of object oriented programming • • Used in many legacy applications Android applications are in Java • Higher chances of getting a job

Resources for Python

• Exploring Python by Timothy Budd • Use this book as an active participant. Read it with a computer in front of you and typing things out as you go along.

• Byte of Python – free e-book that you can dowload and carry around as a handy reference

Exams, homeworks etc

• Homework every week. Deadlines will be strictly enforced.

• If you do have an emergency, send me email or have one of your classmates send me email • Lab (officially called recitation) every Friday. • The 10:30 slot will be led by the TAs • I will show up for most 1:30 pm recitations • Homework will be worth 55% of the grade • Mid term 20% • Final exam 25%

How to turn in assignments

• Canvas • This is the first semester that the whole university is moving to this system. Should work, but please be patient

Python

• Created by Guido Van Rossum. First widely used around 2000.

• Actually named after Monty Python and not after animals that squeeze their prey to death

Python

• Interpreted language • No compilation • • Dynamic typing If you’ve seen matlab or R this paradigm will look familiar

Python config

• Use python 2 and not python 3 • We will try to stick to the IDLE for editing • Remember to save your file as xyz.py before beginning to edit • Lots of other options (Notepad++, Sublime Text, Pydev in Eclipse) for editing a python file but I will stick to IDLE

Python demo

• Using IDLE • Throwing commands into the shell • Configuring IDLE • More on this in the lab session • Data types • Integers • • Float • • Boolean Strings – single, double and triple quotes Conversion between datatypes – str, int • Do not worry about making mistakes.

‘With every mistake we must surely be learning’ – George Harrison

Variables in python

• Variables are used to keep track of information • An assignment statement is of the form Variable name = value • Proper naming of variables is important. • Randomly named variables will result in loss of points in assignments • You cannot use space, but can choose between second_best or secondBest(camel casing) • “

Programs must be written for people to read, and only incidentally for machines to execute.

” - Abelson

Strings

• Strings are basically just collections of characters • Can be indexed • Always remember 0 indexing • Strings are immutable • Once a string is assigned to a variable, you cannot mess around with the characters within the string • Slicing a string

Operators

• Experiment with operators in class to see • 2 ** 3 • 7 % 5 • 65 // 11 • ‘abc’ ** 3 • Binary bitwise operations?

Functions in python

• Similar to the math concept of functions • Functions on strings • Functions that convert from one data type to another • The fun ‘eval’ function • Input and output functions • Raw_input • Print • input

Writing a program

• tempConv.py

Writing a function

def (arguments): function body … return output value tempConversionFunc.py

Example program

• Temperature converter example from the book • Testing!

• No code is complete until tested • In the industry, there are entire jobs associated with testing

Assignment statement

• • • • • Python has a very flexible assignment syntax area = length * breadth counter1 = counter2 = 0 area, perimeter = length * breadth, 2 * (length + breadth) x, y = y, x • Extremely elegant way to swap the values of two variables

Conditionals

• If • If, else and the importance of proper indentation • The elif if’) statement (because we got so tired of writing ‘else

While loops

• Repeated execution • multiplicationTable.py

• Infinite loops • CTRL + C is your best friend

For loop

• When we have an arithmetic progression for x in range(1,10) • When we are looping through characters in a string for ch in ‘Philadelphia’

Example program in Python

• For loop • Conditionals • numWords.py

Summary

• Logistics of the course • Python setup • Lots of examples using the Python shell • Please do try out some more at home!

• Conditionals - if, else, elif • Loops • Writing an actual program • The importance of commenting • Indentation • not only is it key, Python will simply not work for you if you disobey the indentation rules)