Welcome to
AP Computer Science!
Goals for today:
To work at home (hopefully you won't
have to), you'll need BlueJ on your
home computer. Here's a movie that
will help you get set up at home.
![]()
More
fun with java!
Goals for today:
![]()
Hands-on with Karel
Continue where you left off with
Next we'll talk
about polymorphism
and begin work on
Extra Credit problem: PlanterBot
using this world.
![]()
Fun with Polymorphism
Continue with yesterday's tasks. (Click on the 25th in the calendar to get at what we did yesterday).
If you are done, try this challenge. You'll have to download this BlueJ project and this world.
Mr. H is going to introduce you to Boolean functions and conditional (a.k.a. "if") statements. Here's a list of what the new and improved Robot can tell you.
Extend your Harvester and DiamondHarvester classes so they can harvest sparseField.kwld and sparseDiamond.kwld
Do Lab 7.1: Hurdle Racer and test it on these worlds: hurdles1.kwld and hurdles2.kwld
![]()
Time to Recurse
Have a good weekend!
![]()
a-MAZE-ing Robots
Here are some interesting problems to begin working on (Lab 11). Here is a zip file of worlds to test your solutions.
Class Discussion:
Make your SuperBot even more super
Be prepared for a test tomorrow!
![]()
Polymorphism Review
We're going to sit down together, go over the basic concepts of polymorphism, and look at some examples. As part of this, we'll look at the exam, although they aren't finished being marked.
Then you should go back over all your programs that use SuperBot, and rewrite them using good programming techniques.
![]()
Work Day
Continue working on revising
Labs 10-11, making sure to use polymophism correctly.
Exam review mid-morning.
Reminder: no class tomorrow!
Have a nice weekend!
![]()
No Class
Enjoy the weekend!
![]()
Javadoc and Loops
First we'll talk about documenting classes using Javadoc. Here's How to Write Doc Comments for the Javadoc Tool.
Document your SuperBot completely.
Then we'll learn about
Change your SuperBot so that it uses member variables to keep track of where it is and how many beepers it has in its bag. What methods will you have to change? Do you have to change the documentation?
![]()
SuperBot Exercises
Extend your SuperBot in the following exercises:
![]()
More Java
Review of passing parameters and returning values.
Work on Lab 14: Avoiding Walls
start your robot at (5,5)
part 1: world1, world2, & world5
part 2: world3, world4, & world5
![]()
Games and A.I.
Today we'll explore some games that computers can play. Working in pairs, you'll program Karel to play a couple
of these games against a human opponent.
![]()
Karel Games
Finish NimBot
Super Challenge: see if you can make a simple game of tic-tac-toe using Karel. Start with just making a user interface that accepts input from 2 human players. Your user interface can use either the console (easier) or a graphic user interface (harder), maybe with multiple buttons (hardest).
![]()
More Java
0. Introductions (for the benefit of Mr. Franke).
1. Discuss Game of Nim Design
2. Sort out your life
3. Final Karel Project: Sorting Bot
4. Your Second Sip of Java - Swing Components.
![]()
More Java
0. Finish/improve SortingBot. If it sorts properly, try modifying classes to use fewer robots.
1. Your Second Sip of Java, with Squint
2. The world of JComponents: JButton, JTextField, JTextArea, JComboBox, JLable, JPanel, and more!
3. A windowed version of Nim?
![]()
More Java
![]()
More Java
![]()
More Java
![]()
Networked Java
Today we will improve our email programs and invent our protocols to provide a network service.
1. Double-check basic email sending is working.
2. Improve your email client, by adding text fields to accept an address, CC, subject, etc. --we'll discuss how to properly format your message to do this.
3. Making a server - MATH SERVER
4. Make a simple transactional game server, client, etc.
5. Make a chat server.
![]()
More Java
![]()
More Server/Client programs
1. Finish Translation Server/Client
2. Other I/O issues
2.1 sending/reading multiple lines.
2.2 Reading from / Writing to files?
3. Simple game server / client
3.1 Single player with Server "AI"
3.2 Two player
Can you resurect the graphical Nim Game you wrote before?
4. Simple chat server / client
4.1 How to keep track of multiple users?
![]()
More Java
![]()
More Java
![]()
Last Week!
1. Clickable/Dragable shapes
2. Objectifying shapes
3. Shape composition
4. Timers and Threads
Project: Lunar Lander
4. detecting collisons
5. Keeping track of lots of shapes
Project: Bumper ball
![]()
More Java
![]()
More Java
![]()
More Java
![]()
More Java



Helpful Links:
