CPS 001 8.1 Today’s topics Programming Recursion Copyrights, patents, and digital media Reading Great Ideas, p. 180-186 Brookshear, Section 5.5 6.3 Online.

Slides:



Advertisements
Similar presentations
1 Copyright © 2013 M. E. Kabay, D. Blythe, J. Tower-Pierce & P. R. Stephenson. All rights reserved. Introduction to Intellectual Property Law CJ341 – Cyberlaw.
Advertisements

ITEC200 – Week07 Recursion. 2 Learning Objectives – Week07 Recursion (Ch 07) Students can: Design recursive algorithms to solve.
Strategies for Intellectual Property Protection in Systems Design Rudolph P. Darken Dennis S. Fernandez Nelson T. Rivera LaRiviere, Grubman PC.
Recursion. 2 CMPS 12B, UC Santa Cruz Solving problems by recursion How can you solve a complex problem? Devise a complex solution Break the complex problem.
Chapter 10 Recursion. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Chapter Objectives Explain the underlying concepts of recursion.
16/23/2015 9:48 AM6/23/2015 9:48 AM6/23/2015 9:48 AMRecursion Recursion Recursion is when a function calls itself to implement an algorithm. Really a paradigm.
Recursive Algorithms Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
© Suzanne Scotchmer 2007 Contents May Be Used Pursuant to Creative Commons Attribution-NoDerivs-NonCommercial Common Deed 1.0 Attribution-NoDerivs-NonCommercial.
Recursion Chapter 7. Chapter 7: Recursion2 Chapter Objectives To understand how to think recursively To learn how to trace a recursive method To learn.
CHAPTER 10 Recursion. 2 Recursive Thinking Recursion is a programming technique in which a method can call itself to solve a problem A recursive definition.
Prof. S.M. Lee Department of Computer Science. Answer:
Intellectual Property
MSE602 ENGINEERING INNOVATION MANAGEMENT
A Computer Science Tapestry 1 Recursion (Tapestry 10.1, 10.3) l Recursion is an indispensable technique in a programming language ä Allows many complex.
CPS Today’s topics Programming Recursion Invariants Digital Intellectual Property Issues Reading Brookshear, Chapter 6 Chapter 1 of Jessica Litman,
CompSci 100E 10.1 Solving Problems Recursively  Recursion is an indispensable tool in a programmer’s toolkit  Allows many complex problems to be solved.
CPS Today’s topics Digital Intellectual Property Issues Reading Intellectual Property Readings Intellectual property for CS students Software patents:
Recursion Chapter 7. Chapter Objectives  To understand how to think recursively  To learn how to trace a recursive method  To learn how to write recursive.
CHAPTER 02 Recursion Compiled by: Dr. Mohammad Omar Alhawarat.
13 Intellectual Property 1 Aaron Schiff ECON Reading: Cabral p , Deak p
CPS 100, Spring From Recursion to Self Reference public int calc(int n){ return n*calc(n-1); } l What is the Internet?  A network of networks.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Chapter 8 Recursion Modified.
CompSci 100E 12.1 Solving Problems Recursively  Recursion is an indispensable tool in a programmer’s toolkit  Allows many complex problems to be solved.
Chapter 4 Recursion. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter Objectives Explain the underlying concepts of recursion.
Recursion Part 3 CS221 – 2/27/09. Recursion A function calls itself directly: Test() { … Test(); … }
1 Ethical Issues in Computer Science CSCI 328, Fall 2013 Session 17 Software as Intellectual Property.
CompSci 100e 6.1 Hashing: Log ( ) is a big number l Comparison based searches are too slow for lots of data  How many comparisons needed for a.
Compsci 100, Fall From Recursion to Self Reference public int calc(int n){ return n*calc(n-1); } l What is the Internet?  A network of networks.
Lecture 7 b Recursion is a fundamental programming technique that can provide an elegant solution to certain kinds of problems b Today: thinking in a recursive.
Data Structures R e c u r s i o n. Recursive Thinking Recursion is a problem-solving approach that can be used to generate simple solutions to certain.
Back to the Basics The Ethical Aspect of Reverse Engineering.
21 April  Ownership and property  Rights of ownership: Blackstonian Bundle ◦ Exclude anyone from the property ◦ Use it as sees fit ◦ Receive income.
CPS 100, Spring Tools: Solve Computational Problems l Algorithmic techniques  Brute-force/exhaustive, greedy algorithms, dynamic programming,
Data Structure and Algorithms. Algorithms: efficiency and complexity Recursion Reading Algorithms.
1 Recursion n what is it? n how to build recursive algorithms n recursion analysis n tracing simple recursive functions n hands on attempts at writing.
© 2011 Pearson Education, publishing as Addison-Wesley Chapter 8: Recursion Presentation slides for Java Software Solutions for AP* Computer Science 3rd.
A Computer Science Tapestry 10.1 Solving Problems Recursively l Recursion is an indispensable tool in a programmer’s toolkit  Allows many complex problems.
CompSci Review of Recursion with Big-Oh  Recursion is an indispensable tool in a programmer’s toolkit  Allows many complex problems to be solved.
“ 10 Big Myths about Copyright Explained” By: Brad Templeton Presented By: Nichole Au December 6, 2007.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 12 Recursion.
Legal and Ethical Issues in Computer Security Csilla Farkas
Fundamentals of Intellectual Property
Recursion Fundamentals of Recursion l Base case (aka exit case)  Simple case that can be solved with no further computation  Does not make a recursive.
CPS Digital Copyright. CPS Copyright US Constitution (Article I, Section 8, Clause 8): “To promote the Progress of Science and useful.
A Computer Science Tapestry 10.1 Solving Problems Recursively l Recursion is an indispensable tool in a programmer’s toolkit ä Allows many complex problems.
Intellectual property (IP) refers to creations of the mind: inventions, literary and artistic works, music, movies, symbols, names, images, and designs.
CPS Today’s topics Digital Intellectual Property Issues Programming Recursion Invariants Reading Intellectual Property Readings Intellectual property.
Patent Review Overview Summary of different types of Intellectual Property What is a patent? Why would you want one? What are the requirements for patentability?
CH-11-Technology Management Assist Prof Banu OZKESER December, 2015.
CPS Today’s topics Programming Recursion Invariants Reading Great Ideas, p Brookshear, Section Upcoming Copyrights, patents, and.
Intro to Intellectual Property 3.0
Recursion what is it? how to build recursive algorithms
Chapter 10 Recursion Instructor: Yuksel / Demirer.
Abdulmotaleb El Saddik University of Ottawa
Plan for the Week Review for Midterm Source code provided
Recursion A problem solving technique where an algorithm is defined in terms of itself A recursive method is a method that calls itself A recursive algorithm.
Solving Problems Recursively
Recursive Thinking Chapter 9 introduces the technique of recursive programming. As you have seen, recursive programming involves spotting smaller occurrences.
Announcements Final Exam on August 17th Wednesday at 16:00.
Recursive Thinking Chapter 9 introduces the technique of recursive programming. As you have seen, recursive programming involves spotting smaller occurrences.
Announcements Final Exam on August 19th Saturday at 16:00.
Announcements Final Exam on December 25th Monday at 16:00.
Announcements HW3 grades will be announced this week
Dr. Sampath Jayarathna Cal Poly Pomona
Solving Problems Recursively
Recursive example 1 double power(double x, int n) // post: returns x^n
Solving Problems Recursively
Presentation transcript:

CPS Today’s topics Programming Recursion Copyrights, patents, and digital media Reading Great Ideas, p Brookshear, Section Online IP readings Upcoming Complexity Security

CPS Solving Problems Recursively l Recursion is an indispensable tool in a programmer’s toolkit ä Allows many complex problems to be solved simply ä Elegance and understanding in code often leads to better programs: easier to modify, extend, verify ä Sometimes recursion isn’t appropriate, when it’s bad it can be very bad---every tool requires knowledge and experience in how to use it l The basic idea is to get help solving a problem from coworkers (clones) who work and act like you do ä Ask clone to solve a simpler but similar problem ä Use clone’s result to put together your answer l Need both concepts: call on the clone and use the result

CPS Fundamentals of Recursion l Base case (aka exit case) ä Simple case that can be solved with no further computation ä Does not make a recursive call l Reduction step (aka Inductive hypothesis) ä Reduce the problem to another smaller one of the same structure ä Make a recursive call, with some parameter or other measure that decreases or moves towards the base case Ensure that sequence of calls eventually reaches the base case “Measure” can be tricky, but usually it’s straightforward l The Leap of Faith ! ä If it works for the reduction step is correct and there is proper handling of the base case, the recursion is correct. l What row are you in?

CPS Classic examples of recursion l For some reason, computer science uses these examples: ä Factorial: we can use a loop or recursion, is this an issue? ä Fibonacci numbers: 1, 1, 2, 3, 5, 8, 13, 21, … F(n) = F(n-1) + F(n-2), why isn’t this enough? What’s needed? Classic example of bad recursion, to compute F(6), the sixth Fibonacci number, we must compute F(5) and F(4). What do we do to compute F(5)? Why is this a problem? ä Towers of Hanoi N disks on one of three pegs, transfer all disks to another peg, never put a disk on a smaller one, only on larger Every solution takes “forever” when N, number of disks, is large ä Reversing strings Append first character after the rest is reversed

CPS Exponentiation l Computing x n means multiplying n numbers (or does it?) ä What’s the easiest value of n to compute x n ? ä If you want to multiply only once, what can you ask a clone? double Power(double x, int n) // post: returns x^n { if (n == 0) { return 1.0; } return x * Power(x, n-1); } l What about an iterative version?

CPS Faster exponentiation l How many recursive calls are made to compute ? ä How many multiplies on each call? Is this better? double Power(double x, int n) // post: returns x^n { if (n == 0) { return 1.0; } double semi = Power(x, n/2); if (n % 2 == 0) { return semi*semi; } return x * semi * semi; } l What about an iterative version of this function?

CPS Recursive example 1 double power(double x, int n) // post: returns x^n { if (n == 0) { return 1.0; } return x * power(x, n-1); } x: n: Return value:

CPS Recursive example 2 double fasterPower(double x, int n) // post: returns x^n { if (n == 0) { return 1.0; } double semi = fasterPower(x, n/2); if (n % 2 == 0) { return semi*semi; } return x * semi * semi; } x: n: Return value:

CPS Recursive example 3 String mystery(int n) { if (n < 2) { return "" + n; } else { return mystery(n / 2) + (n % 2); } n: Return value:

CPS Copyrights l Copyright Term Extension Act 1998 ä Free Mickey Mouse! (challenged in Supreme Court 2003) ä Retroactive copyright extension of 20 years ä Breyer: “effect … is to make the copyright term not limited, but virtually perpetual” Over the last 40 years, Congress has lengthened copyright durations 11 times Copyright term length –95 years for corporations –70 years after death for individuals l Other forms of exclusive rights in information ä Patents: inventions that others cannot use ä Trademark: differentiates between different sources of products ä Trade secret: pseudo-property right to penalize those who disclose information to unauthorized persons

CPS Important papers l National Information Infrastructure White Paper Copyright owners given exclusive rights over “transmission” of information not just copying 2. Eliminate first-sale doctrine for digital works 3. Criminalize tampering with copyright protection or identification mechanisms ä Controversial and bills to implement recommendations were not passed, until… l World Intellectual Property Organization Treaty 1996 l Digital Millenium Copyright Act 1998 ä Encourages use of technological protections to facilitate a pay-per-view/use system ä Copyright used to regulate multiplication and distribution of works but how about consumption? ä Civil and criminal penalties for circumventing copyright protection systems ä Why is YouTube not the subject of copyright infringement suits?

CPS Questions l Is copyright infringement stealing? l What are the differences between writing code and writing books in terms of licensing? l Discuss the legality of peer-to-peer sharing with respect to the four prongs of determining fair use l Eben Moglen: Eben Moglen ä If you could feed everyone by pressing a button to create lambchops (for free), is there a moral reason to have starving people? ä If everything has zero marginal cost and can be given to everyone everywhere why is it ever moral to exclude anyone from anything?

CPS Consequences l Scientific research ä Secure Digital Music Initiative & Prof. Edward Felton ä Adobe & Dmitry Skylarov l Fair Use ä Copy-protected CDs ä DeCSS and DVD Copy Plus l Innovation and competition ä Sony vs. Connectix and “Mod Chip” makers ä Apple & Other World Computing

CPS Patents l Why patents are powerful? ä Right to exclude others from “praticing the invention” l Currently operating under Patent Act of 1975 ä 20 year term l Patent and Trademark Office looks at 4 criteria  Is proposed invention patentable?  Utility  Novelty  Non-obviousness 1. Software patents ä Only recently have patents been granted for software or business methods ä Controversial patent: Amazon.com’s One-Click