Understanding CompSci 101 Announcements

compsci 101 n.w
1 / 39
Embed
Share

"Explore the latest updates and assignments for CompSci 101, focusing on problem-solving with sets, nested loops, tuple generators, and more. Get insights on finding total number of people taking courses, number of people taking just one course, and those taking both Math and CompSci."

  • Computer Science
  • CompSci 101
  • Assignments
  • Problem Solving
  • Data Analysis

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. CompSci 101 Introduction to Computer Science Mar 7, 2017 Prof. Rodger compsci 101, fall 2016 1

  2. Announcements Next Reading and RQ due Thursday Assignment 5 due Thursday Next Assignment out after week APT 5 due tonight, APT 6 due March 23 Lab this week - images Today: Review nested loops, tuple generators Focus on problem solving with sets compsci101 fall16 2

  3. Finish notes from last time compsci101 fall16 3

  4. Problems snarf setExample.py Given a list of strings that have the name of a course (one word), followed by last names (one word each) of people in the course: 1. Find total number of people taking any course 2. Find number of people taking just one course ["econ101 Abroms Curtson Williams Smith , "history230 Black Wrigley Smith , ] Process data create lists of strings of names for each course compsci101 fall16 4

  5. Data for example [ compsci101 Smith Ye Li Lin Abroms Black , math101 Green Wei Lin Williams DeLong Noell Ye Smith , econ101 Abroms Curtson Williams Smith , french1 Wills Wrigley Olson Lee , "history230 Black Wrigley Smith ] TO easier format to work with: [ [ Smith , Ye , Li , Lin , Abroms , Black ], [ Green , Wei , Lin , Williams , DeLong , Noell , Ye , Smith ], [ Abroms , Curtson , Williams , Smith ], . ] compsci101 fall16 5

  6. COMPSCI101 Set Picture of Data ECON101 Li Abroms Curtson Williams Ye MATH101 Smith Lin Noell Green Wei Yavatkar Delong Black Wrigley FRENCH1 Wills HISTORY230 Lee Olson compsci101 fall16 6

  7. COMPSCI101 People in CompSci 101 ECON101 Li Abroms Curtson Williams Ye MATH101 Smith Lin Noell Green Wei Yavatkar Delong Black Wrigley FRENCH1 Wills HISTORY230 Lee Olson compsci101 fall16 7

  8. People Taking both Math And CompSci COMPSCI101 ECON101 Li Abroms Curtson Williams Ye MATH101 Smith Lin Noell Green Wei Yavatkar Delong Intersection Black Wrigley FRENCH1 Wills HISTORY230 Lee Olson compsci101 fall16 8

  9. Part 1 processList Given a list of strings that have the name of a course (one word), followed by last names of people in the course: Convert list into lists of strings of names for each course ["econ101 Abroms Curtson Williams Smith", "history230 Black Wrigley Smith", ] [ [ Abroms , Curtson , Williams , Smith ], [ Black , Wrigley , Smith , ] ] compsci101 fall16 9

  10. Part 2 peopleTakingCourses Given a list of lists of names, each list represents the people in one course: Find total number of people taking any course peopleTakingCourses should return unique list of names Small Example [[ Abroms , Curtson , Williams , Smith ], [ Black , Wrigley , Smith ]] Answer is 6 unique names 10 compsci101 fall16

  11. COMPSCI101 People taking Courses - Union ECON101 Li Abroms Curtson Williams Ye MATH101 Smith Lin Noell Green Wei Yavatkar Delong Black Total Number Is 17 unique names Wrigley FRENCH1 Wills HISTORY230 Lee Olson compsci101 fall16 11

  12. Next, find the number of people taking just one course compsci101 fall16 12

  13. COMPSCI101 Union all sets But French1 ECON101 Li Abroms Curtson Williams Ye MATH101 Smith Lin Noell Green Wei Yavatkar Delong Black Wrigley FRENCH1 Wills HISTORY230 Lee Olson compsci101 fall16 13

  14. To solve this problem First let s write a helper function compsci101 fall16 14

  15. Part 3 unionAllSetsButMe bit.ly/101s17-0307-1 Given example, a list of sets of strings, and the index of one of the sets, return the union of all the sets but that one example = [set(["a", "b", "c"]), set(["b", "c", "d", "g"]), set(["e", "d", "a"])] unionAllSetsButMe(example,1) is set(["a", "b", "c", "e", "d" ]) compsci101 fall16 15

  16. Part 4 peopleTakingOnlyOneCourse bit.ly/101s17-0307-2 Given a list of lists of strings of names representing people from courses Find number of people taking just one course [[ Abroms , Curtson , Williams , Smith ], [ Black , Wrigley , Smith , Abroms ]] 4 compsci101 fall16 16

  17. COMPSCI101 People taking Only one course ECON101 Li Abroms Curtson Williams Ye MATH101 Smith Lin Noell Green Wei Yavatkar Delong Black Wrigley FRENCH1 Wills HISTORY230 Lee Olson compsci101 fall16 17

  18. APT - UniqueZoo How do you solve this problem? How is it similar to the problem we just solved compsci101 fall16 18

  19. Example Data for UniqueZoo ["zebra bear fox elephant","bear crocodile fox", "rhino elephant crocodile kangaroo", "elephant bear"] fox zebra bear crocodile elephant rhino kangaroo compsci101 fall16 19

  20. UniqueZoo two zoos have unique animals fox zebra bear crocodile elephant rhino kangaroo 20 compsci101 fall16

  21. Problem: Given list of words, find word with most vowels Example: Given [ dog , cat , gerbil , elephant ] elephant has 3 vowels, the most To solve nested loops: Loop over words in list For each word: Loop over characters in word compsci 101, spring 2017 21

  22. Bit.ly/101s17-0307-3 a compsci 101, spring 2017 22

  23. Problem Given two lists of names, print a list of pairs of names in which the two names are the same length A = [ mo , ted , bill ] B = [ billie , jes , bo ] mo, bo ted, jes To solve for name in A: for name in B: Check length print pair 23

  24. Bit.ly/101s17-0307-4 a compsci 101, spring 2017 24

  25. Tuples Like a list, but cannot change them Define them with , (5, 7, 8) or 5, 7, 8 Use most list operations on them they are a type of list But immutable Examples compsci 101, spring 2017 25

  26. Example print z z[0][1] = 12 print z z[0].append(4) print z z[0].remove(5) z[0].remove(12) z[0].remove(4) print z x = (4, 6, 8) y = 9, 5, 6 print x print y print x[1] print y[1] y[0] = 2 z = ([5,6], [7,8]) compsci 101, spring 2017 26

  27. Image Processing What's real, what's Photoshopped http://bit.ly/1Kj0Kn6 from 2008 Learn more at http://bit.ly/1Psi0hG, we'll do very basic stuff in class and lab, next assignment too! compsci 101, spring 2017 27

  28. Example: convert color to gray scale Process each pixel Convert to gray compsci 101, spring 2017 28

  29. Example: convert blue to green Process each pixel Convert blue ones to green Is this like red-eye removal? compsci 101, spring 2017 29

  30. Lab 7 You ll create new images Invert Solarize Darken Brighten etc compsci 101, spring 2017 30

  31. Need new concepts and Image library Red, Green, Blue color model Triples of (R,G,B) are processed as Python tuples. Let's study tuples! Images can be very big, what's 4K display? 4,096 x 2,160 = 8,847,360 pixels, 8Mb at least Creating huge lists takes up memory Sometimes only need one pixel at-a-time Let's study generators! compsci 101, spring 2017 31

  32. Need new concepts and Image library Red, Green, Blue color model Additive model, each pixel specified by (r,g,b) triple, values of each between 0-255 https://en.wikipedia.org/wiki/RGB_color_model White is (255,255,255) and Black is (0,0,0) Images stored as sequence of (r,g,b) tuples, typically with more data/information too 256 values, represented as 8 bits, 28 = 256 32 bits per pixel (with alpha channel) In Python we can largely ignore these details! compsci 101, spring 2017 32

  33. Image library: Two ways to get pixels Each pixel is a tuple in both models Like a list, indexable, but immutable pix = (255,0,0) What is pix?, pix[0]? What is pix[5]? Invert a pixel: by subscript or named tuple Access by assignment to variables! npx = (255-pix[0],255-pix[1],255-pix[2]) (r,g,b) = pix npx = (255-r,255-g,255-b) compsci 101, spring 2017 33

  34. Let's look at GrayScale.py Key features we see Import Image library, use API by example Image.open creates an image object Image functions for Image object im im.show(),displays image on screen im.save("xy"), saves with filename im.copy(), returns image that's a copy im.load(),[x,y] indexable pixel collection im.getdata(),iterable pixel collection Let's look at two ways to process pixels! 34

  35. Image Library: open, modify, save Image.open can open most image files .png, .jpg, .gif, and more Returns an image object, so store in variable of type Image instance Get pixels with im.getdata()or im.load() Image.new can create a new image, specify color model "RGB" and size of image Add pixels with im.putdata() These belong to Image package 35

  36. im.getdata(), accessing pixels Returns something like a list Use: for pix in im.getdata(): Generates pixels on-the-fly, can't slice or index unless you use list(im.getdata()) Structure is called a Python generator! Saves on storing all pixels in memory if only accessed one-at-a-time See usage in GrayScale.py, note how used in list comprehension, like a list! compsci 101, spring 2017 36

  37. Questions about Image Code bit.ly/101s17-0307-5 compsci 101, spring 2017 37

  38. Alternate : Still Tuples and Pixels The im.getdata() function returns list- like iterable Can use in list comprehension, see code Use .putdata() to store again in image pixels = [makeGray(pix) for pix in im.getdata()] def makeGray(pixel): r,g,b = pixel gray = (r+g+b)/3 return (gray,gray,gray) compsci 101, spring 2017 38

  39. Making Tuples and Generators Overuse and abuse of parentheses To create a tuple, use parentheses for pix in im.getdata(): (r,g,b) = pix npx = (255-r,255-g,255-b) To create a generator use parentheses as though creating a list comprehension! [2*n for n in range(10000)] (2*n for n in range(10000)) See this in PyDev console 39

Related


More Related Content