Outline for October 21, 2024

Reading: text, §4.5
Due: Homework 2, due October 26, 2023


  1. Lists as parameters: can change list elements in function and they are changed in caller [args2.py]

  2. More on parameters: named arguments and variable number of arguments [args3.py]

  3. Recursion
    1. n factorial [nfact.py]

  4. Thinking recursively [recfun.py]
    1. First: think of the recursive case (write the problem in terms of something involving a smaller instance of the problem)
    2. Next: think of base case (when to stop)
    3. Example: Find the length of a string
    4. Example: Does the string only have alphabetic characters in it?
    5. Example: Find the maximum element of a list
    6. Example: Construct a string from a list of strings
    7. Example: Reverse a string

  5. Recursion
    1. Palindromes [palindrome.py]
    2. Fibonacci numbers [rfib.py]
    3. Sum of digits [sumdigits.py]
    4. Nested lists: is an item in a list? [isinlist.py]
    5. Tower of Hanoi [hanoi.py]

  6. Using random numbers
    1. import random
    2. Problem: compute π by tossing darts at a unit square
    3. First build routine to simulate dart toss at unit square [mc-1.py]
    4. Then build routine to see if co-ordinates are in unit circle [mc-2.py]
    5. Then build routine to read in number of tosses [mc-3.py]
    6. Put it all together [mc-4.py]
    7. Graphics! [mc-5.py]

UC Davis sigil
Matt Bishop
Office: 2209 Watershed Sciences
Phone: +1 (530) 752-8060
Email: mabishop@ucdavis.edu
ECS 235A, Computer and Information Security
Version of October 16, 2024 at 9:40PM

You can also obtain a PDF version of this.

Valid HTML 4.01 Transitional Built with BBEdit Built on a Macintosh