Northwestern University CS 395 Behavior-Based Robotics Behavior Design

Size: px
Start display at page:

Download "Northwestern University CS 395 Behavior-Based Robotics Behavior Design"

Transcription

1 Behavior design In the last chapter, we discussed the design of simple controllers - specifically regulators and tracking systems. In standard feedback control, a single control policy is used all the time. In some cases, such as gain scheduling, you might have a number of similar controllers that you switch between, but more or less you think of there as being a single control system that's trying to do the same thing all the time - follow the set-point. Now we want to think about building systems that, as it were, have a life. Instead of a having a single goal of tracking a set-point, our robots will likely have lots of different goals, some of which can be thought of as tracking a set-point, but others will be more qualitative, like "stay fed," or "avoid predators." To handle multiple tasks, we ll need multiple control policies. The primary topic of this course is how to combine multiple control policies to accomplish multiple tasks or more complicated tasks. The topic of this chapter is how to combine control policies using parallelism, that is, running different pieces of code at the same time, as in a multi-threaded system. We will be using a specific form of parallelism called guarded parallelism, where policies run in parallel but only take control of the motors when specific conditions are met. In the theory of parallel sequential programming, these conditions are called guards, hence the name guarded parallelism. In this course, we ll be calling those conditions triggers or, when we want to consider the possibility of a policy that s half on, activation-levels. We ll call the combination of a policy and an activation level a behavior. This course is on behavior-based systems. Behavior-based systems, roughly, consist of a large number of specialized controllers, each designed to contribute to a specific goal in a specific set of circumstances. In its simplest form, this leads to an architecture consisting of a group of behaviors connected in parallel to the sensors and motors: behavior behavior Sensor data drive-base behavior behavior I ll call this general design the naïve behavior-based architecture because, while it s a useful model, real behavior-based systems tend to have considerably more structure than this. In the coming chapters, we ll discuss the more complicated variants that are used in practice. Most of these will correspond to different ways of combining control policies.

2 In general, the creatures don't act on all their goals at once. It may be that no action is called for; if a creature's just fed, there's no point in feeding again immediately. Or two goals may conflict; if you're being chased by a predator, it's probably a bad time to feed, even if you're hungry. Also, a given goal may be implemented by a number of behaviors. Part of the job of behaviors is to decide when to take action and when to remain quiescent. In general, behaviors don't activate themselves unless they can do something useful. Nonetheless, several behaviors may be in conflict, so researchers have proposed a number of techniques for conflict resolution. We will discuss these in the next chapter. Common robot locomotion behaviors To give a sense of the kinds of things we mean when we talk here about robot behaviors, let s discuss some of the most common kinds of behaviors that people build. Followers There are a number of locomotion behaviors that are referred to as followers of one kind or another. The most common is the freespace follower also called a wanderer or sometimes just collision avoidance system, which steers toward open space and attempts to drive forward. The simplest class of control policies for freespace following is to choose a direction of motion or a rotational velocity that forms a compromise between the different possible directions or velocities based on the amount of free space in different directions. For example, the direction of motion might be a weighted average of the different possible directions of motion with the amount of free space in each direction used as the weights. A variant on freespace following is boundary following, in which the robot tries to trace along the edge of some object or other contour. Line followers sense the presence of lines drawn or otherwise marked on the floor and follow along them. Wall followers attempt to drive along a wall by keeping a constant distance from it and remaining parallel to it. Wall- and boundary followers are sometimes built to have a preference for following the object on one side or the other of the robot, so some robots have separate left- and rightwall followers, which are activated by different triggers. The simplest class of control policies for boundary followers is to steer using a feedback loop on the robot s distance from the boundary. If the robot is too far, it turns toward it; if it s too near, it turns away. Finally, there are object followers, which try to stay close to an object as the object moves. Usually the object is a brightly colored ball or some other kind of object that is easy to sense. Person followers are also common, but are harder to build because it s difficult to build a good person detector. Ballistic actions Most behaviors turn themselves off when their sensors detect that their triggering conditions have ended. However, some behaviors need to keep running until the are done. These kinds of behaviors are called ballistic behaviors or ballistic actions. In biology, they re called fixed action patterns. For example, a ballistic turn behavior is a behavior that always turns a specific angle. Since motors are controlled by torque or velocity and not angle, the ballistic turn must be implemented as a control loop. When activated, the behavior must compute its target orientation and remember it (e.g. with a latch in GRL) so that it can compute the feedback error in its control loop. It must then stay active until that feedback error reaches zero. Another example of a ballistic action is backing up from an obstacle after a collision is sensed. This has to be a ballistic action because collision sensors are usually contact sensors, so as soon as contact is broken, the trigger goes away. Other common locomotion behaviors Control loops often get into stuck states where they haven t accomplished their tasks, but they still generate zero motor output. An example is a freespace follower that has driven into a cul de sac. Many freespace followers will generate a zero turn signal because there is equal freespace on both sides, yet they

3 cannot move forward because there is insufficient freespace ahead. A common solution to the problem is an unwedger which will trigger in a stuck state and forcibly reorient the robot (e.g. using a ballistic turn) to move it out of the stuck state. Another common behavior is to drive to a specified set of Cartesian coordinates based on the robot s estimate of its position. Position estimates are often based on integrating the sensed velocities of each motor. In nautical navigation, this task of computing the integral of velocity to get position is called deduced reckoning, which is usually shortened to DED reckoning, or more commonly, dead reckoning. The behaviors that use this to move to a specified position are often therefore also called dead reckoning behaviors. Homing is a behavior of (somehow) returning to a specified location. Simple homing systems use dead reckoning. More complicated ones can be very complicated indeed. Docking is essentially like object following, except that the object isn t moving and the robot actually needs to touch it. Usually, the idea is to touch it softly and at a specific position and orientation. For example, a robot that recharges itself needs to be able to plug itself in somehow. This can be very hard with today s robots because while they can move forward and backward easily, they can only move side-toside by alternately rotating and translating; so docking can be like trying to parallel park a car. Designing a frog As an example of behavior-based system design, we ll sketch the design of a feeding behavior for a simulated frog. Before we can write code for the behaviors, we will need to formalize what we mean by a behavior. Although behavior means many things to many people, we will take it to mean a combination of some kind of triggering mechanism (usually based on sensory data) and some kind of control loop. We will represent the output of the triggering mechanism as an activation-level signal, which might either be a Boolean value or a real number, depending on whether we want to be able to represent varying degrees of activation. We will represent the output of the control loop with a motor-vector signal (usually a group), suitable for feeding to the low-level drivers for the motors. We can describe these as a data abstraction in GRL: (define-group-type behavior (behavior activation-level motor-vector) (activation-level activation-level) (motor-vector motor-vector)) This says that behaviors have two components, an activation-level, and a motor-vector (the output of the policy). You create behaviors with the behavior procedure, which takes the activationlevel and motor-vector as arguments, and you extract their components with the activation-level and motor-vector procedures. Let's consider a couple of simple behaviors, such as a frog might have. Let's say our robot frog can do three things: turn in place, drive forward, and eat whatever's in front it. We can represent the turning and driving with our rt-vectors, so all we need to do is to add an eat? component to them. Then our motor vectors might look like: (define-group-type frog-motor-vector (frog-motor-vector motion eat?) (motion motion-of) (eat? eat?)) Now suppose our frog has a fly-motion sensor that tells the bearing of any flies that it sees. Then we could describe the frog's feeding behavior as a conjunction of two simpler behaviors:

4 Face-prey When the frog sees a fly, it needs to turn to face it so that it can stick out its tongue and grab it (frog tongues have limited steerability). Eat When the frog sees its prey within tongue range, it shoots out its tongue to eat it We can code each of these as a behavior. The eat behavior is straightforward: (define-signal facing-prey? (< (abs prey-heading) facing-prey-tolerance)) (define-signal sit-still (rt-vector 0 0)) (define-signal eat (behavor (and see-prey? facing-prey?) (frog-motor-vector sit-still #t))) Where we assume that prey-heading is the output of the prey sensor and it tells the frog what direction the prey is in relative to its own body, and where a heading of zero means the frog is perfectly facing the fly. The face-prey behavior is a little more complicated. At first blush, we might expect to use something like: (define-signal face-prey (behavior (and see-prey? (not facing-prey?)) (frog-motor-vector (orientation-p-controller prey-heading 0 face-prey-gain) #f))) which would servo the frog's body until it faced the prey. Unfortunately, most motion sensors go blind as soon as the creature starts moving itself, so the frog has to remember where the prey is and then turn toward it using dead reckoning. We can write this as (changes shown in italics): (define-signal face-prey (behavior (and see-prey? (not facing-prey?)) (frog-motor-vector (orientation-p-controller frog-orientation prey-orientation face-prey-gain) #f))) with the ancillary definitions: (define-signal frog-orientation (modulo (integrate rotational-velocity) 360) (define-signal still? (= rotational-velocity 0)) (define-signal prey-orientation (latch (modulo (+ frog-orientation prey-heading)

5 360) still?)) Note that latch is a transducer that outputs the value of its first input, as long as its second input is true. When the second input goes false, it holds its output until the second input becomes true again. We can now build our frog controller by saying: (define-signal frog-controller (drive-frog eat face-prey)) where we assume that drive-frog is a transducer, like drive-base, that sends a motor vector to the motors, or rather the muscles. However, unlike the previous base controllers we ve used, we will assume here that it takes behaviors as arguments and uses the motor vector of whichever behavior is active. This of course brings up to issues: of how we find the motor vector of the active behavior, and what we do if there are two active behaviors, both of which we ll put off until the next chapter. For now, simply take it for granted that drive-base has a way of handling the situation. Naï ve behavior-based system design To build a naï ve behavior-based system, we need to come up with a set of behaviors that jointly perform the robot s task. In practice, roboticists almost always end up doing this iteratively because there are almost always contingencies that come up in real environments that they didn t think while writing the code. Different people design systems in different ways, but the general outline of how you build a naï ve behavior-based system is basically this: 1. Break the task into a set of motions that, if properly executed at the right times, would allow the robot to solve the task 2. For each motion: Determine the conditions under which it should be performed Design an estimator that can determine whether those conditions occur Design a controller that should implement that motion when used under those conditions Package the controller and estimator together as a behaviors 3. Try the behaviors out as a system 4. Find a failure mode If none of the motions you have implemented could have prevented the failure, implement a new behavior. If the failure was due to firing the wrong behavior, then either Make the activation conditions for the behavior that didn t fire more general Make the activation conditions for the behavior that did fire more specific 5. Repeat until the system works This is an incomplete methodology at best since it s focused only on choosing behaviors and their triggering conditions. It ignores issues like tweaking gains and thresholds, hunting down bugs in device drivers, fixing bugs in sensor code, and so on. These latter tasks often consume much more of a roboticist s time than choosing a set of behaviors and their triggering conditions. Often times, there may be subtle trade-offs between solving these sorts of issues and designing the behaviors. For example, if the orient-to-prey behavior is performing poorly because the fly-motion detector sometimes hallucinates flies, you might try to fix the situation by building a better fly detector. On the other hand, you might instead try to solve the problem by adding another behavior that advances toward an apparent fly to get a better view, then modifying the triggering conditions for the eating behavior to only try to eat flies that are near enough for the fly detector to be trusted.

6 Motor schemas and potential fields Motor schemas are a very powerful method for designing low level behaviors. The term schema is originally due to Kant. In biology it is taken to mean any kind of built-in pattern to an organism s activity. In psychology, it means any kind of structuring or framework that a person uses to understand their world. In robotics, a motor schema is a mapping from positions in the environment to velocity vectors. In other words, it s a vector field over space. Conceptually, the agent just looks up the appropriate velocity vector for its location and sends it to the motors. By arranging for all of the vectors to converge at the agent s goal, you can easily make the agent go to any desired position. In reality, motor schemas are more complicated than this because of two factors. First of all, the agent doesn t necessarily know what its coordinates are in the environment. So in practice, motor schemas are often implemented as mappings from sensor data to velocity, rather than from position to velocity. This also means that the velocity vector will be specified in body-centered or egocentric coordinates, rather than in environment-centered or global coordinates. For example, common obstacle avoidance strategy is to have the velocity vectors point away from the obstacle with magnitude inversely proportional to distance squared. For example: (define-signal (obstacle-force obstacle-vector) (- (/ obstacle-vector (cube (magnitude obstacle-vector))))) (Note that we haven t bothered to write this as a behavior in our formal sense there s no activation level; Don t worry about this for the moment). Of course it s rare that there s a specific obstacle that we know the vector of that we want to avoid. A more common case is when we have an array of depth readings from a ring of sonars pointed in different directions. Then we can generate a vector for each sonar reading and then try to avoid all of them by summing their vectors: ;;; Total number of sonars in the sonar ring (define-signal sonar-count 16) ;;; The direction (in radians) in which the specified sonar faces. (define-signal (sonar-direction sonar-number) (/ (* 2 pi sonar-number) sonar-count)) ;;; The unit vector in a given direction (expressed in radians) (define-signal (unit-vector direction) (xy-vector (cos direction) (sin direction))) ;;; A vector of unit vectors pointing in the directions of ;;; each sonar. (define-signal sonar-unit-vectors (unit-vector ;; The directions of each sonar (sonar-direction ;; This just gives us a vector with the elements ;; sonar-count-1. (index-generator sonar-count))))

7 ;;; A vector of force-vectors for the objects sensed by ;;; each sonar. We assume that the distance readings for the ;;; sonars are in the signal sonar-readings, which is a vector with ;;; one element per sonar (define-signal sonar-forces (/ sonar-unit-vectors (square sonar-readings))) ;;; The final motor vector for avoiding everything (define-signal total-force (vector-reduce + 0 sonar-forces)) This code uses a feature of GRL feature we haven t seen before: vectors. We ve seen xy-vectors and rt-vectors before, but they were implemented as groups with components named x and y, and rotation and translation, respectively. GRL also allows you to use real array-type vectors and to access them using the Scheme primitives vector-ref and vector-set!. Like, groups, primitive procedures automatically map over elements of a vector, so when you add or multiply two vectors, you get a vector back. The vector-reduce procedure is just like the normal reduce procedure it takes a procedure, an initial value, and a vector, and applies the procedure, pairwise, to all elements of the vector, starting from the initial value. In other words, (vector-reduce + 0 v) returns the sum of the elements in v. Between automatic mapping and higher-order functions like vector-reduce, it s very rare to actually have to use the low level procedures vector-ref and vector-set!. Having to compute vectors from sensor data was the first complication in implementing motor schemas. The second complication is that most robot bases can t directly execute x,y velocity vectors, since they can only go forward and backward, and turn in place. Since we re assuming the xy-vectors are in an egocentric (robot-body-centered) coordinate system, that means the robot can only directly execute the xyvector if it happens to be pointing directly forward (or backward). So we need some kind of a wrapper to adapt the xy-vector policy into an rt-vector policy. The simplest, and most common, approach for this is to rotate until the vector is pointing forward, then drive: (define-signal (follow-xy-vector xy) (let ((rotation-error (angle xy))) (rt-vector (* rotate-gain rotation-error) (if (< (abs rotation-error) rotation-tolerance) translate-speed 0)))) where the free variables rotate-gain, rotation-tolerance, and translate-speed are turned for good performance. The function angle returns the angle (in radians) in which the xyvector is pointing relative to the X-axis (which we are taking to be the direction in which the robot is pointing). It can be computed using the familiar 2-argument form of arc tangent: (define-signal (angle xy) (atan (y-of xy) (x-of xy))) Many variants on this policy are possible. For example, the translational and/or rotational velocities could be made to vary with the magnitude of xy (the policy above ignores the magnitude completely). Or the translational velocity could scale smoothly as the orientation shifts toward 0. Another policy that people have obtained good results with is to drive the rotate velocity with the sine of the angle of xy and to drive the translate velocity with its cosine. Since the sine and cosine are the components of the unit vector in xy s direction, we can simply define this as:

8 (define-signal (follow-xy-vector xy) (let ((unit (/ xy (magnitude xy)))) (rt-vector (y-of xy) (x-of xy)))) Obviously, either version of follow-xy-vector would need to be tuned with gains, saturations, dead zones, etc., to suit the needs of the particular robot base being used. Now we can put these together to produce a system that moves into the center of an open space: (define-signal freespace-taxis (base-controller (follow-xy-vector avoid-obstacles)))) or we could write it as a behavior: (define-signal freespace-taxis (behavior want-to-avoid? (follow-xy-vector avoid-obstacles)))) where want-to-avoid? is a placeholder for whatever activation condition you want to use. Potential fields Motor schemas are vector fields that map from positions (or sensor readings) to vectors that point toward better positions. An alternative is to define a field that maps from position to desirability itself. This field is called a potential field after potentials in physics. Low values of potential are typically taken to mean high desirability. The advantage of constructing a potential field is that we can then construct a schema simply by taking the gradient of the field. (Actually, the attentive reader will realize that the motor schema should be minus the gradient. Since gradient vector point toward bigger potentials). All gradient fields are usable as motor schemas (at least in principle), however, not all motor schemas are gradient fields. That is, not all motor schemas are the gradient of some potential. In fact, it is rare for mobile robots to use real potential fields, since most of the motor schemas that are easy to compute from sensor data don t happen to correspond to the gradient of a real potential. In spite of this, motor schemas (and reactive control systems in general) are often referred to informally as potential field methods because they have most of the same advantages, disadvantages, and structure. They are also occasionally referred to as gradient-descent methods because true potential field systems follow the gradient toward lower potentials. Local minima The equilibrium points of a gradient descent system (the points in space where the robot stops, i.e. where the motor vector is zero) are often called local minima because, in a true gradient field, zeros correspond either to local maxima or local minima in the potential function. One of the big advantages of motor schemas and potential fields is that you can combine them just by adding them. If you have one motor schema for approaching a goal, and another for avoiding obstacles, then on a good day, the sum of the two will approach the goal while avoiding the obstacles. Unfortunately, there tend to be unfortunate cases where the two fields cancel each other out. These lead to unwanted local minima, i.e. equilibrium points. This is enough of a problem that when people talk about local minima, they almost always mean unwanted local minima.

9 It s usually impossible to get rid of unwanted local minima entirely. However, there are a number of standard approaches that have been used to help cope with the problem. Most of these involve running another behavior in parallel with the behavior that gets caught in the local minima: Noise Some equilibrium points are stable, meaning that if the robot moves a little bit away from them, the control system moves it right back to the equilibrium point. Other minima, however, are marginally stable or metastable meaning that if the robot moves away from them a little bit, then the control system will naturally move it away from the equilibrium point. If you throw a rock into a valley, it will roll to the bottom, at stay in a stable equilibrium. If you balance it on top of a stick, then it s only in a metastable equilibrium, and probably not for very long. Metastable equilibria can be avoided by adding noise (small random numbers) to the output of the system. If the system ever gets caught in a meta-stable equilibrium, the noise will eventually push it out. Path planning Many researchers have used local minima as an argument for building control systems that compute paths for the robot rather than velocities. Computing the path is called path planning. Once the path is computed, it is executed by a control loop of some kind. Planning has many advantages, but it is expensive. It may also require more information than the robot s sensors can realistically provide. It is also more complicated in dynamic worlds where the obstacles you re trying to avoid are moving. Unwedging A common, simple technique is just to build a separate behavior that takes control whenever the robot is motionless for too long (when it is wedged ). Such an unwedger then moves the robot to a different position or orientation, in hopes that the original behavior will be able to able to achieve its goal. Avoid-recent behavior A very nice technique, due to Tucker Balch, is to keep a simple memory of the last few locations the been and to generate a repulsive field from them. When this repulsive field is added to another field, it will tend to push the robot out of local minima when it gets stuck in them. Exercises 1. Suppose your robot is equipped with a front-mounted gripper that can open and close to grasp objects that are directly in front of the robot. Propose a set of behaviors for grasping and collecting objects. 2. Modify the frog feeding behaviors to handle the case where the frog s tongue has limited range.

Northwestern University -Based Robotics Conflict Resolution

Northwestern University -Based Robotics Conflict Resolution Northwestern University -Based Robotics Conflict Resolution Conflict resolution In the previous chapter, we discussed how to combine control policies using guarded parallelism. The combination of a control

More information

CS 395 Fall 2000 Behavior-Based Robotics Pracitce Quiz 1

CS 395 Fall 2000 Behavior-Based Robotics Pracitce Quiz 1 CS 395 Fall 2000 Behavior-Based Robotics Pracitce Quiz 1 This is longer than a real quiz would be. Question 1 (30 points) You have a robot equipped with a heat-sensing camera that can track people. You

More information

Basics of Computational Geometry

Basics of Computational Geometry Basics of Computational Geometry Nadeem Mohsin October 12, 2013 1 Contents This handout covers the basic concepts of computational geometry. Rather than exhaustively covering all the algorithms, it deals

More information

6.001 Notes: Section 6.1

6.001 Notes: Section 6.1 6.001 Notes: Section 6.1 Slide 6.1.1 When we first starting talking about Scheme expressions, you may recall we said that (almost) every Scheme expression had three components, a syntax (legal ways of

More information

Table of Laplace Transforms

Table of Laplace Transforms Table of Laplace Transforms 1 1 2 3 4, p > -1 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Heaviside Function 27 28. Dirac Delta Function 29 30. 31 32. 1 33 34. 35 36. 37 Laplace Transforms

More information

Spectroscopic Analysis: Peak Detector

Spectroscopic Analysis: Peak Detector Electronics and Instrumentation Laboratory Sacramento State Physics Department Spectroscopic Analysis: Peak Detector Purpose: The purpose of this experiment is a common sort of experiment in spectroscopy.

More information

Getting Started Guide

Getting Started Guide Getting Started Guide 1860 38th St. Boulder, CO 80301 www.modrobotics.com 1. Make Your First Robot The Dimbot Uses a clear Flashlight Action block, black Distance Sense block, and a blueish-gray Battery

More information

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read) 1 For the remainder of the class today, I want to introduce you to a topic we will spend one or two more classes discussing and that is source code control or version control. What is version control?

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

1 Lab + Hwk 5: Particle Swarm Optimization

1 Lab + Hwk 5: Particle Swarm Optimization 1 Lab + Hwk 5: Particle Swarm Optimization This laboratory requires the following equipment: C programming tools (gcc, make), already installed in GR B001 Webots simulation software Webots User Guide Webots

More information

(Refer Slide Time: 1:40)

(Refer Slide Time: 1:40) Computer Architecture Prof. Anshul Kumar Department of Computer Science and Engineering, Indian Institute of Technology, Delhi Lecture - 3 Instruction Set Architecture - 1 Today I will start discussion

More information

(Refer Slide Time 6:48)

(Refer Slide Time 6:48) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 8 Karnaugh Map Minimization using Maxterms We have been taking about

More information

Animator Friendly Rigging Part 1

Animator Friendly Rigging Part 1 Animator Friendly Rigging Part 1 Creating animation rigs which solve problems, are fun to use, and don t cause nervous breakdowns. - http://jasonschleifer.com/ - 1- CONTENTS I. INTRODUCTION... 4 What is

More information

Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Week 02 Module 06 Lecture - 14 Merge Sort: Analysis

Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Week 02 Module 06 Lecture - 14 Merge Sort: Analysis Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute Week 02 Module 06 Lecture - 14 Merge Sort: Analysis So, we have seen how to use a divide and conquer strategy, we

More information

Robotic Behaviors. Potential Field Methods

Robotic Behaviors. Potential Field Methods Robotic Behaviors Potential field techniques - trajectory generation - closed feedback-loop control Design of variety of behaviors - motivated by potential field based approach steering behaviors Closed

More information

Artificial Intelligence Prof. Deepak Khemani Department of Computer Science and Engineering Indian Institute of Technology, Madras

Artificial Intelligence Prof. Deepak Khemani Department of Computer Science and Engineering Indian Institute of Technology, Madras Artificial Intelligence Prof. Deepak Khemani Department of Computer Science and Engineering Indian Institute of Technology, Madras (Refer Slide Time: 00:17) Lecture No - 10 Hill Climbing So, we were looking

More information

1 GSW Bridging and Switching

1 GSW Bridging and Switching 1 Sandwiched between the physical and media access layers of local area networking (such as Ethernet) and the routeing of the Internet layer of the IP protocol, lies the thorny subject of bridges. Bridges

More information

Complex behavior emergent from simpler ones

Complex behavior emergent from simpler ones Reactive Paradigm: Basics Based on ethology Vertical decomposition, as opposed to horizontal decomposition of hierarchical model Primitive behaviors at bottom Higher behaviors at top Each layer has independent

More information

Shadows in the graphics pipeline

Shadows in the graphics pipeline Shadows in the graphics pipeline Steve Marschner Cornell University CS 569 Spring 2008, 19 February There are a number of visual cues that help let the viewer know about the 3D relationships between objects

More information

1 Lab 5: Particle Swarm Optimization

1 Lab 5: Particle Swarm Optimization 1 Lab 5: Particle Swarm Optimization This laboratory requires the following: (The development tools are installed in GR B0 01 already): C development tools (gcc, make, etc.) Webots simulation software

More information

CS 378: Computer Game Technology

CS 378: Computer Game Technology CS 378: Computer Game Technology Dynamic Path Planning, Flocking Spring 2012 University of Texas at Austin CS 378 Game Technology Don Fussell Dynamic Path Planning! What happens when the environment changes

More information

Here are some of the more basic curves that we ll need to know how to do as well as limits on the parameter if they are required.

Here are some of the more basic curves that we ll need to know how to do as well as limits on the parameter if they are required. 1 of 10 23/07/2016 05:15 Paul's Online Math Notes Calculus III (Notes) / Line Integrals / Line Integrals - Part I Problems] [Notes] [Practice Problems] [Assignment Calculus III - Notes Line Integrals Part

More information

Intro. Scheme Basics. scm> 5 5. scm>

Intro. Scheme Basics. scm> 5 5. scm> Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if

More information

3 Nonlocal Exit. Quiz Program Revisited

3 Nonlocal Exit. Quiz Program Revisited 3 Nonlocal Exit This chapter is about the commands catch and throw. These commands work together as a kind of super-stop command, which you can use to stop several levels of procedure invocation at once.

More information

3 Continuous Integration 3. Automated system finding bugs is better than people

3 Continuous Integration 3. Automated system finding bugs is better than people This presentation is based upon a 3 day course I took from Jared Richardson. The examples and most of the tools presented are Java-centric, but there are equivalent tools for other languages or you can

More information

Notes on Non-Chronologic Backtracking, Implication Graphs, and Learning

Notes on Non-Chronologic Backtracking, Implication Graphs, and Learning Notes on Non-Chronologic Backtracking, Implication Graphs, and Learning Alan J. Hu for CpSc 5 Univ. of British Columbia 00 February 9 These are supplementary notes on these aspects of a modern DPLL-style

More information

Week - 01 Lecture - 03 Euclid's Algorithm for gcd. Let us continue with our running example of gcd to explore more issues involved with program.

Week - 01 Lecture - 03 Euclid's Algorithm for gcd. Let us continue with our running example of gcd to explore more issues involved with program. Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 03 Euclid's Algorithm

More information

Linear algebra deals with matrixes: two-dimensional arrays of values. Here s a matrix: [ x + 5y + 7z 9x + 3y + 11z

Linear algebra deals with matrixes: two-dimensional arrays of values. Here s a matrix: [ x + 5y + 7z 9x + 3y + 11z Basic Linear Algebra Linear algebra deals with matrixes: two-dimensional arrays of values. Here s a matrix: [ 1 5 ] 7 9 3 11 Often matrices are used to describe in a simpler way a series of linear equations.

More information

Chapter 2.6: Testing and running a solution

Chapter 2.6: Testing and running a solution Chapter 2.6: Testing and running a solution 2.6 (a) Types of Programming Errors When programs are being written it is not surprising that mistakes are made, after all they are very complicated. There are

More information

Image Registration Lecture 4: First Examples

Image Registration Lecture 4: First Examples Image Registration Lecture 4: First Examples Prof. Charlene Tsai Outline Example Intensity-based registration SSD error function Image mapping Function minimization: Gradient descent Derivative calculation

More information

Let s start with occluding contours (or interior and exterior silhouettes), and look at image-space algorithms. A very simple technique is to render

Let s start with occluding contours (or interior and exterior silhouettes), and look at image-space algorithms. A very simple technique is to render 1 There are two major classes of algorithms for extracting most kinds of lines from 3D meshes. First, there are image-space algorithms that render something (such as a depth map or cosine-shaded model),

More information

Polar Coordinates. 2, π and ( )

Polar Coordinates. 2, π and ( ) Polar Coordinates Up to this point we ve dealt exclusively with the Cartesian (or Rectangular, or x-y) coordinate system. However, as we will see, this is not always the easiest coordinate system to work

More information

(Refer Slide Time 3:31)

(Refer Slide Time 3:31) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 5 Logic Simplification In the last lecture we talked about logic functions

More information

CISC-124. Casting. // this would fail because we can t assign a double value to an int // variable

CISC-124. Casting. // this would fail because we can t assign a double value to an int // variable CISC-124 20180122 Today we looked at casting, conditionals and loops. Casting Casting is a simple method for converting one type of number to another, when the original type cannot be simply assigned to

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

Exam in DD2426 Robotics and Autonomous Systems

Exam in DD2426 Robotics and Autonomous Systems Exam in DD2426 Robotics and Autonomous Systems Lecturer: Patric Jensfelt KTH, March 16, 2010, 9-12 No aids are allowed on the exam, i.e. no notes, no books, no calculators, etc. You need a minimum of 20

More information

CMSC 341 Lecture 16/17 Hashing, Parts 1 & 2

CMSC 341 Lecture 16/17 Hashing, Parts 1 & 2 CMSC 341 Lecture 16/17 Hashing, Parts 1 & 2 Prof. John Park Based on slides from previous iterations of this course Today s Topics Overview Uses and motivations of hash tables Major concerns with hash

More information

Limits. f(x) and lim. g(x) g(x)

Limits. f(x) and lim. g(x) g(x) Limits Limit Laws Suppose c is constant, n is a positive integer, and f() and g() both eist. Then,. [f() + g()] = f() + g() 2. [f() g()] = f() g() [ ] 3. [c f()] = c f() [ ] [ ] 4. [f() g()] = f() g()

More information

An interesting related problem is Buffon s Needle which was first proposed in the mid-1700 s.

An interesting related problem is Buffon s Needle which was first proposed in the mid-1700 s. Using Monte Carlo to Estimate π using Buffon s Needle Problem An interesting related problem is Buffon s Needle which was first proposed in the mid-1700 s. Here s the problem (in a simplified form). Suppose

More information

IntroductionToRobotics-Lecture02

IntroductionToRobotics-Lecture02 IntroductionToRobotics-Lecture02 Instructor (Oussama Khatib):Okay. Let's get started. So as always, the lecture starts with a video segment, and today's video segment comes from 1991, and from the group

More information

Simple Graph. General Graph

Simple Graph. General Graph Graph Theory A graph is a collection of points (also called vertices) and lines (also called edges), with each edge ending at a vertex In general, it is allowed for more than one edge to have the same

More information

If Statements, For Loops, Functions

If Statements, For Loops, Functions Fundamentals of Programming If Statements, For Loops, Functions Table of Contents Hello World Types of Variables Integers and Floats String Boolean Relational Operators Lists Conditionals If and Else Statements

More information

CALCULUS II. Parametric Equations and Polar Coordinates. Paul Dawkins

CALCULUS II. Parametric Equations and Polar Coordinates. Paul Dawkins CALCULUS II Parametric Equations and Polar Coordinates Paul Dawkins Table of Contents Preface... ii Parametric Equations and Polar Coordinates... 3 Introduction... 3 Parametric Equations and Curves...

More information

(Refer Slide Time 5:19)

(Refer Slide Time 5:19) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology, Madras Lecture - 7 Logic Minimization using Karnaugh Maps In the last lecture we introduced

More information

Functions and Graphs. The METRIC Project, Imperial College. Imperial College of Science Technology and Medicine, 1996.

Functions and Graphs. The METRIC Project, Imperial College. Imperial College of Science Technology and Medicine, 1996. Functions and Graphs The METRIC Project, Imperial College. Imperial College of Science Technology and Medicine, 1996. Launch Mathematica. Type

More information

12 - More Steering. from Milligan, "Artificial Intelligence for Games", Morgan Kaufman, 2006

12 - More Steering. from Milligan, Artificial Intelligence for Games, Morgan Kaufman, 2006 12 - More Steering from Milligan, "Artificial Intelligence for Games", Morgan Kaufman, 2006 Separation commonly used in crowds, when all characters moving in roughly the same direction (repulsion steering)

More information

Laboratory 1: Eclipse and Karel the Robot

Laboratory 1: Eclipse and Karel the Robot Math 121: Introduction to Computing Handout #2 Laboratory 1: Eclipse and Karel the Robot Your first laboratory task is to use the Eclipse IDE framework ( integrated development environment, and the d also

More information

(Refer Slide Time: 1:43)

(Refer Slide Time: 1:43) (Refer Slide Time: 1:43) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology, Madras Lecture - 27 Pattern Detector So, we talked about Moore

More information

Earthwork 3D for Dummies Doing a digitized dirt takeoff calculation the swift and easy way

Earthwork 3D for Dummies Doing a digitized dirt takeoff calculation the swift and easy way Introduction Earthwork 3D for Dummies Doing a digitized dirt takeoff calculation the swift and easy way Getting to know you Earthwork has inherited its layout from its ancestors, Sitework 98 and Edge.

More information

(Refer Slide Time: 1:27)

(Refer Slide Time: 1:27) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 1 Introduction to Data Structures and Algorithms Welcome to data

More information

Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller

Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller Table of Contents Introduction!... 1 Part 1: Entering Data!... 2 1.a: Typing!... 2 1.b: Editing

More information

Pong in Unity a basic Intro

Pong in Unity a basic Intro This tutorial recreates the classic game Pong, for those unfamiliar with the game, shame on you what have you been doing, living under a rock?! Go google it. Go on. For those that now know the game, this

More information

The compiler is spewing error messages.

The compiler is spewing error messages. Appendix B Debugging There are a few different kinds of errors that can occur in a program, and it is useful to distinguish between them in order to track them down more quickly. Compile-time errors are

More information

Robotics Project. Final Report. Computer Science University of Minnesota. December 17, 2007

Robotics Project. Final Report. Computer Science University of Minnesota. December 17, 2007 Robotics Project Final Report Computer Science 5551 University of Minnesota December 17, 2007 Peter Bailey, Matt Beckler, Thomas Bishop, and John Saxton Abstract: A solution of the parallel-parking problem

More information

(Refer Slide Time: 00:02:00)

(Refer Slide Time: 00:02:00) Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 18 Polyfill - Scan Conversion of a Polygon Today we will discuss the concepts

More information

Chapter 1: Introduction to the Microsoft Excel Spreadsheet

Chapter 1: Introduction to the Microsoft Excel Spreadsheet Chapter 1: Introduction to the Microsoft Excel Spreadsheet Objectives This chapter introduces you to the Microsoft Excel spreadsheet. You should gain an understanding of the following topics: The range

More information

Overview. Animation is a big topic We will concentrate on character animation as is used in many games today. humans, animals, monsters, robots, etc.

Overview. Animation is a big topic We will concentrate on character animation as is used in many games today. humans, animals, monsters, robots, etc. ANIMATION Overview Animation is a big topic We will concentrate on character animation as is used in many games today humans, animals, monsters, robots, etc. Character Representation A character is represented

More information

Line tracking sensors and algorithms

Line tracking sensors and algorithms Line tracking sensors and algorithms Posted on February 28, 2008, by Ibrahim KAMAL, in Robotics, tagged Line tracking is a very important notion in the world of robotics as it give to the robot a precise,

More information

View Frustum Culling with Octree

View Frustum Culling with Octree View Frustum Culling with Octree Raka Mahesa 13508074 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia if18074@itb.ac.id

More information

CS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise

CS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise CS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise If you re not already crazy about Scheme (and I m sure you are), then here s something to get

More information

Inverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2018

Inverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2018 Inverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2018 Welman, 1993 Inverse Kinematics and Geometric Constraints for Articulated Figure Manipulation, Chris

More information

Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122

Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122 Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122 I. Logic 101 In logic, a statement or proposition is a sentence that can either be true or false. A predicate is a sentence in

More information

LeakDAS Version 4 The Complete Guide

LeakDAS Version 4 The Complete Guide LeakDAS Version 4 The Complete Guide SECTION 4 LEAKDAS MOBILE Second Edition - 2014 Copyright InspectionLogic 2 Table of Contents CONNECTING LEAKDAS MOBILE TO AN ANALYZER VIA BLUETOOTH... 3 Bluetooth Devices...

More information

Grade 6 Math Circles November 6 & Relations, Functions, and Morphisms

Grade 6 Math Circles November 6 & Relations, Functions, and Morphisms Faculty of Mathematics Waterloo, Ontario N2L 3G1 Centre for Education in Mathematics and Computing Relations Let s talk about relations! Grade 6 Math Circles November 6 & 7 2018 Relations, Functions, and

More information

1 Lab + Hwk 5: Particle Swarm Optimization

1 Lab + Hwk 5: Particle Swarm Optimization 1 Lab + Hwk 5: Particle Swarm Optimization This laboratory requires the following equipment: C programming tools (gcc, make). Webots simulation software. Webots User Guide Webots Reference Manual. The

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

Have the students look at the editor on their computers. Refer to overhead projector as necessary.

Have the students look at the editor on their computers. Refer to overhead projector as necessary. Intro to Programming (Time 15 minutes) Open the programming tool of your choice: If you ve installed, DrRacket, double-click the application to launch it. If you are using the online-tool, click here to

More information

This lesson introduces Blender, covering the tools and concepts necessary to set up a minimal scene in virtual 3D space.

This lesson introduces Blender, covering the tools and concepts necessary to set up a minimal scene in virtual 3D space. 3D Modeling with Blender: 01. Blender Basics Overview This lesson introduces Blender, covering the tools and concepts necessary to set up a minimal scene in virtual 3D space. Concepts Covered Blender s

More information

(Refer Slide Time: 02.06)

(Refer Slide Time: 02.06) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 27 Depth First Search (DFS) Today we are going to be talking

More information

Lagrange Multipliers and Problem Formulation

Lagrange Multipliers and Problem Formulation Lagrange Multipliers and Problem Formulation Steven J. Miller Department of Mathematics and Statistics Williams College Williamstown, MA 01267 Abstract The method of Lagrange Multipliers (and its generalizations)

More information

6.001 Notes: Section 17.5

6.001 Notes: Section 17.5 6.001 Notes: Section 17.5 Slide 17.5.1 Now, let's look at one example in which changing the evaluation model allows us to explore a very different kind of computational problem. Our goal is to show how

More information

9 R1 Get another piece of paper. We re going to have fun keeping track of (inaudible). Um How much time do you have? Are you getting tired?

9 R1 Get another piece of paper. We re going to have fun keeping track of (inaudible). Um How much time do you have? Are you getting tired? Page: 1 of 14 1 R1 And this is tell me what this is? 2 Stephanie x times y plus x times y or hm? 3 R1 What are you thinking? 4 Stephanie I don t know. 5 R1 Tell me what you re thinking. 6 Stephanie Well.

More information

Robots are built to accomplish complex and difficult tasks that require highly non-linear motions.

Robots are built to accomplish complex and difficult tasks that require highly non-linear motions. Path and Trajectory specification Robots are built to accomplish complex and difficult tasks that require highly non-linear motions. Specifying the desired motion to achieve a specified goal is often a

More information

MITOCW watch?v=zm5mw5nkzjg

MITOCW watch?v=zm5mw5nkzjg MITOCW watch?v=zm5mw5nkzjg The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

A Simple Introduction to Omni Roller Robots (3rd April 2015)

A Simple Introduction to Omni Roller Robots (3rd April 2015) A Simple Introduction to Omni Roller Robots (3rd April 2015) Omni wheels have rollers all the way round the tread so they can slip laterally as well as drive in the direction of a regular wheel. The three-wheeled

More information

Math 2250 Lab #3: Landing on Target

Math 2250 Lab #3: Landing on Target Math 2250 Lab #3: Landing on Target 1. INTRODUCTION TO THE LAB PROGRAM. Here are some general notes and ideas which will help you with the lab. The purpose of the lab program is to expose you to problems

More information

n! = 1 * 2 * 3 * 4 * * (n-1) * n

n! = 1 * 2 * 3 * 4 * * (n-1) * n The Beauty and Joy of Computing 1 Lab Exercise 9: Problem self-similarity and recursion Objectives By completing this lab exercise, you should learn to Recognize simple self-similar problems which are

More information

CS103 Handout 29 Winter 2018 February 9, 2018 Inductive Proofwriting Checklist

CS103 Handout 29 Winter 2018 February 9, 2018 Inductive Proofwriting Checklist CS103 Handout 29 Winter 2018 February 9, 2018 Inductive Proofwriting Checklist In Handout 28, the Guide to Inductive Proofs, we outlined a number of specifc issues and concepts to be mindful about when

More information

PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between

PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between MITOCW Lecture 10A [MUSIC PLAYING] PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between all these high-level languages like Lisp and the query

More information

2SKILL. Variables Lesson 6. Remembering numbers (and other stuff)...

2SKILL. Variables Lesson 6. Remembering numbers (and other stuff)... Remembering numbers (and other stuff)... Let s talk about one of the most important things in any programming language. It s called a variable. Don t let the name scare you. What it does is really simple.

More information

Constraint Satisfaction Problems: A Deeper Look

Constraint Satisfaction Problems: A Deeper Look Constraint Satisfaction Problems: A Deeper Look The last problem set covered the topic of constraint satisfaction problems. CSP search and solution algorithms are directly applicable to a number of AI

More information

6.001 Notes: Section 7.1

6.001 Notes: Section 7.1 6.001 Notes: Section 7.1 Slide 7.1.1 In the past few lectures, we have seen a series of tools for helping us create procedures to compute a variety of computational processes. Before we move on to more

More information

The Dynamic Typing Interlude

The Dynamic Typing Interlude CHAPTER 6 The Dynamic Typing Interlude In the prior chapter, we began exploring Python s core object types in depth with a look at Python numbers. We ll resume our object type tour in the next chapter,

More information

Direct Variations DIRECT AND INVERSE VARIATIONS 19. Name

Direct Variations DIRECT AND INVERSE VARIATIONS 19. Name DIRECT AND INVERSE VARIATIONS 19 Direct Variations Name Of the many relationships that two variables can have, one category is called a direct variation. Use the description and example of direct variation

More information

Fourier Transforms and Signal Analysis

Fourier Transforms and Signal Analysis Fourier Transforms and Signal Analysis The Fourier transform analysis is one of the most useful ever developed in Physical and Analytical chemistry. Everyone knows that FTIR is based on it, but did one

More information

SPARTAN ROBOTICS FRC 971

SPARTAN ROBOTICS FRC 971 SPARTAN ROBOTICS FRC 971 Controls Documentation 2015 Design Goals Create a reliable and effective system for controlling and debugging robot code that provides greater flexibility and higher performance

More information

Trombone players produce different pitches partly by varying the length of a tube.

Trombone players produce different pitches partly by varying the length of a tube. Trombone players produce different pitches partly by varying the length of a tube. 7 Variables A variable is a connection between a name and a value.* That sounds simple enough, but some complexities arise

More information

UV Mapping to avoid texture flaws and enable proper shading

UV Mapping to avoid texture flaws and enable proper shading UV Mapping to avoid texture flaws and enable proper shading Foreword: Throughout this tutorial I am going to be using Maya s built in UV Mapping utility, which I am going to base my projections on individual

More information

Drawing a Circle. 78 Chapter 5. geometry.pyde. def setup(): size(600,600) def draw(): ellipse(200,100,20,20) Listing 5-1: Drawing a circle

Drawing a Circle. 78 Chapter 5. geometry.pyde. def setup(): size(600,600) def draw(): ellipse(200,100,20,20) Listing 5-1: Drawing a circle 5 Transforming Shapes with Geometry In the teahouse one day Nasrudin announced he was selling his house. When the other patrons asked him to describe it, he brought out a brick. It s just a collection

More information

Lecture 15: Segmentation (Edge Based, Hough Transform)

Lecture 15: Segmentation (Edge Based, Hough Transform) Lecture 15: Segmentation (Edge Based, Hough Transform) c Bryan S. Morse, Brigham Young University, 1998 000 Last modified on February 3, 000 at :00 PM Contents 15.1 Introduction..............................................

More information

6.001 Notes: Section 4.1

6.001 Notes: Section 4.1 6.001 Notes: Section 4.1 Slide 4.1.1 In this lecture, we are going to take a careful look at the kinds of procedures we can build. We will first go back to look very carefully at the substitution model,

More information

Synthesis by Example. Connecting Motion Planning and Example based Movement. Michael Gleicher

Synthesis by Example. Connecting Motion Planning and Example based Movement. Michael Gleicher Synthesis by Example Connecting Motion Planning and Example based Movement Michael Gleicher Dept of Computer Sciences University of Wisconsin Madison Case Study 1 Part I. Michael Gleicher 1 What is Motion

More information

Chapter01.fm Page 1 Monday, August 23, :52 PM. Part I of Change. The Mechanics. of Change

Chapter01.fm Page 1 Monday, August 23, :52 PM. Part I of Change. The Mechanics. of Change Chapter01.fm Page 1 Monday, August 23, 2004 1:52 PM Part I The Mechanics of Change The Mechanics of Change Chapter01.fm Page 2 Monday, August 23, 2004 1:52 PM Chapter01.fm Page 3 Monday, August 23, 2004

More information

Here are a couple of warnings to my students who may be here to get a copy of what happened on a day that you missed.

Here are a couple of warnings to my students who may be here to get a copy of what happened on a day that you missed. Preface Here are my online notes for my Algebra course that I teach here at Lamar University, although I have to admit that it s been years since I last taught this course. At this point in my career I

More information

Excerpt from "Art of Problem Solving Volume 1: the Basics" 2014 AoPS Inc.

Excerpt from Art of Problem Solving Volume 1: the Basics 2014 AoPS Inc. Chapter 5 Using the Integers In spite of their being a rather restricted class of numbers, the integers have a lot of interesting properties and uses. Math which involves the properties of integers is

More information

Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia

Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia The goal for this tutorial is to make sure that you understand a few key concepts related to programming, and that you know the basics

More information

PROBLEM SOLVING 11. July 24, 2012

PROBLEM SOLVING 11. July 24, 2012 PROBLEM SOLVING 11 COMPUTER SCIENCE 61A July 24, 2012 Today s section will be a kind of Meta-Section, we are going to walk through some medium to hard-ish problems in Scheme, and we will discuss some methods

More information

Week - 04 Lecture - 01 Merge Sort. (Refer Slide Time: 00:02)

Week - 04 Lecture - 01 Merge Sort. (Refer Slide Time: 00:02) Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 04 Lecture - 01 Merge Sort (Refer

More information

Major Assignment: Pacman Game

Major Assignment: Pacman Game Major Assignment: Pacman Game 300580 Programming Fundamentals Week 10 Assignment The major assignment involves producing a Pacman style game with Clara using the Greenfoot files that are given to you.

More information

CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch

CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch Purpose: We will take a look at programming this week using a language called Scratch. Scratch is a programming language that was developed

More information