CompSci 101 Introduction to Computer Science February 11, 2016 Prof. Rodger.

Slides:



Advertisements
Similar presentations
CATHERINE AND ANNIE Python: Part 3. Intro to Loops Do you remember in Alice when you could use a loop to make a character perform an action multiple times?
Advertisements

CompSci 101 Introduction to Computer Science February 3, 2015 Prof. Rodger Lecture given by Elizabeth Dowd.
CompSci 101 Introduction to Computer Science Feb 26, 2015 Prof. Rodger.
 Caesar used to encrypt his messages using a very simple algorithm, which could be easily decrypted if you know the key.  He would take each letter.
Python Magic Select a Lesson: Why Learn to Code? Basic Python Syntax
Standard Algorithms. Many algorithms appear over and over again, in program after program. These are called standard algorithms You are required to know.
Python November 18, Unit 7. So Far We can get user input We can create variables We can convert values from one type to another using functions We can.
CS 106 Introduction to Computer Science I 10 / 15 / 2007 Instructor: Michael Eckmann.
28/08/2015SJF L31 F21SF Software Engineering Foundations ASSUMPTIONS AND TESTING Monica Farrow EM G30 Material available on Vision.
Cryptography Programming Lab
Introduction to Python Lecture 1. CS 484 – Artificial Intelligence2 Big Picture Language Features Python is interpreted Not compiled Object-oriented language.
An Introduction to Textual Programming
1 Lab Session-III CSIT-120 Fall 2000 Revising Previous session Data input and output While loop Exercise Limits and Bounds Session III-B (starts on slide.
Algorithmic Problem Solving CMSC 201 Adapted from slides by Marie desJardins (Spring 2015 Prof Chang version)
STRINGS CMSC 201 – Lab 3. Overview Objectives for today's lab:  Obtain experience using strings in Python, including looping over characters in strings.
Compsci 101.2, Fall PFTT (plan for this Thursday) l What is a Python program?  In the context of what we do in Compsci 101  In a neuroscience.
Nonvisual Arrays and Recursion by Chris Brown under Prof. Susan Rodger Duke University June 2012.
Lecture 06 – Reading and Writing Text Files.  At the end of this lecture, students should be able to:  Read text files  Write text files  Example.
Working on exercises (a few notes first). Comments Sometimes you want to make a comment in the Python code, to remind you what’s going on. Python ignores.
Compsci 06/101, Fall What will you do in Compsci 6 Today? l Learn about selection and if/else statements  In context of solving problems  Understanding.
CompSci 101 Introduction to Computer Science September 23, 2014 Prof. Rodger.
C++ crash course Class 8 statements, sort, flight times program.
CompSci 101 Introduction to Computer Science Sept. 9, 2014 Prof. Rodger President Brodhead speech graduation 2010 CompSci 101 Fall
With Python.  One of the most useful abilities of programming is the ability to manipulate files.  Python’s operations for file management are relatively.
Compsci 6/101, Spring More on Python, Tools, Compsci 101 l APTs, Assignments, Tools  APT: Algorithmic Problem-solving and Testing  How to get.
CompSci 6 Introduction to Computer Science November 1, 2011 Prof. Rodger.
Compsci 101.2, Fall PFTheWeek 9/21-9/25 l Potpourri, Hodgepodge of Review Concepts  File reading and writing  Boolean expressions  Arithmetic.
Functions CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
CompSci 6 Introduction to Computer Science Sept 29, 2011 Prof. Rodger “All your troubles are due to those ‘ifs’,” declared the Wizard. If you were not.
Compsci 101.2, Fall #TBT l Finish some Python concepts and questions from earlier  Review for midterm exam l Strategies for success in 101 assignments.
1 CS161 Introduction to Computer Science Topic #9.
CompSci 6 Introduction to Computer Science November 8, 2011 Prof. Rodger.
CompSci 101 Introduction to Computer Science November 18, 2014 Prof. Rodger.
1 CS161 Introduction to Computer Science Topic #8.
Compsci 101.2, Fall Plan for October l Review Catchup and Midterm and Future  Make sure everyone understand options l Review Assignment.
CompSci 6 Introduction to Computer Science September 13, 2011 Prof. Rodger.
CompSci 101 Introduction to Computer Science February 10, 2015 Prof. Rodger “All your troubles are due to those ‘ifs’,” declared the Wizard. If you were.
Midterm Exam Topics (Prof. Chang's section) CMSC 201.
Algorithms and Pseudocode
CompSci 101 Introduction to Computer Science February 4, 2016 Prof. Rodger compsci101 spring161.
CompSci 101 Introduction to Computer Science Feb 24, 2015 Prof. Rodger.
CompSci 6 Introduction to Computer Science Sept. 20, 2011 Prof. Rodger CompSci 6 Fall
CompSci 101 Introduction to Computer Science January 26, 2016 Prof. Rodger compsci 101, spring
CompSci 101 Introduction to Computer Science November 11, 2014 Prof. Rodger CompSci 101 Fall Review for exam.
Lecture 14 – lists, for in loops to iterate through the elements of a list COMPSCI 1 1 Principles of Programming.
CompSci 6 Introduction to Computer Science September 27, 2011 Prof. Rodger CompSci 6 Fall
CompSci 101 Introduction to Computer Science February 16, 2016 Prof. Rodger “All your troubles are due to those ‘ifs’,” declared the Wizard. If you were.
CompSci 101 Introduction to Computer Science April 7, 2015 Prof. Rodger.
CompSci 101 Introduction to Computer Science March 24, 2016 Prof. Rodger compsci 101, spring
CompSci 4 Java 4 Apr 14, 2009 Prof. Susan Rodger.
CompSci 101 Introduction to Computer Science March 8, 2016 Prof. Rodger.
CompSci 101 Introduction to Computer Science April 14, 2016 Prof. Rodger compsci101 spring161.
CompSci 101 Introduction to Computer Science February 5, 2015 Prof. Rodger Lecture given by Elizabeth Dowd compsci101 spring151.
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CMSC201 Computer Science I for Majors Lecture 19 – Recursion
Encryption and Decryption
functions: argument, return value
CompSci 101 Introduction to Computer Science
Presentation transcript:

CompSci 101 Introduction to Computer Science February 11, 2016 Prof. Rodger

Example with Real Software If car.isDriving() or car.onRoad(): gofaster() emit_more() get_performance() elif car.connectedToMonitor(): beclean() register_as_wonderful() else: act_randomly() engine_light_on()

Announcements No Reading or RQ until Feb 23 Assignment 4 due Thursday APT 3 is due Today, no new APT out APT Quiz 1 – Second Chance partial credit! Exam 1 is Feb 18 –Do practice Exam 1’s by Tuesday –Will review next time Today: problem solving with files –largest word in file, where is largest word

Looping over and accumulating… initialize for variable in something: ask question about variable? accumulate return answer Loop over characters in strings, items in lists, lines in a file

Largest number in list bit.ly/101sp def biggest(numbers): max = numbers[0] for num in numbers: if num > max: max = num return num print biggest([8,3,9,1,5,7]) Returns 7? What is wrong?

More on lists range(5) is [0,1,2,3,4] range(2,6) is [2, 3, 4, 5] alist = [“a”, “b”, “d”, “c”] for i in range(len(list)): x = “ “.join(alist) # alist must be list of strings Y = list(“peach”)

Problem Solving How do we count words in a file? How do we find the length of the longest word? wordsInFile.py

bit.ly/101sp Answer questions about computing the longest word in a file

More Problem Solving How do we find the longest word? How do we find where the longest word is? Do we read a file into a list of words? A list of lines of words?

Reading from Files, Writing to Files Programs generate data, store for access –Notes we take, notebooks we keep –Files we make our programs create and add to File concepts for reading and writing –Call open with a path to file, how to open? –Choice of reading, writing, appending –Read or Write (depending on "r", "a", "w") –Close the file when done

Reading from files: see Pigify.py Open file for reading –Read lines: for line in f: –Read file: f.read() –Both get strings, convert as needed If fname not found? Type of f? Type of st? def readFile(fname): f = open(fname) st = f.read() f.close() return st.split()

Code in Pigify.py def writeFile(words, fname): LINE_SIZE = 80 f = open(fname,"w") wcount = 0 for word in words: f.write(word) wcount += len(word) if wcount + 1 > LINE_SIZE: f.write('\n') wcount = 0 else: f.write(' ') f.close()

Questions: File writing and Transform bit.ly/101sp

How to approach a 101 Assignment Programming compared to Cooking –Follow a recipe to create {food or masterpiece}? –Understand the whole project before coding –Know at least a few steps before coding

What do we learn from assignment? We will snarf to get started –We will modify Pigify.py –We will create Caesar.py –We might want to use parts of Pigify.py for Caesar.py

What does HowTo say about Pigify.py Lots of details on how to pigify a word –Ignore at first, make the structure of the program work We have to write four functions –Details on function headers/prototypes given –Details on function functionality given Types and values in main program –Work to understand the flow –Run the program, where do you start?

Making pigifyall work Make sure you understand this –What do you need to do so this works? –What is header, signature, prototype: pigword def pigifyall(st): all = [] for word in st.split(): all.append(pigifyword(word)) return ' '.join(all)

Making pigifyword work Once you know what pigifyword does, how do you implement it? –Review rules for piglatin –Review code for APT you hopefully did Don’t try to make every case work at once! –Start small and grow a working program. –How about first word is a vowel to begin … –Then add another case, …

If pigifyword is done … else … Get to unpigifyall and unpigifyword –Which will be easy? Why? –Can you do one easy case in unpigifyword ? Why does it help to do one case at a time? –Builds confidence in reaching completion –Decreases time-to-completion: code works! Bugs easier to find.

In class Questions bit.ly/101sp

Cracking the Caesar Cipher First create Caesar.py –Where do you start? –What’s in the main program? –What’s copied from Pigify.py What functions will you write first? –Where do you find this information? –What’s not clear about it?

Lots of details in making this work How do you loop over characters in word? –Is there anything familiar here? How do you know if a character is –Alphabetic? –Uppercase or lowercase? –A vowel or a consonant? Once again: start simple, make something work, add functionality incrementally

How do you know encryption works? Is this a chicken and egg question? –Could you write decrypt first? –Isn’t decrypting by eyeball decryption just encrypting 26 times? 14 Pljbqfjbp fq'p bxpv ql zlrkq colj 1-10, yrq klq xitxvp 15 Qmkcrgkcq gr'q cyqw rm amslr dpmk 1-10, zsr lmr yjuywq 16 Rnldshldr hs'r dzrx sn bntms eqnl 1-10, ats mns zkvzxr 17 Sometimes it's easy to count from 1-10, but not always 18 Tpnfujnft ju't fbtz up dpvou gspn 1-10, cvu opu bmxbzt 19 Uqogvkogu kv'u gcua vq eqwpv htqo 1-10, dwv pqv cnycau

Can you call a function 26 times? Encrypt using 26 shift keys and … eyeball! em = #encrypted message for n in range(26): sem = encrypt(em,n) print n,sem