## Saturday, March 21, 2015

### Teaching Math 5H: UNIT08 Quarter III Weeks 3-6 DiffEqus! 02/23/15-03/20/15

Teaching Math 5H:
UNIT08
Quarter III Weeks 3-6 DiffEqus!
02/23/15-03/20/15
These past 4 weeks have all been about Variable Separable Differential Equations. We talked about solving DiffEqus Graphically using Slope Fields, Numerically with Euler's Method and Analytically using advanced integration techniques! So, we also focused on Integration By Parts and Partial Fractions Decomposition as well as other anti-derivative quotient rules involving ln(x), arcsin(x) and arctan(x). Have a look at all our new TI nSpire CX CAS based ScreenCasts below finishing UNIT07 and covering all of UNIT08. We pushed the UNIT08 preTest and Test to Monday and Tuesday next week.

All of March: Vi Hart Channel and PI Day!

NEW AP Calculus BC + nSpire
SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching Math 5H:
UNIT07
Quarter III Weeks 1-2 Exponentials!
02/02/15-02/13/15
The first 2 weeks of Quarter III focused on derivatives and anti-derivatives involving e^x and ln(x). Firstly, however, we had a lesson on measuring work when the Force is not constant!

All of February: 15mins/week

NEW AP Calculus BC + nSpire
SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching Math 5H:
UNIT06
Quarter II Weeks 7-10 More Applications!
01/05/15-01/30/15
This post is mostly about weeks 7&8. Week 9 was all about review for MidTerms and in-class Midterms. Week 10 was for formal Midterms and NYS Regents Exams so we had no classes! During Weeks 7&8 we finished up Unit 6 all about Applications of the AntiDerivative: Area, Volume, Arc Length and Surface Area as well as Variable Separable Diff Equs (see below).

Week7: Phil Plait and Apophos
Week8: Michio Kaku and Extinction
Week9: Carl Sagan's "Pale Blue Dot"

NEW AP Calculus BC + nSpire
SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching Math 5H:
UNIT06
Quarter II Weeks 4&6 Applications!
12/01/14-12/19/14
OK, you can't make me blog about Week 3 (11/24-11/28) since it was a 2 day week right before Thanksgiving Break. Monday we had tests and Tuesday was a make up day. Actually, Monday was also a make up lab day for APCS.

Also, I'm not blogging about Week 5 (12/08-12/12) since I focused on telling the whole school about the #HourOfCode! So, my regular classes just had a lot of review sheets.

Finally, I'm not blogging about Week 7 (12/22-12/26) since it's also a 2 day week before XMas Break! Monday we have tests and Tuesday is preCalculus and Calculus Carols plus a game day in APCS. Monday is also a make up day for APCS.

So, what am I blogging about? Well, I'll let the YouTube ScreenCasts speak for themselves. Suffice it to say that we completed all of UNIT05 about AntiDerivatives and started UNIT06 about Applications of AntiDerivatives!

Week4: #HourOfCode!
Week6: preCalc and Calculus Carols!

NEW AP Calculus BC + nSpire
SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching Math 5H:
UNIT05
Quarter II Weeks 1&2 AntiDerivatives!
11/10/14-11/21/14
Yeah, Quarter II has begun! After playing with some TI nSpire BASIC programming, we did a lot of LSUM, RSUM, TRAPSUM and ERRORTRAP as well as MIDSUM and SIMPSUM! Now we're working on Definite vs. Indefinite Integrals. Our last topic in this unit will by U-Substitution next week.

Don't forget to start rehearsals!

Since we're doing Conic Sections and Planet Orbits in preCalculus, it's time for our Astronomy related YouTubes! We had 2 guest speakers talk about the Asteroid Apophos and its flyby in 2029!
Week1: Neil deGrasse Tyson!
Week2: Bill Nye the Science Guy?

NEW AP Calculus BC + nSpire
SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching Math 5H:
UNIT05
Quarter I Weeks 9&10 AntiDerivatives!
10/27/14-11/07/14
Yeah, Quarter I is done! We finally finished Applications of the Derivative with Related Rates. Then we started AntiDerivatives! After playing with AntiDerivatives and DiffEqus analytically, we started to evaluate some Riemann Sums arithmetically by hand. Soon, we're going to program the TI nSpire CX CAS to do them for us! We are about to write LRTE and MTSE. LRTE will output LSUM, RSUM, TRAPSUM and ERRORTRAP. MTSE will add MIDSUM and SIMPSUM!

Since we're doing Conic Sections and Planet Orbits in preCalculus, it's time for our Astronomy related YouTubes! We started by talking about really big and really small numbers and metric prefixes.
Week9: NEW Powers of Ten.
Week10: Original Powers of Ten.

NEW AP Calculus BC + nSpire
SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching Math 5H:
UNIT04
Quarter I Weeks 7&8 Applications!
10/13/2014 - 10/24/2014
In UNIT04 we turn our attention to the Applications of the Derivative. We developed the ideas behind Rolle's Theorem and the Mean Value Theorem as well as Optimization problems! We also learned how to program the TI nSpire CX CAS with TI-BASIC. We wrote a program to solve Quadratic Equations for practice. Then we wrote a function for Newton's Method for finding Roots!

If it's October, it's gotta be Admiral Grace Murray Hopper!
Week7: Letterman interview.
Week8: Walter Isaacson on CBS Sunday Morning (from my DVDR).

NEW AP Calculus BC + nSpire
SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching Math 5H:
UNIT03
Quarter I Weeks 5&6 Differentiation Rules!
9/29/2014 - 10/10/2014
During these past couple of weeks we finished UNIT03 covering the Product, Quotient and Chain Rules. We finished by working with Implicit Differentiation. UNIT04 will cover applications of differentiation including the use of Implicit Differentiation in Related Rates problems. We'll also cover optimization!

If it's October, it's gotta be Admiral Grace Murray Hopper!
Week5: CBS Rewind 60 Minutes interview.
Week6: Full interview on DVD.

NEW AP Calculus BC + nSpire
SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching Math 5H:
UNIT03
Quarter I Weeks 3&4 Differentiation Rules!
9/15/2014 - 9/26/2014
OK, let me go back to my weekly or biweekly summaries. The day by day summary is too time consuming to write and I think too tedious to read! So, this will be a 2 week
summary as this past week was quite short
(Thursday and Friday was Rosh Hashanah).

We finished UNIT02 on Limits and Continuity. Then we started UNIT03 on the Algebraic Rules of Differentiation. I think you will get a lot out of our new ScreenCasts (see below) featuring the TI nSpire CX CAS!

We also celebrated "The Great TI NSPIRE UnBoxing of 2014!" We unboxed and distributed 22 out of the 24 nSpires that were donated to our class. I'm still waiting on some calculator rental forms to give out the remaining 2 GCs. BTW, these are not really rental forms as no one pays a dime until the end of the year if the GC is lost or damaged (like a book card really). We are also waiting for a our DonorsChoose Project to be funded to get another 14 GCs! So, over the past several years we've upgraded our emulators from Hal and Colossus (VTI-83/89 and TIEMU-89) to Castiel (KARMTI-nSpire)!

If it's September, it's gotta be Tom Lehrer!
Week3: Elements ala SheldonPotter not to mention Gilbert and Sullivan?
Week4: Lobachevsky channeling Danny Kaye!

NEW AP Calculus BC + nSpire SCREENCASTS
YouTube desciptions include links to handouts and notes if you need them.

Here's an oldie but goodie featuring the TI-89. I was sick last week and could not re-record this ScreenCast, sorry.

OK, I just recorded a new version of 302!

Teaching Math 5H:
UNIT02
Quarter I Week 2 Limits and Continuity!
9/8/2014 - 9/12/2014
MONDAYLesson 107 Functions vs Relations
We talked about graphing General Form Conic Sections by Completing The Square and using Polar Notation!

TUESDAYLesson 201 1-Sided Limits

Now we look at Limits at Infinity and limits on either side of points of discontinuity.

WEDNESDAYLesson 202 Continuity

Now we define Continuity and use the Intermediate Value Theorem. BTW, if it's September, YouTube Wednesday must include Tom Lehrer's New Math!

THURSDAYLesson 202 Continuity

Nothing new today, we just went over the homework in groups on our mini marker boards from http://whiteboardsusa.com

FRIDAYLesson 203 Definition of f'(x)

Finally, we defined the Derivative as the limit of the secant line slopes!

NEW AP Calculus BC + nSpire SCREENCASTS

YouTube desciptions include links to handouts and notes if you need them.

TECHNOTE:
If you are having trouble running KARMTI at home, you may need to reinstall the OS. Enter this line:
/1=boot1.img /MXC /PB=boot2.img  /PO=TI-NspireCXCAS-3.6.0.550.tcc /K4 /N /R
in
(FILE)(BOOT OPTIONS)(COMMANDLINE)

Then enter

myFlash.bin
in
(FILE)(SAVE FLASH AS)

Then enter this line:

/1=boot1.img /F=myFlash.bin /K4
in
(FILE)(BOOT OPTIONS)(COMMANDLINE)

Then do

(FILE)(EXIT)

UPDATE: You may also have to goto (FILE)(SKINS) to enable a skin!

The next time you run KARMTI, it should default to "/1=boot1.img /F=myFlash.bin /K4" using the new OS without you having to enter anything as it works in class. BTW, the new OS file "TI-NspireCXCAS-3.6.0.550.tcc" is already in the KARMTI folder I gave you. What we do in class requires OS 3.1 or greater, I'm using 3.6 OS. To get the latest TI nSPire CX CAS OS goto http://education.ti.com/en/us/home Good Luck!

Teaching Math 5H:
UNIT01+UNIT02
Quarter I Week 1 First Week Back!
9/1/2014 - 9/5/2014
I don't usually do a day by day rundown of the week, but here goes nothing!

MONDAY: Labor Day (nothing to report)

TUESDAY: Superintendent's Conferences where we spent all day in meetings except for the last 2 hours of the day when we finally got to set up our rooms. I spent those 2 hours moving 100 textbooks, arranging and tweeking 25 PCs, finding 25 chairs and placing 6 tables. Then I found that my SSH server's RAID drive crashed, so I had to setup openSSH on an alternate server I used to have for FTP. That's OK since I don't need the FTP server much anymore. I use the SSH sever for my AP Computer Science students to login from home and finish their Java projects. I share files with my students through Edmodo. I upload my files on DropBox, SageCell and YouTube aka my cloud!

WEDNESDAY: First Day of Classes

The first day of every quarter starts with the "Ceremony Of The Seats" (new seating assignments). The students come into a dark room except for the PC monitors and the SmartBoard. On the SmartBoard I'm playing an MP3 of the sound track to "A Beautiful Mind" over VLC. Since this isn't an MP4, VLC adds some wild special effects on the SmartBoard so it's all cool. Then I walk to each seat and call each student using my SmartPhone as a flashlight as if I'm an usher in the Movie Theater. It's all very dramatic. Then we hand out books and book cards, go over the syllabus and fill out some biographical forms. Sorry, there's no instruction the first day of classes.
YOUTUBE: Since it was Wednesday, after all, I had to show a FILK or two! So, at the end of the period I snuck in our own student made Frozen and then the infamous Mathmaticious!

THURSDAYLesson 101 Intro to TI-nSpire

Finally, we say goodbye to Hal (TI-89) and play around with the KARMTI emulator on each PC as we don't have all our TI nSpire CX CAS Graphing Calculators from DonorsChoose as yet. The students are still trying to get some FREE Google Gift Cards from Codecademy!
TECH NOTE: I was ScreenCasting Lesson 101 from the front of the room at the SmartBoard using SmartNotebook with my USB Mic attached to the SmartBoard. This was all well and good until the keys on the emulator started sticking. So, I had to go to my PC in the back of the room to use a standard keyboard and mouse instead of the SmartBoard for input on the emulator.

FRIDAYLesson 106 Implicit Graphs

I used to do a whole UNIT1 on preCalculus Review. Now I just sneak in a few of those lessons before UNIT2 on Limits. These UNIT1 Lessons are mainly an intro to the calculator and review of a bit of Algebra and Trig. We play around with Function, Parametric, DiffEqu and Polar modes all in the first few days of class!
TECH NOTE: I was ScreenCasting Lesson 106 from the back of the room at my PC with the USB Mic attached to the PC to fix the problems I listed in the last technical note. I still had a problem late in the ScreenCast when xournal, the pen app I was using, started drawing random lines all over the SmartBoard whenever I put the stylus down on my tablet. I was using xournal instead of SmartNotebook and a DROID Tablet over WiFi instead of the SmartBoard like the old days when all I had was a PC Projector. Maybe I'll try using SmartNotebook with the Tablet on Monday to see if that's a bit better. The problem with this setup is that when I use SmartNotebook with aconv, my ScreenCaster, and SplashTop (to connect the tablet over WiFi) then SmartNotebook is a bit laggy.
UPDATE: Today is Monday and I recorded ScreenCast 107 as above. I got a lot of lag between writing with the stylus and seeing what I wrote on SmartNotebook. So, I moved every thing back up front next to the SmartBoard. I attached an extra USB keyboard and USB mouse as well as the USB Mic directly to the SmartBoard. Luckily there's 3 USB ports! So, Tuesday I'll record ScreenCast 201 from the front of the room using the SmartBoard with SmartNotebook which worked well the first day (101). When I need to use the nSpire emulator, I can now use the keyboard and mouse at the front of the room to avoid the sticky keys! Neither will I need SpalshTop nor the Tablet. I still have the standard keyboard and mouse on the teacher/smartboard PC at the back of the room.

NEW AP Calculus BC + nSpire SCREENCASTS

YouTube desciptions include links to handouts and notes if you need them.

Teaching Math 5H:
Hal Must Die - No More TI-89!
Quarter I Week 0 August Preparation
AP Calculus BC is switching gears this year. We're leaving our TI-89s behind for the first time in 20 years! We will go forth and conquer with our new TI nSpire CX CAS Graphing Calculators! We've been running project after project on Donorschoose and nearly have a class set of nSpires to loan out.

We used to call the TI-89 "Hal," hence the title of this post: Hal Must Die - No More TI-89! It shouldn't be a tough transition, however, as the 89 and the nSpire are very similar Computer Algebra Systems aka CAS. However, the nSpire has a nicer color, hi-res, bright interface and a document system to save our work. It also has the LUA programming environment, but I think we'll stick to TI-BASIC when writing programs for Calculus class!

Whenever I change textbooks or technology, I have to rerecord the course for YouTube. So, I'll record AP Calculus BC all over again with a bunch of new screencasts featuring the nSpire! This was the first course I ever recorded, so it's about time.

Here's a taste of the nSpire (not my video):

Here's a taste of the TI-89 (this is mine):

Well, that's all folks!

Sincerely,

A. Jorge Garcia
Applied Math, Physics and CS

Teaching with Technology,
mathforum apcommunity

### Teaching AP CompSci: Lab 07 Quarter III Weeks 3-6 ArrayLists! 02/23/15-03/20/15

Teaching AP CompSci:
Lab 07
Quarter III Weeks 3-6 ArrayLists!
02/23/15-03/20/15
These past 4 weeks have been devoted to ArrayLists continuing what we started in CH08 and Lab07. Recently, we also have started working with static arrays. The ScreenCasts below areprimarily about ArrayLists. The Chess960 project mixes Static Arrays and ArrayLists in one project. Currently, we are working on a new project to using 1D and 2D Static Arrays to represent Roman Numerals. I'll post those videos in the next blog post.

Another project related to arrays that we did last year instead of Roman that you may find interesting and instructive is CHess960! It has a an element of randomness and Monte Carlo Simulations in it, but its mostly about static arrays vs ArrayLists as well as 1D vs 2D arrays. What we did was generate all 960 possible starting chess game positions in Fischer Chess!

Bobby Fischer was the last American World Chess Champion and also the youngest World Champ. One day, he got tired of playing the same chess openings over and over again. So, he figured out a way to vary the way you set up the chess board before starting a game in such a way as not to affect other rules of the game and still afford easy game play.

Why is it called Chess960? Well, that's because there's:
4 ways to place a dark-square bishop
4 ways to place a light-square bishop
6 ways to place the Queen
5 ways to place Knight #1
4 ways to place Knight #2
and 1 way to place the remaining Rook-King-Rook combination.
By the counting principle, that's 4x4x6x5x4x1=1920 different boards, right? So why the 960?? Watch the screencasts below and you'll see!!!

By the time we were done, in version 2.0 of Chess960.java, we had an ArrayList with 960 randomly generated entries each of type String[8]! This data structure is therefore a 2D array (an array with arrays as elements) with 7680 single character Strings, in other words 15360 Bytes of data in one variable! Remember, the char primitive type uses 1 byte of data to represent each character in the ASCII code. However, the String class uses 2 Bytes of data to represent each character of UNICODE.

We also wrote a separate program, ChessGame.java, where we could set up a 2D static String[8][8] array to represent any random board we wanted. Then we could also play the game by moving pieces around the board. This is a very simple chess board program that does not check for legal moves and assumes that if you move a piece into an occupied square that you are capturing and removing the piece in that square! ChessGame does not allow for castling or for en-passant moves either.

Last year, after figuring out these 3 programs, we all got the chess.com app on our phones (chess.com was blocked on the school PCs) and played a Chess960 Tournament in class! I'm a US Chess Federation Local Tournament Director, so we ran the tourney according to World Championship, aka FIDE, regulations! I'm also a US Chess Federation Certified Coach and USCF rated player.

All of March, Vi Hart Channel and PI Day:

APCS: AP CompSci + JAVA SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching AP CompSci:
Lab 07
Quarter III Weeks 1-2 Arrays!
02/02/15-02/13/15
The first 2 weeks of Quarter III, before February Break, we finished Lab06 on Loops and started Lab07 on Arrays! After Lab07, I think it's finally time for the infamous New APCS Labs! We'll do Magpie, before we get to Recursion, Searches and Sorts. After break, we have a bit over 5 weeks, mostly in March, before April Break. So, we have to pour on the steam and get most of the rest of the course done before we start reviewing for the AP Exam!

We should be able to do the Picture Lab as well. I don't know about the Elevens Lab. I'm hoping to cover Inheritance and Polymorphism using these labs like we used to with GridWorld. I covered a bit on Interfaces, Inheritance and Polymorphism by writing toString(), equals() and compareTo() methods in several of our labs already. We've been talking about the Pilars of OOP for some time now:

Pilars of OOP
0) Write Self Documenting Code
0) Make use of Re-Usable Code
1) Abstraction
2) Encapsulation
3) Inheritance
4) Polymorphism
(the first 2 were added by me)

BTW, we've been reviewing for the AP Exam a bit with biweekly TakeHome Tuesdays. These take home exams focus on the Lab at hand but are great FRQ practice.

All of February, 15 min/week:

APCS: AP CompSci + JAVA SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching AP CompSci:
Lab 06
Quarter II Weeks 7-10 Iteration!
01/05/15-01/30/15
This post is mostly about weeks 7&8. Week 9 was all about review for MidTerms and in-class Midterms. Week 10 was for formal Midterms and NYS Regents Exams so we had no classes! During Weeks 7&8 we covered LAB 6 all about for loops and while loops (see below). We'll leave for each loops for the next lab on static arrays and ArrayLists.

BTW, you may have noticed that I changed my plan for this year. I went back to basics instead of doing a lot of my own case studies now that GridWorld is gone. I'm going to start the new labs with Magpie after Lab 7 on arrays. I really want to have Labs 1-7 under our wings before starting Magpie. Magpie looks deceptively simple! However, it does include objects, conditionals, loops and arrays. Magpie is not just about Strings after all!

Week7: Phil Plait and Apophos
Week8: Michio Kaku and Extinction
Week9: Carl Sagan's "Pale Blue Dot"

APCS: AP CompSci + JAVA SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching AP CompSci:
Lab 05
Quarter II Weeks 4&6 Conditionals!
12/01/14-12/19/14
OK, you can't make me blog about Week 3 (11/24-11/28) since it was a 2 day week right before Thanksgiving Break. Monday we had tests and Tuesday was a make up day. Actually, Monday was also a make up lab day for APCS.

Also, I'm not blogging about Week 5 (12/08-12/12) since I focused on telling the whole school about the #HourOfCode! So, my regular classes just had a lot of review sheets.

Finally, I'm not blogging about Week 7 (12/22-12/26) since it's also a 2 day week before XMas Break! Monday we have tests and Tuesday is preCalculus and Calculus Carols plus a game day in APCS. Monday is also a make up day for APCS.

So, what am I blogging about? Well, I'll let the YouTube ScreenCasts speak for themselves. Suffice it to say that we completed all of LAB05 about Conditional or Branching Statements, Boolean Expressions and Predicate Methods!

So, now I'm torn. After break, Week 8 (01/05/15-01/09/15), shall we start NEW APCS LAB Magpie or continue to LAB06 about Iteration? This is the time of year I used to start GridWorld.

BTW, if you've been following this blog post from the beginning of the year, you surely will have noticed that I completely shelved all my own case studies and graphics projects. Why is that? Well, I'm afraid we won't have time for all the NEW APCS LABS (Magpie, Picture and Elevens) as well as AP Review and all the basic labs we've been doing otherwise. Sorry, I think we'll play with my case studies after the AP Exam for fun....

Week4: #HourOfCode!
Week6: preCalc and Calculus Carols!

APCS: AP CompSci + JAVA SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching AP CompSci:
Lab 04
Quarter II Weeks 1&2 Data Types!
11/10/14-11/21/14
Yeah, Quarter II has begun! Over the past 2 weeks we completed Lab 04. This lab was primarily about data types. We talked about the differences between byte, int, long, float and double. We also worked with different forms of input: args, JOptionPane and Scanner. We played with finals and casting. We even used Integer.parseInt() and Double.parseDouble().

Since we're doing Conic Sections and Planet Orbits in preCalculus, it's time for our Astronomy related YouTubes! We had 2 guest speakers talk about the Asteroid Apophos and its flyby in 2029!
Week1: Neil deGrasse Tyson!
Week2: Bill Nye the Science Guy?

APCS: AP CompSci + JAVA SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching AP CompSci:
Lab 04
Quarter I Weeks 9&10 Data Types!
10/27/14-11/07/14
Yeah, Quarter I is done! We finally finished LAB03 writing our own constructors, accessors, mutators and javadoc. We also did all we could with BIN, OCT, DEC and HEX as well as Truth Tables and Circuit Diagrams! Now we start LAB04 using int, short, byte, long, float and double. We also talked about java.lang.Math!

We also discovered a YouTube kindred spirit in CS50 at Harvard. They are doing a lot of the same material we are doing except they use a virtual machine install of Fedora Linux on their MAC or WIN laptops and they start out programming in Scratch and C! We use a native installation of Ubuntu Linux on our PC Desktops and Oracle's JDK.

CS50 LECTURES:

CS50 SECTIONS:

CS50 PROBLEM SET WALKTHROUGHS:

Since we're doing Conic Sections and Planet Orbits in preCalculus, it's time for our Astronomy related YouTubes! We started by talking about really big and really small numbers and metric prefixes.
Week9: NEW Powers of Ten.
Week10: Original Powers of Ten.

APCS: AP CompSci + JAVA SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching AP CompSci:
Lab 03
Quarter I Weeks 7-8 Name That Number!
10/13/14-10/24/14
We finished Object Oriented Programming Lab03 (OOP: creating our own classes). Then we started a unit on arithmetic in bases other than 10! I call this unit "Name That Number" especially at the begining of the unit when all we do is convert to and from base 10. The students were particularly baffled when a terminating rational number in one base converted to a repeating rational number, or even an irrational number, in another base!

If it's October, it's gotta be Admiral Grace Murray Hopper!
Week7: Letterman interview.
Week8: Walter Isaacson on CBS Sunday Morning (from my DVDR).

APCS: AP CompSci + JAVA SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching AP CompSci:
Lab 03
Quarter I Weeks 5-6 Writing Classes!
9/29/14-10/10/14
During these past couple of weeks, we finished Object Based Programming Lab02 (OBP: using existing classes). Then we started Object Oriented Programming Lab03 (OOP: creating our own classes).

Many students new to programming had a hard time coming up with their own main classes to test their code. While writing their own classes, these students also had trouble deciding what to make a private instance field and making the distinction between accessors vs. mutators.

We need to practice what data to encapsulate and what behaviours to abstract in our classes. It's been a tough week for some, but it's a good learning experience that will pay off in the end!

If it's October, it's gotta be Admiral Grace Murray Hopper!
Week5: CBS Rewind 60 Minutes interview.
Week6: Full interview on DVD.

APCS: AP CompSci + JAVA SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching AP CompSci:
Lab 02
Quarter I Weeks 3-4 Using Objects!
9/15/14-9/26/14
OK, let me go back to my weekly or biweekly summaries. The day by day summary is too time consuming to write and I think too tedious to read! So, this will be a 2 week
summary as this past week was quite short
(Thursday and Friday was Rosh Hashanah).

We talked about constructing and using objects from existing classes in the Java Library such as java.awt.Rectangle, java.awt.Color, java.util.Random and java.lang.String. We mentioned constructors, accessors, mutators and immutable classes. I call this Object Based Programming (OBP). I reserve Object Oriented Programming (OOP) for when we write our own classes from scratch! I hope you are getting a lot out of our ScreenCasts with Java code attached to the YouTube descriptions.

We also talked about when to use lower-case, camelCase, ProperCase and UPPER_CASE following the Java Library conventions. Finally we reviewed our commandline: ls, cd, mkdir, rmdir, rm, top, last, who, whoami, chmod, javac, java, javadoc and appletviewer!

I think I'm changing my mind about doing my own projects or mini case studies this year. The new 20 hour triple lab component imposed by the College Board in APCS is worrying me. So, below you will find some canvas class projects with pixel graphics for your information but I'm skipping these for now. I'll revisit this decision later in the year if we find we have the time. Maybe we'll just play with pixel graphics as an after AP Exam Final Project?

If it's September, it's gotta be Tom Lehrer!
Week3: Elements ala SheldonPotter not to mention Gilbert and Sullivan?
Week4: Lobachevsky channeling Danny Kaye!

APCS: AP CompSci + JAVA SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching AP CompSci:
Lab 01
Quarter I Week 2 println() Mania!
9/8/14-9/12/14
MONDAYHello World Version #2
Last week we left off on Hello1 which is your standard HelloWorld program using only println() for output. Today we played with Hello2 adding args[0] for commandline input.

TUESDAYHello World Version #3+4

Hello3 adds JOptionPane for GUI input. As a result we had to ssh -Y userid@IP to allow a graphic ssh tunnel. Be carefull, ssh in class works the same as ssh at home on a Linux or Mac box. If you are using putty in Windows, you can't do any graphics. Hello4 was about doing the same thing with JApplet!

WEDNESDAYLab 01 - C1X1+C1X2

We finally started Lab 01 which is everything you wanted to do with a println() in a main() method but were afraid to try! I modeled C1X1 (Chapter 1 Exercise 1) and the students tried to complete C1X2 in groups. C1X1 had us use "ASCII Graphics" to print out our names in a box. C1X2 was about printing out a face pattern. Of course, YouTube Wednesday would not be complete without Tom Lerher's "New Math" after which we discussed base 8 in great detail!

THURSDAYLab 01 - C1X3+C1X4

C1X3 had use output an ASCII version of a TicTacToe Board. C1X4 was similar but we had to produce a staircase pattern.

FRIDAYPop Goes the Quzzie!

We refined the Quizzie and took it for real this time:

APCS: AP CompSci + JAVA SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching AP CompSci:
HelloWorld
Quarter I Week 1 First Week Back!
9/1/14-9/5/14
I don't usually do a day by day rundown of the week, but here goes nothing!

MONDAY: Labor Day (nothing to report)

TUESDAY: Superintendent's Conferences where we spent all day in meetings except for the last 2 hours of the day when we finally got to set up our rooms. I spent those 2 hours moving 100 textbooks, arranging and tweeking 25 PCs, finding 25 chairs and placing 6 tables. Then I found that my SSH server's RAID drive crashed, so I had to setup openSSH on an alternate server I used to have for FTP. That's OK since I don't need the FTP server much anymore. I use the SSH sever for my AP Computer Science students to login from home and finish their Java projects. I share files with my students through Edmodo. I upload my files on DropBox, SageCell and YouTube aka my cloud!

WEDNESDAY: First Day of Classes

The first day of every quarter starts with the "Ceremony Of The Seats" (new seating assignments). The students come into a dark room except for the PC monitors and the SmartBoard. On the SmartBoard I'm playing an MP3 of the sound track to "A Beautiful Mind" over VLC. Since this isn't an MP4, VLC adds some wild special effects on the SmartBoard so it's all cool. Then I walk to each seat and call each student using my SmartPhone as a flashlight as if I'm an usher in the Movie Theater. It's all very dramatic. Then we hand out books and book cards, go over the syllabus and fill out some biographical forms. Sorry, there's no instruction the first day of classes.
YOUTUBE: Since it was Wednesday, after all, I had to show a FILK or two! So, at the end of the period I snuck in our own student made Frozen and then the infamous Mathmaticious!

THURSDAYHello World Version #1

Of course, I had to start with Hello World! This version simply uses println for output. The next version will add args[0] commandline input! We are using a basic Linux Shell or Terminal with a text or ASCII Editor along with jdk 1.6's java and javac utilities. I'll introduce appletviewer next week and javadoc in chapter 3 when we write our own classes.

FRIDAYPop Goes the Quzzie!

I know it's only the 3rd day of class. However, I did throw a lot of acronyms and jargon at my students already, so here's the quiz. I hope you know all the answers. Let me just do these fill-ins for you:

PARTC: MrG has been teaching

1010) PROGRAMMING since 1975
1011) NYS REGENTS MATH & SCI since 1984
1100) COLLEGE MATH & COMP since 1993
1101) LINUX CLUSTERS since 2002
1110) COMP ALG SYSTEMS since 2011
1111) IDK! since 2020
APCS: AP CompSci + JAVA SCREENCASTS
YouTube descriptions include links to code and notes if you need them.

Teaching AP CompSci:
APCS NEW LAB DEBATE!
Quarter I Week 0 August Preparation
I started getting ready for the new AP Computer Science 20 hour lab requirement that's replacing the GridWorld Case Study using the 3 New Labs some time ago. If I recall correctly, all I had to do was goto the secure documents area of the APCommunity Teacher Audit site and download 3 zip files. Before downloading said files I had to click on some sort of acknowledgement pop up about using these labs or similar labs of my own design as part of the 20 hour requirement, that these files are indeed secure (ie: not to be posted publically) and that GridWorld is gone!

If that's all you think that you have to do for your students, I'd say that you're missing the point! The new requirement is to have at least 20 hours of lab time as part of your course. I don't think that's going to be a problem for most of us currently teaching APCS as I'm sure we probably provide more than 20 hours of lab time already. I know that I have lab time as part of every single class (that's why I teach in a PC Lab/Classroom). In 150 classes before AP Review and AP Exam Week, I probably have 100 hours of lab time! I can go many classes in a row without any formal lecture if we are in the throws of a particularly challenging problem set. I usually do a brief lecture at the beginning of a chapter. Then I give the students a pdf of the chapter to study at home privately via Edmodo or DropBox. Then I give my students a problem set for the chapter to hash out "together" (ie: in pairs but I help out at each PC or at the SmartBoard).

Now, if the 20 hours really means 20x60 minutes and not 20 periods, then the new requirement is more like 30 periods if your periods are 40 minutes long. So, if you did the New Labs all in a row, we're talking, for example, all of January and most of February.

When I heard of the demise of GridWorld, I was very happy as I could finally go back to using my own smaller "case studies" or projects that I never had time to do since the advent of College Board imposed Case Studies. I would only be able to do 1 or 2 of my own projects and varied them each year. I guess I'm a throw back to the time before AP Case Studies. Yes, there was such a time, and I enjoyed teaching that way.

Now the problem is to be able to cover the same material presented in the New Labs in those 20 hours. I was going to do my own thing or even just stick to GridWorld for a while. But now that I see the labs, I think my students may well enjoy this approach. I'll probably do a mix of a few of my own projects with the New Labs and the old problem sets from our textbook.

I've read the articles on http://www.skylit.com (Maria and Gary Litvin) as well as on http://www.bluepelicanjava.com (Charles Cook) regarding the use of the 3 Labs. Gary makes the case that the New Labs will take too much class time to cover thoroughly. Charles talks about reorganizing the labs into 17-23 hours of class time to cover them all. BluePelicanJava includes a lot of APCS B aka CS II, so I guess we can cut some of that! I was originally 100% with Gary, but now I think I'm somewhere between the two.

http://www.apluscompsci.com (Stacey Armstrong) even has a College Board approved syllabus with the New Labs integrated throughout the year. So, I guess she's on board too.

I haven't heard much from Cay Horstmann, or anyone else for that mater, on this subject.

You know, when we used to teach C++ in AP Computer Science, I used Gary Litvin's C++ for You++ as well as Owen Astrachan's Tapestry. Both of these C++ texts were masterpieces in my opinion!

Now, I use Gary's "MP3: Mathematics for the Digital Age and Programming in Python 3.0" in my intro CS class and Cay's Big Java in APCS A aka CS I. I wonder what Owen has to say about the New Labs. He's probably too busy developing the new AP CS Principles course to weigh in on this. BTW, these two texts are masterworks as well! Keep up the good work!

Am I going to be able to fit in every single exercise from all 3 Labs the first year? Probably not, but I think I'll try to fit as much in as I can. As with everything else, it comes down to experience. WRT to the 3 Labs we are all NOOBS again, so this year we can do justice to some of the Labs, next year a bit more, then eventually we'll get it down.

On a related note, if I had decided NOT to use the New Labs and substitute my own projects covering the same concepts, would I have had to resubmit my APCS Syllabus for audit? I was never clear on this point. I suppose it's moot now as I'm using the New Labs.

If you want ideas for your own projects, I like to use the StdDraw class from Princeton CS 126. I've also used How To Think Like A Computer Scientist in my intro course using Python. Some of the projects in there could easily be done with Java. Here's some nice lab ideas from the awesome Roger Frank!

Given enough time (obviously can't do all this but I wish I could), here's what I'm thinking:

CH1: Hello World
(main, println, basic IO)
CH2: Using Objects
(from existing classes)
CH3: Implementing Classes
(our own constructors, accessors, mutators)
CH4: Fundamental Data Types
(Objects vs Primitives)
CH6: Decisions
(if statements, boolean expressions)
CH7: Iteration
(for loops, while loops, for each loops)

**MAGPIE LAB**

PROJECT: RockPaperScissorsLizardSpock (IF)

PROJECT: ROT13 Encryption (Strings)
PROJECT: Lindenmayer Systems (Strings)
PROJECT: Pythagorean Triples (Loops)
PROJECT: Function Graphing Calculator
PROJECT: Parametric Graphing Calculator
PROJECT: Polar Graphing Calculator

CH8: Arrays and ArrayLists

(1D and 2D static arrays, Lists)

**PICTURE LAB** skip optionals

PROJECT: Polygons and ShoeLace

PROJECT: Iterated Fractal Systems
PROJECT: Number Base Conversions
PROJECT: Roman Numeral Arithmentic
PROJECT: Chess960 and Random Numbers
PROJECT: Complex and Mandelbrot

CH11: Interfaces and Polymorphism

CH13: Inheritance

**ELEVENS LAB** skip optionals except sim

CH18: Recursion

CH19: Sorting and Searching
PROJECT: Turtle Class
PROJECT: Turtle Class+Lindenmayer
PROJECT: Turtle Class+Koch SnowFlakes
PROJECT: Turtle Class+Ball/Ballistics
PROJECT: Turtle Class+nBody/Orbits
PROJECT: Our own Static Math Class

AP REVIEW

AP EXAMS
POST AP EXAMS:
Linux Clusters, MPI4PY
Python, VPython, Cython
SAGE, POVRAY, BLENDER, TACHYON

Python Samples to convert to Java projects:

Java Samples:

VPython Sample:

SAGE Samples:

(4 video playlist)

Clusters and Scientific Computing Samples:

(6 video playlist)

Well, that's all folks!

Sincerely,

A. Jorge Garcia
Applied Math, Physics and CS

Teaching with Technology,