Karel – Primitive Instructions

Slides:



Advertisements
Similar presentations
1 karel_IF_part1 Conditional Statements Flavor 1: if ( ) { } For now: these are method invokations (see next slide)
Advertisements

Karel – Making More Complex Decisions IF / THEN / ELSE IF THEN BEGIN Instructions END ELSE BEGIN Instructions END Do these when test = False Do these when.
1 Note: Original slides provided by and modified for Mr. Smith’s AP Computer Science A classwww.apComputerScience.com.
1 of 3 Karel Karel is an educational programming language for beginners, created by Richard E. Pattis (currently at Pace University, NY). Pattis used the.
Copyright, Joseph Bergin
Nested If Statements While Loops
1 karel_part4_functions.ppt Functions Functions return values or Objects. –Using a function allows the programmer to focus on other task. –Using a function.
Murphy’s Laws. Things are more complex than they seem to be. Things take longer than expected. Things cost more than expected. If something can go wrong,
Chapter 3 Extending the Robot Programming Language.
You ARE NOT ALLOWED To Copy Files!!!. You ARE NOT ALLOWED To Be Told What to Write in the Program.
1 Inheritance in Java Behind the scenes: new Objects from old.
CMPUT 101 Lab # 2 September 17, :00 – 16:50.
Karel the Robot -- ITERATE Problem Statement: Karel is told to “take a walk around the block!” Revise Algorithm: Define move ahead 5 streets Define turnright.
Karel The Robot In the beginning… software. Karel the Robot  All robots are controlled by software  Artificially intelligent robots that can “think”
Conditionals How do we solve tasks in which every particular of a task is not specifically known? – A robot needs the ability to survey its immediate environment.
Polymorphism Are there different ways to solve the Harvester problem? – Robot teams – instead of one robot to solve a problem, let’s get a team of robots.
Robot? What’s a Robot? Introducing Karel-the-Robot.
Extending the Robot Programming Language In the Robot world 1 mile = 8 blocks Suppose we want a robot to run a marathon (26+ miles)? Does our program have.
Karel JRobot Karel is an educational programming language for beginners, created by Richard E. Pattis (currently at Pace University, NY). Pattis used the.
Chapter 5 Conditionally Executing Instructions
1 karel_part5_loops Iteration (Loops) Loops repeat a set of instructions Two types of loops: –Definite loops ( for ) perform instructions explicit (known)
Ch. 2 1 Karel – Primitive Instructions Basic tools with which all problems are solved (analogies: LeftSpinngingRobot, RightSpinningRobot, GuardRobot, etc)
Karel J Robot An introduction to BlueJ and Object- Oriented Programming.
1 Classes begin with capital letters (i.e. UrRobot). Methods, objects, and variable names begin with lower case (camelCase) Use indentation to line up.
1 Note: Original slides provided by and modified for Mr. Smith’s AP Computer Science A classwww.apComputerScience.com.
1 Ch. 7 Recursion similar to iteration in that you repeatedly do a little bit of the task and then “loop” again and work on a smaller piece - eventually.
Karel J. Robot A Gentle Introduction to the Art of Object Oriented Programming.
Karel the Robot A Gentle Introduction to the Art of Programming.
Programming Errors Lexical errors – occur whenever Karel reads a word that is not in his vocabulary. Example in English: We are asking directions and instead.
Thanks to Dr. Kris Schindler for this (and all Karel the Robot slides)
Recursion – means to recur or to repeat – A different way to get a robot to repeat an action A programming language that allows recursive definitions (and.
Karel J. Robot Tool for learning OOP (Lecture covers Ch. 1 and 2)
1 Karel – Chapter 6 Instructions That Repeat Note: Original slides provided by and modified for Mr. Smith’s AP Computer Science.
1 Ch. 6 Iteration (Loops) Loops repeat a set of instructions Two types of loops: –Definite loops ( for ) perform instructions explicit number of times.
1 Karel – Chapter 5 Conditionally Executing Instructions Note: Original slides provided by and modified for Mr. Smith’s AP Computer.
1 Karel J Robot OOP approach to learning computer science “Its study involves development of the ability to abstract the essential features of a problem.
Georgia Institute of Technology Simulations Barb Ericson Jan 2005.
15-100: Introduction to Programming w/ Java * Ananda Gunawardena -- Lecture – School of Computer Science – Phone : (x81559) – Office: Wean Hall.
Introduction to OOP in VB.NET using Robots ACSE Conference, Nov 2004 Michael Devoy Monsignor Doyle C.S.S., Cambridge
Extending Karel’s Vocabulary This PPT originated with Dr. Judy Hankins Modifications have been done by Dr. Untch & Dr. Cripps.
1 Note: Original slides provided by and modified for Mr. Smith’s AP Computer Science A classwww.apComputerScience.com.
Programming in Karel Eric Roberts CS 106A January 6, 2016.
Introduction to Computer Science
Ch. 2 1 Karel – Primitive Instructions Basic tools with which all problems are solved (analogies: carpentry, geometry) –move() –turnLeft() –putBeeper()
Karel J. Robot Chapter 6 Instructions That Repeat.
Karel the Robot – Review Primitive Commands move pickbeeper putbeeper turnleft turnoff Karel’s program statements are separated by a semicolon (;) Copyright.
1 Note: Original slides provided by and modified for Mr. Smith’s AP Computer Science A classwww.apComputerScience.com.
Karel the Robot – Review Primitive Commands move pickbeeper putbeeper turnleft Turnoff Karel’s program statements are separated by a semicolon (;) Copyright.
Compiler Errors Syntax error Lexical Can not resolve/find symbol Can not be applied Execution error Oh wait, a run time error Intent error It ran, but.
Karel the Robot – Review Primitive Commands move pickbeeper putbeeper turnleft Turnoff Karel’s program statements are separated by a semicolon (;) Copyright.
1 Karel J. Robot Chapter 5 Conditionally Executing Instructions.
Karel J. Robot Chapter 6 Instructions That Repeat.
Chapter 3 Extending the Robot Programming Language.
CS 106A, Lecture 3 Problem-solving with Karel
Karel – Primitive Instructions
Mile-long hurdle race Suppose that we want to program Karel to run a one-mile long hurdle race, where vertical wall sections represent hurdles. The hurdles.
In the beginning… software
Copyright © 2008 by Helene G. Kershner
Loops We have already seen instances where a robot needs to repeat instructions to perform a task turnRight(); moveMile(); Harvesting beepers in a field.
Copyright © 2008 by Helene G. Kershner
Karel J Robot.
karel_part4_functions_2
Karel J Robot.
CS 106A, Lecture 2 Programming with Karel
Karel the Robot – Making Decisions
A Gentle Introduction to the Art of Object Oriented Programming
Ch.3 Classes & Stepwise Refinement
Nested If Statements While Loops
Karel – Primitive Instructions
Presentation transcript:

Karel – Primitive Instructions Now we start to the learn the robot programming language

Technical Term: Execute In programming A robot executes an instruction The robot performs the action in the instruction A robot executes a program The robot performs the series of instructions delivered by the helicopter pilot.

Robot Programming Language Primitive Instructions Primitives are basic tools with which all problems are solved (analogies: carpentry, geometry) move() turnLeft() putBeeper() pickBeeper() turnOff()

Change position with move() forward only, one block “Error Shutoff” if trying to move into a wall (a duh! Look first!) Remember C++ and div by zero???

Turning in Place with turnLeft() stay at same corner turn 90 degrees to the left cannot cause an error shutoff

Handling Beepers pickBeeper() picks up beeper on current corner and places in beeper bag attempted on beeper-less corners causes an error shutoff

Handling Beepers putBeeper() take beeper from beeper bag and put down on current corner attempted with an empty beeper bag causes an error shutoff

Finish a task with turnOff() robot turns off and is incapable of executing another instruction until restarted the last instruction executed on a robot object

What’s the object? What’s the method? OOP -ness Robot Program Instruction is object.method(); -A method acts on the object -objects are typically nouns (e.g., karel) -methods are typically verbs (e.g., move) and represent behavior Test your Understanding: karel.move() What’s the object? What’s the method?

Robot Description or Class UrRobot class (the “Model-T” Robot) “primitive” You don’t need to define this class – it is in a library for you to use public class UrRobot { void move() {…} void turnOff() {…} void turnLeft() {…} void pickBeeper() {…} void putBeeper() {…} } void means just do and don’t remember

So what does a program look like?

import kareltherobot.*; public class SampleTest implements Directions Sample Program import kareltherobot.*; public class SampleTest implements Directions { public static void main(String args[]) { ur_Robot karel = new UrRobot(2, 1, East, 0); karel.move(); karel.turnLeft(); karel.turnOff(); } static { … // code here that you need not worry much about

4 Types of Program Errors lexical error (compiler catches) word not in its dictionary syntax error (compiler catches) incorrect grammar, punctuation, incorrect location of a statement execution error (run-time environment catches) can’t perform what you ask (at run-time) intent error (logic - guess who catches this one!) program terminates successfully – junk output, however Which is the hardest type of error to correct? Why?

Now You Try a Short Program on Paper – 10 minutes start a robot (HBot) at position (1, 1) (a.k.a, the “origin”) facing North and having an infinite number of beepers Have the robot “print” (using beepers) the letter H (with 3-beeper sides and a 1-beeper bar) when done, the robot should be facing North back at the origin (leaving the world in its original state of being)

Programming the HBot together Let’s go into BlueJ and write the HBot. We’ll cover these items: Your network drive and staying organized Creating a workspace Compile vs. Execute setting up things at home