330 likes | 626 Views
Objectives. Learn how to introduce OOP within VB.NET using Karel the RobotUnderstand the world of Karel the RobotWrite simple programs to instruct a Robot to accomplish a task that involve:creating a VB.NET applicationdeclare and create Robot objectexecute methods of a Robot Objectuse inheritance to create smarter types of Robotsoverload and override some of a Robot's methods.
E N D
1. Introduction to OOP in VB.NETusing Robots ACSE Conference, Nov 2004
Michael Devoy
Monsignor Doyle C.S.S., Cambridge
mdevoy@look.ca
3. Why Use Robots Fun
Visual
Early introduction to Object Oriented concepts
Students start by using objects before needing to learn how to build classes
Teachers don’t have to build their own classes for students to use
Free lesson plans and assignments at http://csis.pace.edu/~bergin/KarelJava2ed/Karel++JavaEdition.html#toc
4. When to teach Robots Possible in grade 11
After standard programming expectations have been met (variables, if, loops, functions and parameters)
Great introduction to OOP for grade 12
Reinforces concepts that controls on a form are objects with methods and properties
Answers the question of what should be in a module for code re-use
Great introduction if teaching Java in grade 12
5. The World of Robots Robots ‘live’ in a World
A World has intersections of streets and avenues
‘Beepers’ may be on an intersection
Robots may pick up or put down Beepers
Walls may be next to an intersection
Robots can not walk through Walls (they break)
6. Getting Started You need:
Windows XP
Visual Basic.NET (one copy provided free today)
The kareltherobot.dll file downloaded free from the Internet at http://www.acthompson.net/DotNet/Karel.htm (click on the ‘here’ link and copy to anywhere you wish on your hard drive)
The vjslib.dll file downloaded free from the Internet at http://msdn.microsoft.com/vjsharp/downloads/howtoget/default.aspx (use the 1.1 version) and installed into Windows
7. Assignment 1 – Using Robot methods The teacher designs the world layout and poses the problem
The student writes a program that instructs a robot (or robots) to complete the task
For example: Write a program that will create a robot facing north at corner 1, 6. The robot will live in the world found in the file ‘fetch.txt’. The robot should walk around the walls, pick up the Beeper, and return to the starting location, facing north.
8. Starting Visual Studio.Net Start Visual Studio.NET
Click New Project
Ensure Visual Basic Project is selected
Ensure Windows Application is selected
Browse to a folder to save work in, optionally make a new folder, e.g. ‘Robot Assignments’
Enter a name for the project (a new folder will be created) e.g. ‘Assignment1’
9. Starting a VB Program for Robots Use Windows Explorer, copy the World file ‘fetch.txt’ and the Robot gifs to the ‘bin’ folder inside your project folder
Click Project
Click Add References
Add references for:
Vjslib.dll
Kareltherobot.dll
10. Add Code Behind the Form Access the code editor for the form by double clicking the form surface
Add ‘imports kareltherobot’ to top of code, to allow access to code in kareltherobot.dll
Add a call to a task sub, inside Form1_Load event
Start a task sub, by typing ‘private sub task()’
11. Add Code to Display the World Inside the task sub, add the following lines of code:
World.readWorld("fetch.txt")
World.setDelay(20)
Click the Run button!
12. Pattern for Creating a Robot Object Dim karel as ur_Robot
karel = new ur_Robot (1, 6, Directions.North, 0)
13. Pattern for Calling a Robot Object’s Method karel.move()
14. Your Turn Now Complete the code to have the Robot perform its task
Run your program to ensure it functions correctly
15. Assignment 2 - Creating a Smarter Robot using Inheritance Inheritance is an important OOP concept
A new Class is created, based on an existing Class
The existing Class is the parent or base Class
The new Class is the child or sub Class
The Child inherits all the Parent’s attributes and methods (except the constructor)
benefits:
reduces the amount of code we need to write
makes our program easier to understand
facilitates the re-use of code
aids in debugging our program
16. A Smarter Robot Problem Create a new type of Robot that has the abilities to turn right and turn around
Use this new Robot to solve the same problem as Assignment 1
Our task code should become simpler to write and easier to understand
17. Starting a new Assignment Remain in the same solution
Close the form and code editing windows
Click File | Add Project | New Project
Ensure ‘Visual Basic Project’ is selected
Ensure ‘Windows Application’ is selected
Type a name in the name box e.g. Assignment 2
Click OK
Right click Assignment 2 in the solution explorer window and select ‘set as startup project’
Use Windows Explorer and copy the world file and robot gifs to Assignment2’s bin folder
Add the references for vjslib.dll and kareltherobot.dll
18. Starting a new Class Click Project | Add Class
Ensure ‘class’ is highlighted
Enter a name for the new class e.g. RightTurnerRobot
Click open
20. Pattern for new Method
21. Your Turn Now Complete the turnAround method in the TurnRightRobot’s class
Edit the code behind the form (refer back to Assignment1)
Make the following changes to the form’s code:
Change all ur_Robot to RightTurnerRobot
Replace multiple calls to turnLeft to turnRight and turnAround, as appropriate
Run your program to ensure it functions correctly
22. Assignment 3 – Overloading Methods To overload a method, means to create a method with an existing method’s name, but a different list of parameters (type or order)
This is often done with constructor methods, to provide a variety of ways of creating an object (e.g. specifying beepers in bag or not)
karel = new ur_Robot (1, 6, Direction.North)
karel = new ur_Robot (1, 6, Direction.North, 10)
move() is a method in the ur_Robot class
define a new method move(steps) that has a parameter that allows us to dictate how many steps to move
we say the move method is now overloaded
note: we can invoke either of the move methods we wish, because VB distinguishes between them by the parameter list
23. A More Flexible Robot Problem Create a new type of robot that is a child class of the ur_Robot
This new type of robot can walk multiple numbers of intersections with its move method
This robot will live in the world, as found in the file “miles.txt”
The robot starts at intersection 2,2
Use this robot to clean the Beepers in front of it
The robot should stop one intersection past the last Beeper
Our task method should be very easy to read and understand
24. Starting a new Assignment Remain in the same solution
Close the form and code editing windows
Click File | Add Project | New Project
Ensure ‘Visual Basic Project’ is selected
Ensure ‘Windows Application’ is selected
Type a name in the name box e.g. Assignment 3
Click OK
Right click Assignment 3 in the solution explorer window and select ‘set as startup project’
Use Windows Explorer and copy the world file (miles.txt) and the robot gifs to Assignment3’s bin folder
Add the references for vjslib.dll and kareltherobot.dll
25. Starting a new Class Click Project | Add Class
Ensure ‘class’ is highlighted
Enter a name for the new class e.g. MileWalkerRobot
Click open
Add ‘imports kareltherobot’
Add the constructor
26. Pattern for Overloaded Methods
27. Your Turn Now Complete the move method in the MileWalkerRobot’s class
Edit the code behind the form (refer back to Assignment1)
Make the following changes to the form’s code:
Change all ur_Robot to MileWalkerRobot
Add the line of code World.setSize(15,15), after setting the speed of the animation with the World.setDelay(20) method
Use the new move method to move multiple intersections at once
Move to the first intersection with a Beeper, then pick up the Beeper.
In a similar fashion, move and pick up the second Beeper
Run your program to ensure it functions correctly
28. Assignment 4 - Overriding Methods To override a method means to replace the definition of an existing method, which would be inherited from a parent (base) class
This is accomplished by writing a method definition with an identical method signature to the method signature in the parent class
method signature is the method name and parameter list
You can call the parent’s method, if needed, by use of the MyBase keyword
29. A Dizzy Robot Problem Create a new type of robot that is a child class of the ur_Robot
This new type of robot overrides the move method, so that it first turns 3600, then moves forward one intersection
This robot will live in the world, as found in the file “miles.txt”
The robot starts at intersection 2,2
Use this robot to clean the Beepers in front of it
The robot should stop one intersection past the last Beeper
30. Starting a new Assignment Remain in the same solution
Close the form and code editing windows
Click File | Add Project | New Project
Ensure ‘Visual Basic Project’ is selected
Ensure ‘Windows Application’ is selected
Type a name in the name box e.g. Assignment 4
Click OK
Right click Assignment 4 in the solution explorer window and select ‘set as startup project’
Use Windows Explorer and copy the world file (miles.txt) and the robot gifs to Assignment4’s bin folder
Add the references for vjslib.dll and kareltherobot.dll
31. Starting a new Class Click Project | Add Class
Ensure ‘class’ is highlighted
Enter a name for the new class e.g. DizzyWalkerRobot
Click open
Add ‘imports kareltherobot’
Add the constructor
32. Pattern for Overriding Methods
33. Your Turn Now Complete the move method in the DizzyWalkerRobot’s class
Edit the code behind the form (refer back to Assignment3)
Make the following changes to the form’s code:
Change all ur_Robot to DizzyWalkerRobot
Use multiple move methods to move to the first Beeper
Pick up the Beeper.
In a similar fashion, move and pick up the second Beeper
Move one more intersection forward
Run your program to ensure it functions correctly