Two Paths Diverge in the Lectures

Slides:



Advertisements
Similar presentations
 Communication:  Provide context, e.g., s …  TA Office hour for next Tuesday: CANCELLED  My name is: ??  Show  Scores on-line, Quiz-1 results.
Advertisements

6-1 Chapter Goals Determine whether a problem is suitable for a computer solution Describe the computer problem-solving process and relate it to Polya’s.
Problem Solving and Algorithm Design
Chapter 6 Problem Solving and Algorithm Design. 6-2 Chapter Goals Determine whether a problem is suitable for a computer solution Describe the computer.
A tour around Java General introduction to aspects of the language (these will be covered in more detail later) After this tour you should have a general.
Welcome – You’ve found CSE120 OR Computer Science Principles OR UWIT…  Announcements are usually listed here and displayed before the start of class 
Lawrence Snyder University of Washington, Seattle © Lawrence Snyder 2004 Assignment 6.
Research Proposal The Alignment between Design, Implementation and Affordances, in Blended and Distance Learning.
Lawrence Snyder University of Washington, Seattle © Lawrence Snyder 2004 We’re underway …
Lawrence Snyder [with Susan Evans and Brandon Blakeley] University of Washington, Seattle © Lawrence Snyder 2004 Whoa! That homework may have been too.
Lawrence Snyder University of Washington, Seattle © Lawrence Snyder 2004.
Lawrence Snyder University of Washington, Seattle © Lawrence Snyder 2004.
Two paths diverge in the lectures 2 Think of the first as concepts, the second as capabilities This ClassPrinciplesDoing stuff.
Instructional Technique #2 Use Explicit Instruction to Convey Critical Content.
Constructivism is a theory based on observation and scientific study about how people learn. It is a teaching philosophy based on the concept that learning.
Mathematical Practice Standards
BA Art Extension Examination Preparation
Situated supervision Ability to read the situation ….
AP CSP: The Need for Programming Languages and Algorithms
Programming & Scratch.
Topic: Programming Languages and their Evolution + Intro to Scratch
Topic: Introduction to Computing Science and Programming + Algorithm
Architecture Concept Documents
Teaching Quality in an individual class: an overview
Lesson 02: Introduction to Python
Measure Phase Welcome to Measure
Problem-based learning
UNIT 3 – LESSON 5 Creating Functions.
Lightbot and Functions CSE 120 Winter 2017
University of Washington Computer Programming I
Factoring Expressions
The Need for Algorithms 2 days
Group 5 Presentation: p By: Chris P and Sam R.
Vocabulary Algorithm - A precise sequence of instructions for processes that can be executed by a computer.
Knowledge Representation
Computer science in the computing curriculum
Teaching with Instructional Software
Strategies for Multiplication
Sussex Neuroscience Coding Club title slide
UNIT 3 CHAPTER 1 LESSON 4 Using Simple Commands.
Lightbot and Functions CSE 120 Winter 2018
Exceptions CSCE 121 J. Michael Moore
Announcements Mid-Term Exam!! Quiz 5 Again + Quiz 6 Exercise 5
Pair Programming.
Light Bot Solutions: an analysis
Light Bot Solutions: an analysis
An Introduction to VEX IQ Programming with Modkit
Chapter 0 : Introduction to Object Oriented Design
Welcome! Martin Norris Year 5 Class Teacher & Computing
Testing and Repetition
Algorithm and Ambiguity
PHYS 202 Intro Physics II Catalog description: A continuation of PHYS 201 covering the topics of electricity and magnetism, light, and modern physics.
15-110: Principles of Computing
Tonga Institute of Higher Education IT 141: Information Systems
CS 2530 Intermediate Computing Dr. Schafer
Computational Thinking
CSE 373 Data Structures and Algorithms
Announcements How to save your work? Quiz solution 5/5/2019
Lingua e Cultura Inglese, L-19, a.a. 2018/2019 Prof.ssa A.STETA
Digital Thinking: Animation, Video Games, and the Social Web
Hour of Code Code.org/lightbot
Building Better Classes
Lawrence Snyder University of Washington
Chapter 13 Recursion Copyright © 2010 Pearson Addison-Wesley. All rights reserved.
U3L2 The Need For Algorithms
Tonga Institute of Higher Education IT 141: Information Systems
Advanced Computer Graphics Introduction
Announcements Survey feedback: summary Quiz: HW 7:
Early Midterm Some Study Reminders.
Today: to list: Syllabus change: Grade on-line
Presentation transcript:

Two Paths Diverge in the Lectures As noted, this class is about principles, and about learning to use computational thinking to solve your problems We will use a 2-threaded class structure … One thread will cover principles and key knowledge that everyone should know about CS The other thread will focus on “doing stuff” – reasoning, analysis, abstracting, programming, problem solving, creating, etc. Think of the first as concepts, the second as capabilities 4/3/2019 © 2010 Larry Snyder, CSE

Today – They Are Merged Topic: The act of directing a computer to do something … called programming The Lightbot 2.0 exhibited many properties of programming, so to launch both threads we will review what those properties are. 4/3/2019 © 2010 Larry Snyder, CSE

As Experienced Lightbot Hackers What are you doing in Lightbot? Commanding a robot through a “blocks world” Programming is commanding an agent 4/3/2019 © 2010 Larry Snyder, CSE

Agent, Instructions, Intent Other aspects of “commanding” The agent is usually a computer, but it could be a person, or other device (animated robot?) The agent follows the commands a/k/a instructions, flawlessly, and stolidly, doing only what it is asked The program implements human intent – you try to get the robot to the Blue Tile goal – it’s the point of your instructions 4/3/2019 © 2010 Larry Snyder, CSE

Sequencing Instructions are given in sequence They are executed in sequence – essential Instructions … From a limited repertoire All are within agent’s ability; no JUMP_3 Executed one- at-a-time A “program counter” keeps track of agent’s progress 4/3/2019 © 2010 Larry Snyder, CSE

Instructions Formed of Simpler Instructions Check out this screen shot of the Lightbot It is partway through an instruction … its beacon is lit, but not the tile To a programmer the instruction is monolithic (one thing) To an agent each instr. is a series of steps An Instruction abstracts those steps 4/3/2019 © 2010 Larry Snyder, CSE

Abstraction The word “abstraction” is used a lot in computing, and in this course As a general definition, abstraction eliminates details to focus on essential properties The instruction example just given illustrates functional abstraction meaning that we have given a name to a series of operations that perform a coherent (and to us meaningful) activity; the name is the instruction, the series of operations are the bot’s actions to implement it 4/3/2019 © 2010 Larry Snyder, CSE

Abstracting Collecting the operations together and giving them a name is functional abstraction The group of operations perform some function but we ignore all of the details Giving it a name is functional abstraction It doesn’t seem like a big deal … and if it wasn’t AMAZINGLY powerful, it wouldn’t be What makes it powerful, is we can forget about the operations and think only about the function they do; more about this later Let’s do some functional abstraction 4/3/2019 © 2010 Larry Snyder, CSE

Functions Package Computation F1( ) packages actions: E.G. “process a riser” 4/3/2019 © 2010 Larry Snyder, CSE

The Function Becomes A Concept Because F1( ) “processes a riser,” I think of the programming task as With F1( ) as a concept, I simplify the programming to just 5 steps rather than 21 It also suggests another concept: Move_to_ next_ riser ( ) Process a riser F1 Move to next riser Process a riser F1 4/3/2019 © 2010 Larry Snyder, CSE

A Five Instruction Program Is that beautiful, or what? 4/3/2019 © 2010 Larry Snyder, CSE

Here Is What Is Beautiful … Did everyone see 1 idea, 2 applications? Slide 8 To a programmer the instruction is monolithic (one thing) To an agent each instruction is a series of steps Slide 11 F1( ): Process Riser F2( ): Move To Next Riser It is one concept here (monolithic, but here it is a series of eight instructions 4/3/2019 © 2010 Larry Snyder, CSE

Abstraction … Formulating blocks of computation as a “concept” is functional abstraction What we did is important here … We spotted a coherent (to us) part of the task We solved it using a sequence of instructions We put the solution into a function “package”, gave it a name, “process a riser,” and thus created a new thing, a concept, something we can talk about & use Then we used it to solve something more complicated … and probably repeat this approach at the next higher level 4/3/2019 © 2010 Larry Snyder, CSE

Keep Using Abstraction … If M.C. Escher handed us a problem … what would we do? It only simplifies our thinking; the bot still does all the work 4/3/2019 © 2010 Larry Snyder, CSE

The Function Is Just The Packaging Another way to use a function for the risers 4/3/2019 © 2010 Larry Snyder, CSE

Summary From Lightbot 2.0 Programming is commanding an agent Agent: usually a computer, person, or other device Agent follows instructions, flawlessly & stolidly The program implements human intent Instructions are given in sequence … and executed in sequence Limited repertoire, within ability, one-at-a-time “Program counter” keeps track current instruction Formulating computation as a “concept” is functional abstraction 4/3/2019 © 2010 Larry Snyder, CSE