View this PageEdit this Page (locked)Attachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide

AP CS Materials 2009-2010

The scores for this class of 30 students were:

7 got a 5 (4 males and 3 females)
4 got a 4 (3 males and 1 female)
2 got a 3 (1 male and 1 female)
4 got a 2 (3 males and 1 female)
13 got a 1 (9 males and 4 females)

I was pleased with the high number of 5's, but I wish that more of the class would have passed. We had a large group of students who didn't really do much work in the class (the 13 with 1's). We had some students who struggled and got behind (the 2's). I think the results do show that using Alice and Media Computation can result in well prepared students.

I helped teach an AP CS class at Lakeside High School during 2009-2010. I put the material here as I developed it. The class met Monday - Friday for 50 minutes each day (but with roll and announcements at the end it is only 40 min). I taught Alice and Media Computation during the first semester and then moved on to GridWorld and Greenfoot for the second semester. See http://books.google.com/books?id=NwIbWrnyHeYC&pg=PA4&dq=Alice+programming&ei=u5-JSqisJpmwNLWZucYM#v=onepage&q=Alice%20programming&f=false for the 2nd edition of the Learning to Program with Alice book. We got the just printed book Exploring Wonderland: Java Programming Using Alice and Media Computation by Wanda P. Dann, Stephen P. Cooper, and Barbara Ericson (me). My publisher donated the books to the class (got them in week 3). I put some Alice tips and techniques videos at http://home.cc.gatech.edu/TeaParty/57. I also put Media Computation tips and techniques videos at http://home.cc.gatech.edu/TeaParty/61. The Java API is available at http://java.sun.com/javase/6/docs/api/. Information about the CS A exam is at http://apcentral.collegeboard.com/apc/public/courses/teachers_corner/4483.html. Information about GridWorld is at http://apcentral.collegeboard.com/apc/public/courses/teachers_corner/151155.html. Information about previous Free Response Questions is at AP CS A Free Response Questions
Review pages for AP CS A exam 2010

Additional websites to use:
Give this to your students that want an extra challenge: http://projecteuler.net/
A site for writing small methods in Java or Python as practice: http://codingbat.com/
A site that has lots of small Java problems that go with a back to basics book http://webster.cs.washington.edu:8080/practiceit/
Student Pages Cox AP CS A 2009-2010
Lakeside-APCSA-Syllabus.doc

18th week 2nd semester - Review 2010 free response questions and work on final project in Scratch, Greenfoot, or Alice.

17th week 2nd semester (May 3-7th) AP Exam is on Tues.

16th week 2nd semester (April 26-30)
Monday - Go over questions from AP Bowl - for those who didn't go to the AP Bowl the practice exam is here: Aexam-2010.doc
Tues - Read AbstractClassesInterfacesPolymorphism.ppt. Create a Line class that extends Shape (see Oval.java for a starting point). Modify the ButtonPanel class to add "Line" to the array shapeNames. If you have time try adding buttons to ButtonPanel to control the color that the shape is drawn in. You will need to modify ShapeInterface.
ButtonPanel.java
Oval.java
Rectangle.java
Shape.java
ShapeCanvas.java
ShapeInterface.java
ShapePanel.java - This has the main method for running this.
Wed and Thurs - Work on the Game of 15 with GridWorld.
ColorTextPiece.java
GameOfFifteen.java
Friday - Do one of the free response quesitons from 2008 http://coweb.cc.gatech.edu/ice-gt/1279

15th week 2nd semester (April 19-23)
Monday - Do question 3 from the 2009 free response questions on page AP CS A 2009 Free Response Questions. Turn in BatteryCharger.java.
Tues - Login and do a 20 question multiple choice exam at http://ice.cc.gatech.edu/apexam_test/
Wed - Do question 1 from the 2007 free response questions at AP CS A 2007 Free Response Questions. Turn in SelfDivisor.java.
Thurs - Login and do a 20 question multiple choice exam at http://ice.cc.gatech.edu/apexam_test/.
Friday - Login to JavaBat and do at least 6 of the questions in the AP-1 category http://codingbat.com/java/AP-1. Also check out these exam taking tips http://www.skylit.com/beprepared/chapter1.pdf. And see Common mistakes on the CS AP Free Response Questions

14th week 2nd semester (April 12-16)
Monday: Review of Mergesort, Insertion Sort, and Selection Sort. See animations of sorting algorithms at http://www.cs.ubc.ca/~harrison/Java/sorting-demo.html. Finish MergesortWorksheet.doc. If you have time write the code for the merge method test the mergesort: ArraySorter.java
Tues: Review for Quiz: QuizReviewSearchingSortingRecursion.doc
Wed: Go over answers from the review for the quiz.
Thurs: Quiz on searching, sorting, and recursion.
Friday: Java basics review.
Create a login for yourself and do the problems at http://webster.cs.washington.edu:8080/practiceit/
http://webster.cs.washington.edu:8080/practiceit/problem.jsp?category=Chapter+1&problem=1-s2-binary1
http://webster.cs.washington.edu:8080/practiceit/problem.jsp?category=Chapter+1&problem=1-s3-binary2
Do the first 8 problems at http://webster.cs.washington.edu:8080/practiceit/problem.jsp?category=Chapter+2&problem=2-s2-expressions1
http://webster.cs.washington.edu:8080/practiceit/problem.jsp?category=Chapter+1&problem=1-s20-Strange
http://webster.cs.washington.edu:8080/practiceit/problem.jsp?category=Chapter+1&problem=1-s23-Confusing

13th week 2nd semester (March 29-April 2)
Monday: Read these slides 16-Recursion.ppt and add the drawTree method to the Turtle.java class and try it with different values (100, 50, 25, 10). Try to modify the Triangle class Triangle.java (rename to Triangle.java) to do Sierpinski's triangle instead (see http://en.wikipedia.org/wiki/Sierpinski_triangle). You will need to add the drawTriangles method to the Picture class to test this.
Tues: Do Recursion worksheet RecursionWorksheet.doc. If you have extra time try some of the recursion problems at http://www.javabat.com or try the Recursion Tracing problems at http://webster.cs.washington.edu:8080/practiceit/.
Wed: Watch video on tracing recursion recursion.mp4. Then do recursion trace worksheet RecursionWorksheet-Trace.doc.
You can use http://cs.joensuu.fi/jeliot/webstart.php to get an animation of the code executing. Go to the url and then click on "Start Jeliot".
Thurs: Work on recursion trace worksheet. If you have extra time try some of the recursion problems at http://www.javabat.com or try the Recursion Tracing problems at http://webster.cs.washington.edu:8080/practiceit/.
Friday: Do worksheet on Mergesort: MergesortWorksheet.doc. If you have time add the method merge to this class and test the mergesort: ArraySorter.java.

12th week 2nd semester (March 22-26)
Reading: Chapter 15 on recursion in Alice
Monday: Review for quiz - algorithms for linear (sequential) and binary search. Do the following worksheet in pairs and we will review it in class SearchReview.doc.
Tues: Go over review sheet from Monday and testing of juniors.
Wed: Quiz on strings, lists, arrays, and searching.
Thurs: Insertion sort. Watch video at http://www.youtube.com/watch?v=Fr0SmtN0IJM. Do this worksheet InsertionSortWorksheet.doc.
Friday: Recursion in Alice. Read these slides 09-Recursion.ppt and look at this world HorseRace-V1.a2w and this world Towers-V1.a2w.

11th week 2nd semester (March 15-19)
Reading: Chapter 16 on searching and sorting
Monday: Review of Strings, Lists, and Arrays (fill out StringsArraysAndLists.doc)
Tues: Go over review sheet answers. Then learn about searching. Searching is about looking for a value in an array or list. Add a method to the IntArrayWorker class to return true if a passed number is found in the array and false otherwise. Play the
game GuessANumber GuessANumber.java several times. What is the minimum number of guesses you have to make to get the right number? What is the maximum
number of guesses you have to make to get the right number? Is there a strategy that you can use to guess the right number in the
smallest number of tries? Change the max number to 1,000,000. If you use this strategy what is the maximum number of guesses you have to make
to get it right?
Wed: Watch http://www.youtube.com/watch?v=wNVCJj642n4. Write a binary search method in IntArrayWorker and test it (look up binary search on Wikipedia). Turn in IntArrayWorker.
Thurs: Sorting - selection sort. Watch http://www.youtube.com/watch?v=sBqau7AHrSA&feature=related. Do SeletionSortWorksheet.doc and turn it in.
Friday: No class due to pep rally

10th week 2nd semester (March 8-12)
Reading: Chapter 14 (the string and ArrayList part)
Monday: String basics. Do the worksheet String worksheet.doc. If you have time also do some of the String-1, String-2, and String-3 questions at http://www.javabat.com.
Tuesday: Do question 2 from the 2008 free response questions ap08_comp_sci_a_frq.pdf. Use the starter classes at AP CS A 2008 Free Response Questions.
Wed: Do some of the String-1, String-2, and String-3 questions at http://www.javabat.com.
Thurs: Do question 3 from the 2007 free response questions ap07_comp_sci_a_frq.pdf. Use the starter classes at AP CS A 2007 Free Response Questions
Friday: Write the code for several methods in the following class: StringListWorker2.java. Write the code for the method getEveryOther which will return a new list of strings with every other item from the original list of strings in it. Write the code for the method getCount that takes a substring and returns the count of how many strings in the original list had that substring in it. Write the code for the method reverse that returns a new list of strings with the strings in reverse order.

9th week 2nd semester (March 1-5, 2010)
Reading: Chapter 14 in the book
Monday: Do question 1 from the 2009 Free Response Questions ap09_frq_computer_science_a.pdf . Use the starter classes at AP CS A 2009 Free Response Questions. Turn in the NumberCubeTest class. If you have extra time do some of the array-1, array-2, and array-3 questions at http://www.javabat.com.
Tues: Finish question 1 from the 2009 Free Response Questions and test with Tester.java to make sure you did it right. If you have extra time do some of the array-1, array-2, and array-3 questions at http://www.javabat.com.
Wed: Modify SlideShow (SlideShow.java) to use an ArrayList instead of an array, add a method to insert a picture at a given index, and a method to remove a picture at a given index, and test it. Turn in the modfied SlideShow class. Use Arrays Versus ArrayList.doc as a reference.
Thurs: Finish SlideShow.java if you haven't. Here is the picture class with the drawHorizontalCenteredString Picture.java. Do some of the array-1, array-2 and array-3 questions at http://www.javabat.com.
Friday: Modify the class IntArrayWorker.java. Write methods to return the largest value in the array, the average of all of the elements in the array, and a new array that has every other value from the original array. Be sure to test all of the methods in the main method.

8th week 2nd semester (Feb 22-26, 2010)
Monday: Finish Breakout in Greenfoot. If you have finished it do one of the suggested extensions or try to create a Pong game by reusing the Ball and Paddle classes.
Tues: Download the ants scneario from here ants.zip and unzip it. Add a Spider class as a subclass of Actor that eats ants. Instructions for creating a new Actor subclass in Greenfoot.
Wed: Better ways to handle common fields and methods in several classes like in BoxBug, SpiralBug, etc. Pulling out a common super class. Pulling out a common superclass.ppt
Thurs: Review for Quiz. PatternBugInheritanceFreeResponseQuestion.doc PatternBug.java InheritanceInterfacesAbstractClassesOverridingGridWorldGreenfootReview.doc If you have time review the multiple choice questions in GridWorld_Samp_Quest.pdf
Friday: Quiz on inheritance, interfaes, abstract classes, Bug classes, Critter classes, and Greenfoot.
Quiz: Quiz-PatternBugInheritanceFreeResponseQuestion

7th week 2nd semester (Feb 16-19, 2010)
Tues: Create your own subclass of Critter and turn it in.
Wed: Open Greenfoot and try the scenarios. Copy I:/Greenfoot/scenarios to your network drive or USB drive. The API is in I:/Greenfoot/docs. There is a tutorial in I:/Greenfoot/tutorial. You can download Greenfoot at home from http://www.greenfoot.org.
Thurs: OO analysis of Breakout in Greenfoot unzip this file Breakout-export.zip and then double click on Breakout.html. Play the game by moving the paddle with the arrow keys and use the paddle to hit the ball into the bricks. If you get rid of all the bricks before using 3 balls you win. Write down the classes you will need to create this game and what objects need to be able to do. Turn in your list of classes and what objects need to be able to do and you will get a starter scenario to create the game.
Friday: Finish Breakout in Greenfoot. Use the classes in this zip to start from Breakout-Start.zip. If you are having trouble go through these slides Breakout.ppt

6th weeek 2nd semester (Feb 8-11th 2010)
Monday: finish work from last week since class was cancelled on Friday.
Tues: Do question 3 from the 2008 Free Response Questions ap08_comp_sci_a_frq.pdf using this class OpossumCritter.java and test it. Turn in your class with a main method for testing it. If you have time try to answer some of the other free response questions (see http://coweb.cc.gatech.edu/ice-gt/1279 for starter classes)
Wed: Do question 2 from the 2009 Free Response Questions ap09_frq_computer_science_a.pdf and turn in your class with a main method for testing it. If you have time try to asnwer some of the other free response questions. You will need to copy the import statements at the top of OpossumCritter.java to start.
Thurs: Do multiple choice practice questions on GridWorld and read this: Arrays Versus ArrayList.doc

5th week 2nd semester (Feb 1-5th 2010)
Questions: How do you create a general pattern of behavior? Which methods should you override in order to specialize behavior?
Monday: show off your Bug subclass (explain what fields and methods you created) and take the quiz
Tues: show off your Bug subclass and grade the quiz
Wed-Friday: Read part 4 in the GridWorld_Case_Study_Student_Manual and do this worksheet and turn it in Do You Know Exercises 4.doc. Also, do at least two of the exercies on pages 35-36 of the Student Manual and turn in these classes.

4th week 2nd semester (Jan 25-29, 2010)
Questions: What are the responsibilities of the classes in GridWorld?
Reading: Part 3 in the GridWorld Case Study Student Manual and complete the following worksheets and turn them in.
Monday-Tues: Read part 3 in the GridWorld Case Study Student Manual
Do You Know Exercises 3a.doc
Do You Know Exercises 3b.doc
Wed: Create your own subclass of Bug
Thurs: Demonstrate your subclass of Bug
Friday: Quiz on creating classes, subclasses, and GridWorld classes. Demonstrate your subclass of Bug.
Quiz: Quiz-CreatingClasses-Subclasses-and-GridWorld


3rd week 2nd semester (Jan 19-22, 2010)
Questions: How do you create a subclass in GridWorld? When do you pull out a superclass?
Reading: Part 2 in the GridWorld Case Study Student Manual
Tues: Create a BoxBug class and a BoxBugRunner class. Create a CircleBug and CircleBugRunner class. Turn in the created classes. Do this worksheet: Do You Know Exercises 2-be.doc. Think of other Bugs you can create. You will be creating your own subclass of Bug next week.
Wed: Create a SpiralBug and SpiralBugRunner class. Class discussion on the best way to create a BoxBug, CircleBug, and SpiralBug.
Thurs: Create a ZBug and ZBugRunner class. Create a DancingBug and DancingBugRunner. Turn in the created classes.
Friday: Show off your DancingBug and start work on your own subclass of Bug.

2nd week 2nd semester (Jan 11-15, 2010)
View: Video at http://home.cc.gatech.edu/TeaParty/61 on creating a class in DrJava.
Monday-Tues finish labs from last week that didn't get finished due to snow day and quizstar.
Wed - Read these slides 13-CreatingClasses-SlideShow-part4.ppt and do the exercises. Turn in Student.java and SlideShow.java
Thurs - Friday Read these slides 13-CreatingSubclasses.ppt and do this lab: InheritanceWorksheet.doc. Turn in SlowTurtle.java and StubbornTurtle.java.

1st week 2nd semester (Jan 5-8th, 2010)
Questions: How do you create a new class? How do you specify the class to subclass? How do you override inherited methods? What default iniital values are given to fields? How do you initialize the fields? How do you create a one-dimensional array and initialize the elements? How do you create constructors? How do you use a debugger?
Reading: Chapter 13
Tues - go over final
Wed - Read these slides: 13-CreatingClasses-SlideShow-part1.ppt. And do this lab: Creating Classes Lab.doc
Thurs - Read these slides: 13-CreatingClasses-SlideShow-part2.ppt and do this lab: Creating Classes with Constructors.doc. Turn in Student.java.
Friday - Read these slides: 13-CreatingClasses-SlideShow-part3.ppt and do the exercises in the slides. Turn in SlideShow.java

19th week (Dec 14-16)
ReviewSheet-3-v3.doc
Monday - Tues Review
Final: Wed Final-2009-v2

18th week (Dec 7 - Dec 11)
How do you use a logical 'or', 'and', 'not' and 'exclusive or' in a conditional? What is a run-time error? What is an array out of bounds error? How do you highlight extremes in a picture? How do you blur a picture? How do you replace the green in a picture with a new background?
Reading: chapter 12.4 to end
Monday: finish challenges from last week
Tues-Wed: 12-Conditionals-part4.ppt Do challenges and turn in Picture.java and the answers to the values.
Thurs - Friday: 12-Conditionals-part5.ppt Do challenges and turn in Picture.java.

17th week (Nov 30-Dec 4th)
How to rotate a picture? How to scale a picture down? How to scale a picture up? How to handle a conditional? How to handle a conditional with two outcomes? How to handle a conditional with 3 or more outcomes.
Reading: rest of the chapter 11, and start of chapter 12 (12.1-12.3)
Monday-Tues: 11-NestedLoops-part4.ppt Do the challenges and turn in Picture.java. If you have time do a right rotation method as well.
Wed: 12-Conditionals-part1.ppt Do the challenges and turn in Picture.java.
Thurs: 12-Conditionals-part2.ppt Do the challenges and turn in Picture.java
Friday: 12-Conditionals-part3.ppt Do the challenges and turn in Picture.java


16th week (Nov 23-24th)
What makes a good method? How to make more general methods by adding parameters. How to rewrite method to call general methods. How to blend two pictures together.
Reading: Chapter 11 pages 323 -328
Monday-Tues 11-NestedLoops-part3.ppt Do the challenges in the slides and turn in Picture.java

15th week(Nov 16-20th)
What is a two-dimensional array (a matrix)? How do you use a nested loop to traverse a two-dimensional array? How to go from an algorihtm to code.
Reading: Chapter 11 up to page 323.
Monday and Tues - 11-NestedLoops-part1.ppt TwoDimensionalArraysAndNestedLoopsLab.doc Write a method to do a vertical mirror from right to left. Write a method to do a horizontal mirror from top to bottom. Write a method to do a horizontal mirror from bottom to top. If you have time write the method to do a diagonal mirror from lower left to upper right. If you have time also write a method to do a diagonal mirror (only in a square region of the picture) from top right to lower left. Turn in Picture.java.
Wed - Friday 11-NestedLoops-part2.ppt Write a method to copy a small picture (like flower1.jpg) to one of the blank pictures (like 640x480.jpg or 7inX95in.jpg). Write a method to create an image collage using at least 2 different pictures, use at least 3 different image manipulations like reduce red, negate, clear blue, etc, and mirror the results. Turn in Picture.java. See SIGCSE Birds of a Feather 2008 for example collages.

14th week (Nov 9-13th)
How is color represented on computers? How do you loop through all the pixels in a picture using a for-each loop, while loop, and for loop?
Reading: Chapter 10
Monday and Tues - present what you did with Sound for an Alice movie.
Wed - Read 10-ManipulatingPictures-part1.ppt and do IntroManipPictures.docx. Turn in Picture.java.
Thurs - Read 10-ManipulatingPictures-part2.ppt and create a copy of the increaseRed method and name it increaseRedWhile and change it to using a while loop. Write a method increaseDecreaseRed and in the first half of the array of pixels increase the red and then in the second half decrease the red (use 2 while loops). Turn in Picture.java.
Friday - Read 10-ManipulatingPictures-part3.ppt and make a copy of makeSunset() called makeSunsetWhile() and change it from using a while loop to using a for loop, also create the method grayscaleWithLuminance and turn in Picture.java.


13th week (Nov 2-6th)
Monday and Tues - 09-UsingSoundRanges-part3.ppt Do the challenges in the slides and turn in the modified Sound.java file
Wed and Thurs - Use what you have learned about manipulating sounds to create something for an Alice movie. Maybe create several sound clips from some music and splice it together to make a sound track for your Alice movie (a sound track that doesn't violate copyright since you are using short segments (under 10% of the music).
Friday - Present your Alice movie and explain what you did with the sound for it.

12th week (Oct 26-30th)
Monday - finish up labs from last week and review loops and conditionals. For those who finished the labs last week create a login at http://www.javabat.com. You can login and then give Mr. Cox access to your results on the prefs page at the bottom under Teacher-Share. Do Warmup-1 and Logic-1 problems.
Tues and Wed: 09-UsingSoundRanges-part1.ppt Do the challenges in the slides and turn in the modified Sound.java file.
Thurs and Friday: 09-UsingSoundRanges-part2.ppt Do the challenges in the slides and turn in the modified Sound.java file.

11th week (Oct 19-23rd)
How do we digitize sound? What affects the sound frequency and volume? How can we manipulate a sound by looping through all values in the sound? What is a for-each loop in Java? How can we loop while some condition is true in Java? How can we use a general for loop in Java? How do we handle conditionals in Java? What is an array and how can you loop through all the elements of an array?
Reading: Chapter 8
Additional Resources:
You can download the Media Tools from the book at http://home.cc.gatech.edu/TeaParty/51
http://phet.colorado.edu/simulations/sims.php?sim=Wave_Interference is a simulation of sound and water waves.
Monday - Review Test-3
Tues - 08-Intro-Sound-part1.ppt Do this worksheet: IntroSound.doc
Wed - 08-Intro-Sound-part2.ppt Add increaseVolume to Sound.java and test it. Create the method decreaseVolume that will change each value to half the original value in the sound. Add increaseVolumeWhile to Sound.java and test it. Create a decreaseVolumeWhile method that uses a while loop to decrease the volume of the sound. Add increaseVolumeFor to Sound.java and test it. Create a decreaseVolumeFor to Sound.java and test it. Add changeVolume to Sound.java and test it. Turn in the modified Sound.java file.
Thurs - Use a loop (for-each, while, or for) to have a turtle draw at least 10 triangles (you should be able to count all the triangles). Turtles know how to drop a picture and when they drop a picture it will be rotated to match the current turtle heading. Use a loop to drop at least 10 copies of a picture while turning the turtle. Turn in the Turtle.java file.
Friday - 08-Intro-Sound-part3.ppt. Add the normalize method to the Sound.java file and test it. Write a method to find and return the smallest value in a sound. Write the method forceToExtremes() and test it. Turn in the modified Sound.java file.


10th week (Oct 13-16th)
What is a while loop? How do you loop (iterate) as long as some Boolean expression is true? What is a list? How do you loop (iterate) through all items in a list?
Reading: Chapter 7
Tues- Finish the lab from last Thurs (read the following slides 07-AliceWhileLoop.ppt and finish the code for 07Chase.a2w - turn in the compeleted world). If you have
times also do the challenge with the frog and the ladybug.
07frogAndLadybugNoCode.a2w
Wed - Read the following slides 07-ListsAndIterationInAlice.ppt and have all of the dancers in 07Rockettes.a2w put down their legs one at a time, then have them all lift their leg at the same time, and then put them all down at the same time.
Thurs - Create a list in Alice and have all objects in the list do an action at the same time and also one at a time. Review for test ReviewSheet-2.doc.
Friday - Test-3

9th week (Oct 5-9th)
What is a complex conditional? How do you join conditionals? What is a counted loop? What is an infinite loop? What is a nested loop?
ComplexConditionalsInAlice.doc - Monday lab
06Zeus-V1.a2w
Reading: Chapter 7
07-ForLoopInAlice.ppt
07BunnyHop.a2w
07Carousel.a2w
07FerrisWheel.a2w
07LoopWithFunctionCall.a2w
ForLoopInAlice.doc - Tues lab
Wed - create an Alice animation with at least one for loop. If you have time also add a conditional and a function.
Thursday - read the following slides and finish the code for 07Chase.a2w - turn in the compeleted world
07-AliceWhileLoop.ppt
07Chase.a2w

8th week
What is a function in Alice? How do you create your own function in Alice? What is a conditional?
We didn't finish all the labs from chapter 5 yet so we will review what you have learned on Monday and then let you continue with Friday's lab. If any of you have finished Fridays lab you can create a movie poster for your Alice movie using what you learned in chapter 5 or you can create a comic panel (one picture with text).
Reading: Chapter 6
06-Functions and Conditionals in Alice.ppt
CreatingFunctionsInAlice.doc - Wednesday
06ToyballOverNet-V1.a2w
06ToyballRoll-V1.a2w
ConditionalsInAlice.doc - Thursday

7th week
What is a class method in Java? How do you invoke a class method in Java? How to declare object variables and primitive variables in Java? What are some string methods in Java? How do you add comments to Java methods? How do you use the Java API? How to use the Java API to do simple and complex drawing in Java? How does Java handle inheritance? What is an interface?
Reading: Chapter 5 in Exploring Wonderland: Java Programming Using Alice and Media Computation
Assignment: Create a movie poster for an Alice movie using the drawing methods in Java.
Java Documentation is at http://java.sun.com/javase/6/docs/api/
05-Drawing-Turtle-and-AWT.ppt
PicturesStringsAndDrawingLab.doc - Monday
UsingGraphicsLab.doc - Thursday
DrawingStringsLab.doc - Wednesday
AdvancedDrawingLab.doc - Friday

6th week
Since we didn't have Java and DrJava installed last week we are a bit behind. We will cover the rest of the material from week 5 this week and also do an introduction to GridWorld. There will be a test on Friday. The test will cover everything you have learned so far: program, algorithm, sequential execution, parallel execution, number systems and conversions between number systems, creating methods in Alice, adding parameters to methods in Alice, declaring variables in Java, creating methods in Java, adding parameters to methods in Java, the main method, and part 1 of GridWorld.
Reading: Chapter 4 in Exploring Wonderland.
Reading: Part 1 in the student manual for GridWorld. The GridWorld student manual is at http://apcentral.collegeboard.com/apc/public/courses/teachers_corner/151155.html
04-Intro-Object-Oriented-In-Java.ppt
IntroWorldTurtleLab.doc Monday lab
JavaMethodsLabv2.doc Tues lab
GridWorldPart1.doc Wed lab
ReviewSheet-1.doc for the test on Friday
Friday test: TEST-2

In the fifth week we will finish the presetations of the group Alice projects and then start the transition to Java. There is a short lab on Java on Tuesday (teachers can get the lab on the Tea Party website - Introduction to Java Lab.doc
). On Wed there will be a lecture/lab on creating objects in Java and how to invoke methods in Java (slides 1-25). On Thursday each student will need to use the turtles to draw his or her initials (see slide 26-28). On Friday there will be a lecture/lab on creating methods in Java and passing parameters to methods in Java (slides 29-end). See http://home.cc.gatech.edu/TeaParty/43 for installation instructions for Java, DrJava, and Media Comptuation. You can also try out Java code at http://sandbox.fangengine.org/index.php/Console
Reading: Chapter 4 in Exploring Wonderland.
04-Intro-Object-Oriented-In-Java.ppt

In the fourth week will we review the test from Wed and the students will continue to work in groups on their Alice movies. The movies are due Wed and each team will present what they have been doing and answer questions from the class. On Friday we will have an introduction to Java and get DrJava set-up for next week.
Reading: Appendix A, Chapter 1-3 in Exploring Wonderland: Java Programming Using Alice and Media Computation

The third week the main questions are: How do you convert binary to octal or hex? How do you convert from octal or hex to binary? What is a storyboard? How do you turn a storyboard into a program? How do you work with subparts in Alice? How do you add comments to your Alice methods? We will have a test on Wed. On Tues we reviewed the number conversions and broke them into teams of 3 and they have to create a textual storyboard for their group project. The group project must have at least 2-3 subclasses that have at least 2 methods each. On Thursday they will work on the group project.
03-AnimationStoryboardToCode.ppt
BinaryOctalHex.doc
Wed test: TestNumberSysIntroOO

The second week the main questions are: What is object-oriented programming? What is a class? What is an object? How do you get objects to do something? What is a method? What is sequential execution? What is parallel execution? How do you create a method in Alice? How do you pass values to a method (parameters and arguments)? What is a subclass?
Here are the slides for this week. You should also read chapter 1 of the Alice book on google books. In lab on Tues and Thurs they will create Alice worlds. On Tues they will create an Alice world with at least 3 objects from 3 different classes and call at least 3 different methods. They should also use at least one Do Together. They should also try out the mouse controls for positioning an object. On Thursday they should work on creating at least two methods and passing at least two different values to the methods.
01-Intro-Object-Oriented-Prog-Alice.ppt
02-AliceBeyondBasics.ppt

The first week the main questions were: What is computer science? What do computer scientist do? What is a computer? What do computers understand? What is a binary number (CS Unplugged activity http://csunplugged.org/~csunplug/binary-numbers and counting with the fingers on one hand)? What is an algorithm? What is a program? What is a programming language?
Slides from first week Intro-Computers-Prog-Ch1-students.ppt
On-line game for practicing binary to decimal and decimal to binary http://forums.cisco.com/CertCom/game/binary_game_page.htm
Hexadecimal values for html colors are at http://www.webmonkey.com/reference/Color_Charts
More information on Octal is at http://en.wikipedia.org/wiki/Octal
More information on Hexadecimal is at http://en.wikipedia.org/wiki/Hexadecimal
In class quiz for number conversion with decimal, binary, octal, and hexadecimal.
http://uk1.hotpotatoes.net/ex/45273/HWIZRXBU.php
Here is a summary on how to do number conversions with decimal, binary, octal, and hexadecimal.
Number Conversions.doc