Download presentation
Presentation is loading. Please wait.
Published byBrandon Green Modified over 9 years ago
1
Programming with Multimedia Objects CS 177 Lukasz (Luke) Ziarek BASICS Course Mechanics Expectations 1
2
Curriculum Survey You are asked to participate in a survey about the core curriculum for the College of Sciences https://purdue.qualtrics.com/SE/?SID=SV_3f2sMjxvGiPOCJ6
3
Goals for CS177 Teach fundamentals of programming Python Show the scientific and interdisciplinary nature of computer science Demonstrate the breadth of the field of computer science
4
Class Meets Lecture: Wed, Fri 4:30 ─ 5:20pm Labs: many! Recitation sessions: many! TAs: check course website Email: lziarek@cs.purdue.edu Web page: http://wiki.cs.purdue.edu/177/ 4
5
Office Hours Luke Ziarek W 12:00pm – 2:00pm F 1:00pm – 4:00pm HAAS 142 Dr. Martino M 12:00pm – 1:00pm T 10:00am -12:00pm TAs Will be posted on class website Additional hours will be scheduled closer to midterms and finals
6
SCI 210 Teaming Requirement Given online via blackboard module First 6 weeks of the semester 2 Team Projects Team Labs
7
Text Book John Zelle Python Programming: An Introduction to Computer Science (SECOND EDITION) Franklin, Beedle & Associates Inc. 7 We will use other material from the web including some the book’s website
8
Python Wiki Book We will also make use of a Wiki Book (online book) Link provided on course website Very concise reference Additional examples and exercises (practice) http://en.wikibooks.org/wiki/Python_Programming
9
Piazza Online Forum Software Link, Registration Information, and Tutorial provided on class website Post Questions on Piazza Faster turn around time Use your classmates as a resource Registration: Use your Purdue Login ID Example: lziarek lziarek@purdue.edu
10
Piazza Policies Do not post answers on Piazza This will be considered cheating Make your questions as general as possible Avoid posting large amounts of code Use Tags #lab1 #project1 #prelab1 If you are note sure use the #private tag or email Only instructors and TAs can see (we will make it public)
11
Grading 5 Projects25% Weekly Lab25% 2 midterm exams25% Final exam20% Class Participation5% Class will be graded on a curve Borderline cases are a judgment call 11
12
Projects Due in class at the beginning of course Hand in will be electronic (similar to labs) Late policy: Up to 24h: –20% Up to 48h: –50% More than 48h late:no credit You may discuss the projects (Piazza), but you must do it separately Two projects will be team projects Cheating cases sent to Dean of Students office 12
13
Exams No extra materials No cell phones, calculators, PDAs, etc Cheating referred to Dean of Students Office Week 6 and Week 11 exact times TBA 13
14
Labs and PreLabs Starting with Lab 2 we will offer a PreLab Available on the course wiki NOT graded Will contain a review and practice code to help you study/prepare for Lab PreLabs should take about an hour (or less) You can bring the PreLab to the lab Covers material in previous week Will be made available on Friday of the week prior
15
Policies Please read and familiarize yourself with: http://spaf.cerias.purdue.edu/cpolicy.html Link provided on course website You must “sign” or accept the CS policies via the computer science portal More details on the course website
16
Software JES – Robot Labs Python Development Environment IDLE - Python Vanilla Python Note: JES will be introduced in your first robot lab
17
iClicker Will be used for in class quizzes (attendance)
18
Class Structure (weekly) 2 Lectures Concepts 1 Recitation Review, Libraries, Interactive Coding, additional background 1 Pre Lab Review / Practice 1 Lab Realizing concepts in code
19
Class Structure First 6 Weeks Boot Camp for Python Learn the Core Python Language Rest of the class Additional CS concepts Algorithms Data Structures Complexity / Recursion / Others Final Project Bring everything together (Biology Application)
20
What is computer science? 20
21
What is computer science? The study of process or computation expressed as algorithms. “Computers are to computer science what telescopes are to astronomy.” – E. Dijkstra 21
22
Algorithms Algorithms are the main focus Algorithms formally describe computational processes Programs embody algorithms Note: An algorithm is independent of how a program implements it 22
23
Algorithm Example 1. Remove book from bag 2. Place book on desk 3. Open book to first page 4. Until end of book, Read. Step 4 contains a few complexities. Until suggests that there is some repetition and Read could represent an algorithm also 23
24
The algorithm describes the process that we want the computer to perform The challenge is telling the computer how to perform that process
25
Algorithms Algorithms can specify how we access data
26
Data structures Data structures specify how data is organized What if the phone book was not alphabetical?
27
So what IS a program? A collection of algorithms and data structures
28
Up Next Binary Programming Languages Brief Introduction to Python Statements Python Math Library
29
Homework Read Chapter 1 Read Course Policies Signup for Piazza Register your iclicker
30
Quick Review What is Computer Science? What is an Algorithm? We know that a program is a collection of implemented algorithms and data structures How do we develop a program?
31
The Software Development Process The process of creating a program is often broken down into stages according to the information that is produced in each phase.
32
The Software Development Process Analyze the Problem Figure out exactly the problem to be solved. Try to understand it as much as possible.
33
The Software Development Process Determine Specifications Describe exactly what your program will do. Don ’ t worry about how the program will work, but what it will do. Includes describing the inputs, outputs, and how they relate to one another. You can think of your assignments as providing a specification
34
The Software Development Process Create a Design Formulate the overall structure of the program. This is where the how of the program gets worked out. You choose or develop your own algorithm that meets the specifications.
35
The Software Development Process Implement the Design Translate the design into a computer language. In this course we will use Python.
36
The Software Development Process Test/Debug the Program Try out your program to see if it worked. If there are any errors (bugs), they need to be located and fixed. This process is called debugging. Your goal is to find errors, so try everything that might “ break ” your program!
37
The Software Development Process Maintain the Program Continue developing the program in response to the needs of your users. In the real world, most programs are never completely finished – they evolve over time.
38
Processor
39
What Computers Understand Modern (digital) computers understand two basic states: On Off This is represented by high and low voltage on a wire.
40
A single On/Off wire represents 1 bit. 8 bits are combined together to form a byte. Representing On/Off as 1/0 is called Binary. Binary is a base 2 number system Our every-day numbers are base 10
41
Binary In base 10, each place holder or digit position represents a power of 10. In binary, each place holder represents a power of 2. The number 135 is broken down as 1*10 2 + 3*10 1 + 5*10 0 in base 10
42
Binary The base determines how many digits are available. – In base 10 there are ten digits (0 … 9) – In base 2 there are two digits (0 or 1) The binary number 101 is broken down as 1*2 2 + 0*2 1 + 1*2 0 or 4+1=5 (converted to base 10)
43
Binary Despite having a different base, arithmetic is the same Add each column and carry digits 1 + 1 = 10 as the 1 is carried 101 + 101 = 1010
44
Longer Example 001101 + 101011 11100 11
45
Longer Example 001101 + 101011 111000 1111
46
Longer Example 001101 + 101011 111000 1111
47
Longer Example 001101 + 101011 111000 1111
48
Longer Example 001101 + 101011 111000 1111
49
Longer Example 001101 + 101011 111000 1111
50
Longer Example 001101 + 101011 111000 1111 Verification: 13 + 43 = 56
51
Arithmetic Hardware All modern computers have various hardware tasks built into them. For addition, each column of the computation corresponds to a single wire and the 0/1 states are toggled by basic logic gates For complex tasks this is much too tedious
52
Saying “hello” in binary
53
Hardware Instructions One step up from the hardware itself is a set of hardware instructions These are the basic elements of programming that the hardware is capable of supporting. These are typically still very tedious as each instruction directly corresponds to a hardware element.
54
section.text global _start, write write: mov al,1 syscall ret _start: mov rax,0x0a68732f6e69622f push rax xor rax,rax mov rsi,rsp mov rdi,1 mov rdx,8 call write exit: xor rax,rax mov rax,60 syscall saying ‘Hello World’ with x86 assembly
55
Programming Languages Programming languages are a compromise between spoken language and formal math. They allow humans to communicate with computers at a higher level than machine instructions Note: Software can usually be created using different programming languages, such as Java, Python, C++, etc.
56
Languages Cont. The easier the language is for humans to use, the harder it is for a computer to interpret. Natural language is ambiguous: Fruit flies like bananas There are many languages at many different ‘levels’ of complexity and convenience.
57
Grammar and Syntax Languages have a set grammar and syntax Defines a “valid” program Punctuation: “,. ! ; : ?” always follows a word in English. Words are the basic building block in English
58
Building Blocks of Python Numbers, booleans, strings, floating point numbers, and variables are basic building blocks of Python True for most programming languages Keywords Python’s grammar defines how these building blocks fit together
59
Grammar Check When executing a python program IDLE will tell you when your grammar is incorrect Given as error messages
60
Numbers in Python Python allows us to work with familiar base 10 numbers. This is an example of the utility of programming languages. Numbers in python have various types. 1.0 vs 1 See Chapter 3 Section 1 for more details! Note: Python needs to be told what type of math you want to do
61
Booleans Booleans are truth values True or False (both are keywords in Python) Booleans also have a type: bool
62
Python Grammar Code in python consists of one of several things Statement Function Declaration Function Call Loop Conditional
63
Statements These are the most basic elements in python code Statements fit on a single line and typically Assign a value to a variable Perform arithmetic Print something Call functions or procedures
64
Examples print(“Hello”) print(“Hello” + “World”) print(abs(-1)) print(1.0/2.0) print(1/2)
65
Using Python as a Calculator In the interactive mode you can type statements for python to evaluate >>> 4+5 9 >>> 10/2 5 >>> 10%2 0
66
Using the Math Library Besides (+, -, *, /, //, **, %, abs), we have lots of other math functions available in a math library. A library is a module with some useful definitions/functions.
67
Using the Math Library Let ’ s write a program to compute the roots of a quadratic equation! The only part of this we don ’ t know how to do is find a square root … but it ’ s in the math library!
68
Using the Math Library To use a library, we need to make sure this line is in our program: import math Importing a library makes whatever functions are defined within it available to the program.
69
Using the Math Library To access the sqrt library routine, we need to access it as math.sqrt(x). Using this dot notation tells Python to use the sqrt function found in the math library module. To calculate the root, you can do discRoot = math.sqrt(b*b – 4*a*c)
70
Homework Read Chapter 2 Up to 2.5.3 (less than 20 pages) Go through Pre Lab 2 Start going through the python tutorial http://en.wikibooks.org/wiki/Non- Programmer%27s_Tutorial_for_Python_3 http://en.wikibooks.org/wiki/Non- Programmer%27s_Tutorial_for_Python_3 Its located toward the bottom of the python wiki book main page
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.