UC Berkeley EECS Sr Lecturer SOE Dan Garcia www.technologyreview.com/news/518591/copy-protection-for-3-d- printing-aims-to-prevent-a-piracy-plague/ Quest.

Slides:



Advertisements
Similar presentations
Decision Structures - If / Else If / Else. Decisions Often we need to make decisions based on information that we receive. Often we need to make decisions.
Advertisements

CSTA K-12 Computer Science Standards (rev 2011)
CS10 The Beauty and Joy of Computing Lecture #7 Algorithmic Complexity One million Wi-Fi devices isn’t cool. You know what’s cool? A Billion.
The Beauty and Joy of Computing Lecture #18 Besides Blocks I: Intro to Python Amazon Dash is Not an April Fools Joke UC Berkeley EECS Head TA Michael Ball.
Program Design and Development
CS10 The Beauty and Joy of Computing Lecture #1 Welcome; Abstraction At CES 2011 in Vegas, companies showed lots of tablets and internet TV.
CS10 The Beauty and Joy of Computing Lecture #5 : Programming Paradigms Intel has shown demos of the game Wolfenstein whose visual images weren’t.
CS10 The Beauty and Joy of Computing Lecture #17 Higher Order Functions I Silicon (normally what processors are made of) is rigid and expensive,
CS10 The Beauty and Joy of Computing Lecture #5 : Programming Paradigms Times like these make us all appreciate the value of freedom… China.
CS10 The Beauty and Joy of Computing Lecture #25 : Tree Recursion The newly released (and much- hyped) Microsoft Kinect system for the XBOX.
CS39N The Beauty and Joy of Computing Lecture #6 : Programming Paradigms In response to a 30,000+ signature petition, British PM Gordon Brown.
Computational Thinking Related Efforts. CS Principles – Big Ideas  Computing is a creative human activity that engenders innovation and promotes exploration.
The Beauty and Joy of Computing Curriculum and the AP CS: Principles project Brian Harvey, UC Berkeley Dan Garcia, UC Berkeley Jens Mönig, MioSoft.
CS10 : The Beauty and Joy of Computing Lecture #10 Social Implications of Computing CS10 has been chosen as one of 30 courses (all across 10.
Moving forward with Scalable Game Design. The landscape of computer science courses…  Try your vegetables (sneak it in to an existing course)  Required.
The Beauty and Joy of Computing Lecture #6 Algorithms Alan Turing ( ) would have turned 100 this year. He was a brilliant British mathematician.
Grammars and Parsing. Sentence  Noun Verb Noun Noun  boys Noun  girls Noun  dogs Verb  like Verb  see Grammars Grammar: set of rules for generating.
CSC 1701B Computing: Science and Creativity. Outline  Types  Variables  Operators  Control: sequence, selection, repetition  Functions (block headings.
TERMS TO KNOW. Programming Language A vocabulary and set of grammatical rules for instructing a computer to perform specific tasks. Each language has.
Institute for Personal Robots in Education (IPRE)‏ CSC 170 Computing: Science and Creativity.
By Yukyong Chung.  Given the terms of computational concepts, the students will be able to state examples matching the Scratch blocks.  The students.
Teaching is not just a process of imparting knowledge to an attentive child. Learning needs to be engaging, social and interactive. It is also vital that.
The Beauty and Joy of Computing Lecture #1 Welcome; Abstraction Watch the student testimonials about the course, what it means to them, and how it has.
Purpose of study A high-quality computing education equips pupils to use computational thinking and creativity to understand and change the world. Computing.
The Beauty and Joy of Computing Lecture #5 Programming Paradigms Story details the move to Digital of many things precious to us – music, photos, videos.
AP CS: Principles Dr. Kelly Schultz Academically Talented Youth Program Western Michigan University.
UC Berkeley EECS Sr Lecturer SOE Dan Garcia printing-aims-to-prevent-a-piracy-plague/ Quest.
The Beauty and Joy of Computing Lecture #3 : Creativity & Abstraction UC Berkeley EECS Lecturer Gerald Friedland.
University “Politehnica” of Bucharest I-TRACE PROJECT 2nd Partners Meeting, Potsdam, June 8-9, 2006 Artificial Intelligence and Multi-Agent Systems Laboratory.
Summary of what we learned yesterday Basics of C++ Format of a program Syntax of literals, keywords, symbols, variables Simple data types and arithmetic.
The role of data mining in the last presidential election. A mind-blowing piece on how the Obama campaign used various sources of data to target voters.
CSC 170 Computing: Science and Creativity
The Beauty and Joy of Computing Lecture #5 Programming Paradigms UC Berkeley EECS Sr Lecturer SOE Dan Garcia invent.citris-uc.org motherboard.vice.com/read/click-print-gun-the-inside-story-of-the-3d-printed-gun-movement-video.
Big Idea 2: Abstraction reduces information and detail to facilitate focus on relevant concepts. Enduring Understanding: A combination of abstractions.
The Beauty and Joy of Computing Lecture #6 Algorithms MIT researchers recently created an algorithm which they say will be able to predict what topics.
The Beauty and Joy of Computing Lecture #10 Social Implications of Computing Online education now has a player in the open access / free education space,
ECSE Software Engineering 1I HO 4 © HY 2012 Lecture 4 Formal Methods A Library System Specification (Continued) From Specification to Design.
CS 10K – Rise of CS Principles UTeach and Computer Science Principles: National Initiatives To Reform Introductory Curricula And Broaden Participation.
The Beauty and Joy of Computing Lecture #6 Algorithms I UC Berkeley EECS Sr Lecturer SOE Dan Garcia.
The Beauty and Joy of Computing Lecture #5 Programming Paradigms invent.citris-uc.org
INVITATION TO Computer Science 1 11 Chapter 2 The Algorithmic Foundations of Computer Science.
The Beauty and Joy of Computing Lecture #7 Algorithms II minors-delete-activity/story?id= /
The Beauty and Joy of Computing Lecture #12 Social Implications of Computing I Online education now has a player in the open access / free education space,
The Beauty and Joy of Computing Lecture #7 Algorithmic Complexity “Data scientists at Yahoo are using prediction markets – along with polls, sentiment.
SCRATCH ScratchScratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share.
CS 104 – Fall 2011 Exploring Computer Science Build Your Own Blocks September 19, 2011.
CS61A Lecture 1 Introduction and Basics Tom Magrino and Jon Kotker UC Berkeley EECS June 18, 2012.
UC Berkeley EECS Lecturer SOE Dan Garcia The success of Apple’s Siri (only available on the iPhone 4S) has sparked competition, to be sure. Google’s IRIS.
CS10 The Beauty and Joy of Computing Lecture #4 : Functions UC Berkeley EECS Lecturer SOE Dan Garcia Researchers at Microsoft and UW are working.
CS10 : The Beauty and Joy of Computing Lecture #5 Programming Paradigms If you visited google.com on Saturday, you saw a tribute to this founding.
UC Berkeley EECS Sr Lecturer SOE Dan Garcia Valve (video game makers of Half-Life) believes the future of video games may not be in the input device (ala.
+ Big Idea: Creativity CS4HS- Marquette University 7/23/12 Mindy Hart- Purdue University.
The Beauty and Joy of Computing Lecture #4 : Creativity & Abstraction
An Innovative Approach to the Technology Itch
Yahoo predicts contest already!
Chapter No. : 1 Introduction to Java.
CSC 221: Computer Programming I Spring 2010
UC Berkeley EECS Sr Lecturer SOE Dan Garcia
Topic: Python’s building blocks -> Variables, Values, and Types
The Beauty and Joy of Computing Lecture #4 Functions
7 Big Ideas of Computing:
CSC 221: Computer Programming I Fall 2005
AP Computer Science Principals Course Importance and Overview
AP computer science PRINCIPLES
Computer Science Principles
Unit I Flash Cards Start.
Algorithm Discovery and Design
AP Computer Science Principals Course Importance and Overview
Summary of what we learned yesterday
Presentation transcript:

UC Berkeley EECS Sr Lecturer SOE Dan Garcia printing-aims-to-prevent-a-piracy-plague/ Quest (first exam) in in 9 days!! The Beauty and Joy of Computing Lecture #4 : Creativity & Abstraction bazbiz

UC Berkeley “The Beauty and Joy of Computing” : Functions (2) Garcia  “Creativity and computing are prominent forces in innovation; the innovations enabled by computing have had and will continue to have far-reaching impact.  At the same time, computing facilitates exploration and the creation of knowledge.  This course will emphasize these creative aspects of computing.  Students in this course will create interesting & relevant artifacts with the tools and techniques of computer science. “ Creativity

UC Berkeley “The Beauty and Joy of Computing” : Functions (3) Garcia  Creating…  knowledge  tools  expressions of ideas  solutions to problems.  Creating digitally…  requires understanding and using software tools.  can be done by…  combining and modifying existing artifacts  by creating new artifacts. Computing enables people to create digitally

UC Berkeley “The Beauty and Joy of Computing” : Functions (4) Garcia  A computational artifact is created by human conception using software tools.  Examples of computational artifacts include  digital music  videos  images  documents  combinations of these. E.g.,  infographics  presentations  web pages. Computing enables people to translate intention into computational artifacts.

UC Berkeley “The Beauty and Joy of Computing” : Functions (5) Garcia  Collaboration facilitates multiple perspectives in developing computational artifacts.  A computational artifact can reflect collaborative intent. Collaboration is an essential part of creating computational artifacts.

UC Berkeley “The Beauty and Joy of Computing” : Functions (6) Garcia

UC Berkeley “The Beauty and Joy of Computing” : Functions (7) Garcia Dan’s kid’s 2 nd grade HW!

UC Berkeley “The Beauty and Joy of Computing” : Functions (8) Garcia Function basics  Functions take in 0 or more inputs and return exactly 1 output  The same inputs MUST yield same outputs.  Output function of input only  Other rules of functions  No state (prior history)  No mutation (no variables get modified)  No side effects (nothing else happens) CS Illustrated function metaphor

UC Berkeley “The Beauty and Joy of Computing” : Functions (9) Garcia Which is NOT a function? a) b) c) d) e)

UC Berkeley “The Beauty and Joy of Computing” : Functions (10) Garcia  Domain  The “class” of input a function accepts  Examples  Sqrt of  Positive numbers  Length of  Sentence, word, number  _ < _  Both: Sentence, word, number  _ and _  Booleans  Letter _ of _  Number from 1 to input length  Sentence, word, number  Range  All the possible return values of a function  Examples  Sqrt of  Non-negative numbers  Length of  Non-negative integer  _ < _  Boolean (true or false)  _ and _  Boolean (true or false)  Letter _ of _  Letter More Terminology (from Math)

UC Berkeley “The Beauty and Joy of Computing” : Functions (11) Garcia Types of input (there are more) Sentences Word Character Digit Words separated by N spaces, N ≥ 0 E.g., CS 10 is great Length ≥ 1, no spaces Cal, 42, CS10 Length = 1 E.g., A, 3, # 0-9 only E.g., 7

UC Berkeley “The Beauty and Joy of Computing” : Functions (12) Garcia  If a function only depends on the information it gets as input, then nothing else can affect the output.  It can run on any computer and get the same answer.  This makes it incredibly easy to parallelize functions.  Functional programming is a great model for writing software that runs on multiple systems at the same time. Why functions are great! Datacenter

UC Berkeley “The Beauty and Joy of Computing” : Functions (13) Garcia  Scratch  MIT  Maintained by MIT  Huge community  Sharing via Website  No functions   Scratch 2.0 in Flash  No iOS devices.   scratch.mit.edu  BYOB (and S NAP ! )  Based on Scratch code  Maintained by jens & Cal  Growing community  No sharing (yet)   Functions! … “Blocks”  Snap! Is in HTML5  All devices  snap.berkeley.edu/run Scratch  BYOB (Build Your Own Blocks)

UC Berkeley “The Beauty and Joy of Computing” : Functions (14) Garcia Why use functions? (1) The power of generalization!

UC Berkeley “The Beauty and Joy of Computing” : Functions (15) Garcia Why use functions? (2) They can be composed together to make even more magnificent things. They are literally the building blocks of almost everything that we create when we program. We call the process of breaking big problems down into smaller tasks functional decomposition

UC Berkeley “The Beauty and Joy of Computing” : Functions (16) Garcia  Command  No outputs, meant for side-effects  Not a function…  Reporter (Function)  Any type of output  Predicate (Function)  Boolean output  (true or false) Types of Blocks

UC Berkeley “The Beauty and Joy of Computing” : Functions (17) Garcia Quick Preview: Recursion Recursion is a technique for defining functions that use themselves to complete their own definition. We will spend a lot of time on this. M. C. Escher : Drawing Hands

UC Berkeley “The Beauty and Joy of Computing” : Functions (18) Garcia  Computation is the evaluation of functions  Plugging pipes together  Each pipe, or function, has exactly 1 output  Functions can be input!  Features  No state  E.g., variable assignments  No mutation  E.g., changing variable values  No side effects  Need BYOB/Snap!, and not Scratch 1.x Functions Summary en.wikipedia.org/wiki/Functional_programming f(x)=(x+3)* x + x 3 * x f x