Atnaujinkite slapukų nuostatas

Building Robots with LEGO Mindstorms NXT [Minkštas viršelis]

4.06/5 (34 ratings by Goodreads)
(Author of bestselling Building Robots with LEGO Mindstorms, Italy), Edited by (Invited Member of the MINDSTORMS Developer Program and Mindstorms Community Partners (MCP) gr), Contributions by , Foreword by , Contributions by , Contributions by , Contributions by , Contributions by , Contributions by , (Author of bestselling Building Robots with LEGO Mindstorms, Italy)
  • Formatas: Paperback / softback, 480 pages, aukštis x plotis: 235x191 mm, weight: 900 g
  • Išleidimo metai: 25-Jul-2007
  • Leidėjas: Syngress Media,U.S.
  • ISBN-10: 1597491527
  • ISBN-13: 9781597491525
Kitos knygos pagal šią temą:
  • Formatas: Paperback / softback, 480 pages, aukštis x plotis: 235x191 mm, weight: 900 g
  • Išleidimo metai: 25-Jul-2007
  • Leidėjas: Syngress Media,U.S.
  • ISBN-10: 1597491527
  • ISBN-13: 9781597491525
Kitos knygos pagal šią temą:
The Ultimate Tool for MINDSTORMS® Maniacs The new MINDSTORMS kit has been updated to include a programming brick, USB cable, RJ11-like cables, motors, and sensors. This book updates the robotics information to be compatible with the new set and to show how sound, sight, touch, and distance issues are now dealt with.

The LEGO MINDSTORMS NXT and its predecessor, the LEGO MINDSTORMS Robotics Invention System (RIS), have been called "the most creative play system ever developed." This book unleashes the full power and potential of the tools, sensors, and components that make up LEGO MINDSTORMS NXT. It also provides a unique insight on newer studless building techniques as well as interfacing with the traditional studded beams. Some of the world's leading LEGO MINDSTORMS inventors share their knowledge and development secrets. You will discover an incredible range of ideas to inspire your next invention. This is the ultimate insider's look at LEGO MINDSTORMS NXT system and is the perfect book whether you build world-class competitive robots or just like to mess around for the fun of it.

Featuring an introduction by astronaut Dan Barry and written by Dave Astolfo, Invited Member of the MINDSTORMS Developer Program and MINDSTORMS Community Partners (MCP) groups, and Mario and Guilio Ferrari, authors of the bestselling Building Robots with LEGO Mindstorms, this book covers:

Understanding LEGO Geometry Playing with Gears Controlling Motors Reading Sensors What's New with the NXT? Building Strategies Programming the NXT Playing Sounds and Music Becoming Mobile Getting Pumped: Pneumatics Finding and Grabbing Objects Doing the Math Knowing Where You Are Classic Projects Building Robots That Walk Robotic Animals Solving a Maze Drawing and Writing Racing Against Time Hand-to-Hand Combat Searching for Precision

Daugiau informacijos

The Ultimate Tool for Mindstorms(TM) Maniacs!
Foreword xxiii
Preface xxv
Understanding LEGO® Geometry
1(12)
Introduction
2(1)
Expressing Sizes and Units
2(2)
Squaring the LEGO World: Vertical Bracing
4(2)
Tilting the LEGO World: Diagonal Bracing
6(3)
Technic Liftarms: Angles Built In
9(2)
Summary
11(2)
Playing with Gears
13(28)
Introduction
14(1)
Counting Teeth
14(1)
Gearing Up and Down
15(2)
Riding That Train: The Geartrain
17(2)
Worming Your Way: The Worm Gear
19(1)
Limiting Strength with the Clutch Gear
20(3)
Placing and Fitting Gears
23(7)
Using Pulleys, Belts, and Chains
30(5)
Pulleys and Belts
31(2)
Chains
33(2)
Making a Difference: The Differential
35(3)
Summary
38(3)
Controlling Motors
41(20)
Introduction
42(1)
Pacing, Trotting, and Galloping
43(5)
Internals of NXT Servo Motor
47(1)
Mounting Motors
48(3)
Wiring Motors
51(3)
Using Power Function Motors with the NXT
52(2)
Controlling Power
54(3)
Detecting Motor Overload
55(1)
Braking the Motor
56(1)
Coupling Motors
57(2)
Summary
59(2)
Reading Sensors
61(38)
Introduction
62(1)
Digital Sensor Ports with the I2C (Inter-Integrated Circuit) Interface
62(3)
The Touch Sensor
65(6)
The Light Sensor
71(2)
Measuring Reflected Light
73(6)
Line Following
74(3)
The Ultrasonic Sensor
77(2)
Proximity Detection
79(4)
The Servo Motor Encoder (Rotation Sensor)
79(4)
Sensor Tips and Tricks
83(5)
Emulating a Rotation Sensor
84(2)
Connecting Multiple Sensors to the Same Port---Multiplexing
86(2)
Other Sensors
88(10)
The Passive Infrared Sensor
89(1)
The Pressure Sensor
90(2)
The Acceleration Sensor
92(2)
The Compass Sensor
94(1)
The NXT-to-RCX Communication Bridge
95(1)
The Color Sensor
96(2)
Summary
98(1)
What's New with the NXT?
99(14)
Introduction
100(1)
Notable Enhancements
100(1)
Studless Construction
100(1)
Electrical Connectors
100(1)
Rechargeable Battery Pack
100(1)
Flash Memory
101(1)
Multiple Types of Sensors
101(1)
The NXT File System
101(2)
File-Handling Functions
102(1)
Using File Space Efficiently
103(1)
The LCD Screen
103(2)
Games
104(1)
Digital Interfaces and Bluetooth
105(4)
Bluetooth Communication
106(1)
A Surveillance Robot Using NXT and Bluetooth
106(1)
A Bluetooth-Based Remote Controller
107(1)
Spatial Motion Controllers
108(1)
I2C for Spatial Motion Controllers
109(1)
Future Possibilities
109(2)
An NXT Robot Controlled from a Web Server
109(1)
NXT Puppet Show
110(1)
GPS and the NXT
110(1)
Summary
111(2)
Building Strategies
113(20)
Introduction
114(1)
Studless Building Techniques
114(4)
Maximizing Modularity
118(3)
Loading the Structure
121(3)
Putting It All Together: Chassis, Modularity, and Load
124(5)
Hybrid Robots: Using Studless and Studded LEGO Pieces
129(2)
Summary
131(2)
Programming the NXT
133(26)
Introduction
134(1)
What Is the NXT Programmable Brick?
134(3)
Mindstorms: A Family of Programmable Bricks
136(1)
Introduction to Programming the NXT Brick
137(4)
How Does a Program Run?
138(1)
Using NXT-G
139(2)
Using RobotC
141(1)
Using Other Programming Languages
142(3)
Using NBC/NXC
143(1)
Using pbLUA
144(1)
Using LeJOS NXJ
144(1)
Using Other Programming Tools and Environments
144(1)
Code Samples
145(12)
Code Sample: A Simple Clock
145(6)
Code Sample: Following a Line
151(6)
Running Independent Tasks
157(1)
Summary
158(1)
Playing Sounds and Music
159(10)
Introduction
160(1)
Communicating through Tones
160(1)
Playing Music
161(2)
Converting Sound and Music Files
163(4)
MIDI and MIDIBatch
163(2)
WAV2RSO
165(1)
The Sound Sensor
166(1)
Summary
167(2)
Becoming Mobile
169(24)
Introduction
170(1)
Building the Simple Differential Drive
170(10)
Keeping a Straight Path
172(1)
Using Servo Motor Encoders to Go Straight
172(1)
Using Gears to Go Straight
173(4)
Using Casters to Go Straight
177(3)
Building a Skid-Steer Drive
180(3)
Building a Steering Drive
183(4)
Building a Synchro Drive
187(4)
Other Configurations
191(1)
Summary
192(1)
Getting Pumped: Pneumatics
193(18)
Introduction
194(1)
Recalling Some Basic Science
194(1)
Pumps and Cylinders
195(5)
Controlling the Airflow
200(2)
Building Air Compressors
202(4)
Building a Pneumatic Engine
206(4)
Summary
210(1)
Finding and Grabbing Objects
211(18)
Introduction
212(1)
Operating Hands and Grabbers
212(10)
Using Pneumatics to Drive Your Grabber
218(4)
Finding Objects
222(3)
Positioning the Grabber
225(1)
Distinguishing Objects and Obstacles
225(3)
Summary
228(1)
Doing the Math
229(20)
Introduction
230(1)
Multiplying and Dividing
231(2)
Averaging Data
233(7)
Simple Averages
233(4)
Weighted Averages
237(3)
Using Interpolation
240(3)
Understanding Hysteresis
243(2)
Higher Math
245(3)
Summary
248(1)
Knowing Where You Are
249(16)
Introduction
250(1)
Choosing Internal or External Guidance
250(1)
Looking for Landmarks: Absolute Positioning
251(8)
Following the Beam
255(4)
Map Matching Using Ultrasonic Sensor
259(1)
Combining Compass Sensor to Increase Precision
260(1)
Measuring Movement: Relative Positioning
260(2)
Measuring Movement: Acceleration Sensor
262(1)
Summary
263(2)
Classic Projects
265(14)
Introduction
266(1)
Exploring Your Room
266(5)
Detecting Edges
269(1)
Variations on Obstacle Detection
270(1)
Following a Line
271(7)
Further Optimization of Line Following
277(1)
Summary
278(1)
Building Robots That Walk
279(26)
Introduction
280(1)
The Theory behind Walking
280(6)
Building Legs
286(2)
Building a Four-Legged Robot
288(3)
Building a Six-Legged Steering Robot
291(5)
Designing Bipeds
296(7)
Interlacing Legs
297(3)
COG Shifting
300(2)
Making Bipeds Turn
302(1)
Summary
303(2)
Robotic Animals
305(22)
Introduction
306(1)
Creating a Monkey
306(8)
Step 1: Center Motor Assembly
307(1)
Step 2: Shoulder Assembly
308(1)
Step 3: Shoulder/NXT Brick Bracing
309(1)
Step 4: Shoulder-to-Arms Support
310(1)
Step 5: Arm Motors
311(1)
Step 6: Monkey Fingers
312(1)
Step 7: NXT Brick Backbracing and Ultrasonic Sensor
313(1)
The Final Step: Wiring Your Monkey
314(1)
Programming Your Monkey
314(2)
Creating a Mouse
316(8)
Step 1: Mouse Frame and Motor Assembly
316(2)
Step 2: Castor Bottom
318(1)
Step 3: Tail Assembly
318(1)
Step 4: The Mouse Head Frame
319(1)
Step 5: Motorized Mouse Head Assembly
320(1)
Step 6: Mounting the Mouse Head to the Body
321(1)
Step 7: A Programming Example
322(2)
Creating Other Animals
324(1)
Summary
325(2)
Solving a Maze
327(22)
Introduction
328(1)
Finding the Way Out
328(5)
Using the Left Side-Right Side Strategy
330(2)
Applying Other Strategies
332(1)
Building a Maze Runner
333(6)
Constructing the Maze Runner
333(3)
Programming the Runner
336(3)
Creating the Maze
339(1)
Building a Maze Solver
339(9)
Constructing the Maze Solver
339(2)
Programming the Solver
341(6)
Improving the Program
347(1)
Summary
348(1)
Drawing and Writing
349(24)
Introduction
350(1)
Creating a Logo Turtle
350(11)
Building the Turtle
350(5)
Programming the Turtle
355(6)
Tape Writer
361(8)
Building the Writer
361(5)
Programming the Writer
366(3)
What to Write
369(1)
Further Suggestions
369(2)
Copying
369(1)
Emulating Handwriting
370(1)
Learning by Example
370(1)
Summary
371(2)
Racing Against Time
373(10)
Introduction
374(1)
Hosting and Participating in Contests
374(2)
Optimizing Speed
376(1)
Drag Racing
376(1)
Combining Speed with Precision
377(4)
Line Following
378(1)
Wall Following
379(1)
Other Races
380(1)
Summary
381(2)
Hand-to-Hand Combat
383(12)
Introduction
384(1)
Building a Robotic Sumo
384(4)
Setting the Rules
385(1)
Maximizing Strength and Traction
386(2)
Attack Strategies
388(3)
Finding the Enemy
388(1)
Using Speed
389(1)
Using a Transmission
390(1)
Other Sumo Tricks
391(1)
Getting Defensive
391(1)
Testing Your Sumo
392(1)
Summary
393(2)
Searching for Precision
395(10)
Introduction
396(1)
Precise Positioning
396(1)
Shooting with Precision
397(1)
Fine Motor Skills of Your Robot
398(3)
Removing the Bricks
398(1)
Freeing the Magnets
399(2)
Fire Fighting in a Maze
401(1)
Playing Soccer
402(1)
Summary
403(2)
Appendix A Resources
405(16)
Introduction
406(1)
Bibliography
406(1)
General Interest Sites
407(1)
Understanding LEGO Geometry
408(1)
Playing with Gears
408(1)
Controlling Motors
409(1)
Reading Sensors
409(2)
What's New with the NXT
411(1)
Building Strategies
412(1)
Programming the NXT
412(1)
Playing Sounds and Music
413(1)
Becoming Mobile
413(1)
Getting Pumped: Pneumatics
414(1)
Finding and Grabbing Objects
415(1)
Doing the Math
415(1)
Knowing Where You Are
416(1)
Classic Projects
417(1)
Building Robots that Walk
417(1)
Robotic Animals
417(1)
Solving a Maze
418(1)
Drawing and Writing
418(1)
Racing Against Time
419(1)
Hand-to-Hand Combat
419(1)
Searching for Precision
420(1)
Appendix B Matching Distances
421(6)
Appendix C Note Frequencies
427(2)
Appendix D Math Cheat Sheet
429(4)
Sensors
430(1)
Averages
430(1)
Interpolation
430(1)
Gears, Wheels, and Navigation
431(2)
Index 433


Mario Ferrari received his first Lego box around 1964, when he was 4. Lego was his favorite toy for many years, until he thought he was too old to play with it. In 1998, the Lego Mindstorms RIS set gave him reason to again have Lego become his main addiction. Mario believes Lego is the closest thing to the perfect toy. He is Managing Director at EDIS, a leader in finishing and packaging solutions and promotional packaging. The advent of the MINDSTORMS product line represented for him the perfect opportunity to combine his interest in IT and robotics with his passion for LEGO bricks, which started during his early childhood. Mario has been a very active member of the online MINDSTORMS community from the beginning and has pushed LEGO robotics to its limits. Mario holds a bachelor's degree in Business Administration from the University of Turin and has always nourished a strong interest for physics, mathematics, and computer science. He is fluent in many programming languages and his background includes positions as an IT manager and as a project supervisor. Mario estimates he owns over 60,000 Lego pieces. Mario works in Modena, Italy, where he lives with his wife Anna and his children Sebastiano and Camilla. Giulio Ferrari is a student in Economics at the University of Modena and Reggio Emilia, where he also studied Engineering. He is fond of computers and has developed utilities, entertainment software, and Web applications for several companies. Giulio discovered robotics in 1998, with the arrival of MINDSTORMS, and held an important place in the creation of the Italian LEGO community. He shares a love for LEGO bricks with his oldest brother Mario, and a strong curiosity for the physical and mathematical sciences. Giulio also has a collection of 1200 dice, including odd-faced dice and game dice. He studies, works, and lives in Modena, Italy. Dave Astolfo (GIS A.S.) is a Project Manager / Business Analyst with the technical arm of a North American environmental consulting company. He currently provides project management, technical consulting, database design and software architecture with a focus on Geographic Information Systems ranging from desktop mapping software, web mapping portals and mobile software applications. His specialties range from database modeling, software design / architecture. Dave is a key contributor to the business development and implementation of products and services. As such, he develops enterprise-wide technology solutions and methodologies focused on client organizations. Dave holds a bachelors degree from Trent University and is a certified Geographic Information Systems Applications Specialist holding a certificate from Sir Sandford Fleming College. In early 2006, Dave was invited by Lego to participate in the Lego Mindstorms Developer Program (MPD) to help Lego beta test the pre-release of the Lego Mindstorms NXT robotics system. After the release of the NXT, Dave was invited back to participate in the Lego Mindstorms Community Partner Program (MCP) to work with Lego in developing the product further while and providing an ear to the community. Dave has been involved with Lego all of his life, and has been working with the Mindstorms product since the initial release of the Lego Mindstorms Robotics Invention System (RIS) in 1998. Dave is well known for building a Mindstorms domino-placing robot which was published in a previous Syngress book (10 Cool Lego Ultimate Builders Lego Mindstorms Robots). Since then, he has created newer versions with a more recent NXT version being used by Lego marketing staff in Europe. Visit Daves site, www.plastibots.com, for more information on his work. Daniel T. Barry (M.D., Ph.D.) is a former NASA astronaut who was a crew member aboard the Space Shuttles Discovery and Endeavor. He logged more than 734 hours in space, including four spacewalks totaling 25 hours and 53 minutes. He holds a BS degree in electrical engineering from Cornell University; a masters of engineering degree and a master of arts degree in electrical engineering/computer science from Princeton University; a doctorate in electrical engineering/computer science from Princeton University; and a doctorate in medicine from the University of Miami in 1982. Organizations to which he belongs include the Institute of Electrical and Electronic Engineers (IEEE), the American Association of Electrodiagnostic Medicine (AAEM), the American Academy of Physical Medicine and Rehabilitation (AAPMR), the Association of Academic Physiatrists (AAP), and the Association of Space Explorers. He holds five patents, has written 50 articles in scientific journals, and has served on two scientific journal editorial boards. Dr. Barry retired from NASA in April 2005 to start his own company, Denbar Robotics, where he currently builds robots. Dr. Barry currently lives in South Hadley, MA. Bryan Bonahoom is a LEGO MINDSTORMS enthusiast. He is a member of the Lafayette LEGO Robotics Club and one of the original team that developed the Great Ball Contraption. Bryan is also cofounder of Brickworld. Bryan was selected by LEGO in 2006 as a member of the MDP and later as a member of the MINDSTORMS Community Partners (MCP). Bryan was also awarded the Best Robot Design Trophy at the 2005 AFOL Tournament at LEGO headquarters as a member of Team Hassenplug. Bryan is possibly most well known for the creation of an NXT-based robot that plays tic-tac-toe with a human opponent. Sivan Toledo is Associate Professor of Computer Science in Tel-Aviv University in Israel. He holds a BSc degree in Math and Computer Science and an MSc degree in Computer Science, both from Tel-Aviv University, and a PhD in Computer Science from the Massachusetts Institute of Technology. He authored more than 50 scientific papers and one textbook. He serves on the editorial boards of the SIAM Journal of Scientific Computing and of Parallel Computing. Larry Whitman (Ph.D., P.E.) is an Associate Professor of Industrial and Manufacturing Engineering at Wichita State University. Larry promotes engineering in every context possible. He is especially interested in promoting the technical literacy of all citizens, not just those who intend to be engineers. To this end, he and several colleagues at Wichita State have developed a course using LEGO MINDSTORMS in a hands-on environment to demonstrate basic engineering skills to nonengineering undergraduates. He also coordinates a LEGO MINDSTORMS challenge competition for middle school students. Finally, he promotes engineering by training his two sons, Joshua and David, to love building LEGO robots. Larry holds bachelor's and master's degrees from Oklahoma State University. After spending 10 years in the aerospace industry as a practicing engineer, he completed his Ph.D. from the University of Texas at Arlington. Joshua Whitman is a home-schooled eighth-grader from Wichita, KS. He has been building with LEGO bricks for as long as he can remember. He received his first MINDSTORMS RCX kit at age eight. He has participated in numerous robotics groups, clubs, and classes. He competed on a team in WSUs MINDSTORMS Robotics Challenge for two years. His team won the first-place trophy both times. As an experienced member of the team, he had to learn how to help teach the newer kids about MINDSTORMS. He was a part of the first winning team to use an NXT to compete in the challenge. His favorite (and most impressive) creation is a robot that can actually lock and unlock his room through a rotation sensor combination lock. The system is surprisingly secure, and 99.9 percent foolproof. He loves programming more than anything else in robotics. His current project involves using the NXT display as a screen for simple videogames like Pong. Guy Ziv is now finishing his graduate studies in biological physics at the Weizmann Institute of Science in Israel. He holds a bachelors degree in math and physics from the Hebrew University of Jerusalem and a masters degree in physics from the Weizmann Institute. Guy has been working in the field of measurement and automation for several years. He is an experienced LabView programmer and was a beta tester of NI LabView toolkit for NXT and MINDSTORMS NXT v. 1.1. Guy is the author and editor of NXTasy.org, the second largest NXT community site, and he moderates NXTasy.orgs repository and forums. John Brost had a passion for LEGO and all things mechanical at an early age. However, the interest waned, and like most adult LEGO fans, John went through his dark ages” in high school and while attending Purdue University. The release of the Star Wars LEGO sets brought a renewed interest in LEGO to John. But it was a chance encounter with an announcement of a LEGO Robotic Sumo competition being held locally that brought John back to LEGO 100 percent. It took only this event to get John hooked. Less than two weeks later, John had his first MINDSTORMS RIS kit, and he has been busily building robots and all sorts of mechanical LEGO contraptions ever since then. John has participated in all types of MINDSTORMS competitions, winning a few here and there. He has also been a coach for LafLRCs (Lafayette LEGO Robotics Club) FIRST LEGO League team for the past five years. In 2006, John was lucky enough to become a member of the LEGO MINDSTORMS Developer Program to test the MINDSTORMS NXT. Currently, John is a moderator on LEGOs NXTlog Web site. Rebeca Dunn-Krahn is a member of a working group at the University of Victoria dedicated to increasing awareness and understanding of computer science among children and young adults. She is currently producing a short documentary film about these outreach efforts that include free robotics festivals using LEGO MINDSTORMS. Rebeca has also worked in quality assurance and as a Java developer. Rebeca holds a bachelors degree in computer science and biochemistry from the University of Victoria and lives in Victoria, Canada, with her family. Richard Li is one of two nonadult contributors to Building Robots with LEGO MINDSTORMS NXT. He is currently a seventh-grader at Beck Academy and heads two award-winning FIRST LEGO League (FFL) teams. They have been honored with the Champions Award on several occasions and are ranked as two of the top teams yearly. When not working with his FLL teams, he experiments with his own robots at home. He would like to thank his parents, Lin and Liang-Hong, for buying him his LEGOs and dealing with him as he stayed up late several nights to meet his deadline for this book. Richard currently resides in Simpsonville, SC. Christopher Dale Minamyer (Bachelor of Science in Mechanical Engineering, University of Arizona, 2007) began studying mechanical engineering during the fall of 2002 and graduated from the University of Arizona in May 2007. A lifelong LEGO fan, Chris has been building with LEGO for 20 years. For the past four years Chris was an instructor of LEGO Robotics at Ventana Vista Elementary School in Tucson, AZ. During this time he instructed more than 300 students in grades one through five in LEGO MINDSTORMS RCX and NXT. In addition Chris is a founding member of the Tucson LEGO Club Masters Group and the head coach. Chris has been a FIRST LEGO League coach for the past four years. In that time the teams he coached have won the Robot Performance award (2004) and the Research Quality award (2005) for the state of Arizona. In addition Chris received the Adult coach/mentor award (2005) and the Appreciation award (2006). Deepak Patil developed interest in LEGO robotics when the original LEGO MINDSTORMS kit was introduced in 1998. Since then Deepak has coached FLL teams and has conducted several robotics workshops with LEGO MINDSTORMS. Deepak has a masters degree in Industrial Design from IIT Bombay and has designed user interfaces for diverse products, including programmable logic controllers, telephony software, and multimedia systems. Deepak has worked for Cisco and other leading technology companies, and he has led technology projects with globally interspersed teams of engineers. Mac Ruiz is a retired construction superintendent. His work entailed problem solving and coordinating of off-site engineers and subcontractors with the projects realities. He also has experience in fabrication of farm equipment from his familys dealership. This included steel fabrication and mechanicals. Christian Siagian is working toward a Ph.D. degree in Computer Science at the University of Southern California (USC). He is involved in the Beobot Project that develops a biologically inspired vision-based mobile-robot localization and navigation system. His research interests include robotics and computer and biological vision. As a teaching assistant for CS445 Introduction to Robotics at USC, Christian develops laboratory curriculum to prepare undergraduates for research in robotics. Christian also volunteers for after-school programs at St. Agnes Parish School and EPICC in Los Angeles. These programs use robotics to promote interest in science and mathematics in elementary and middle school students. Christian holds a bachelors degree from Cornell University in Computer Science and is a member of the IEEE. Dick Swan is an embedded software consultant. He partnered with the Robotics Academy at Carnegie Mellon University in developing the RobotC programming environment for the NXT. He also codeveloped with Tufts University the Robolab programming environment for the NXT. Dick has 30 years experience in software and hardware projects, including embedded systems, telephone systems, and compilers. Dick has both a bachelors and masters degree in Computer Science from the University of Waterloo and is a member of the IEEE.