Saturday, October 29, 2011

School Week 8: ScreenCasts, SmartNotes and Code, oh my!

AP Computer Science continued Chapter 4 on the static java.lang.Math class (sqrt(), pow(), min(), max(), abs()) and the immutable java.lang.String class (length(), substring()). We also talked about the differences between ints, doubles and Strings. We used java.util.Scanner for input and javadoc to document our methods. We'll start Lab 4 next week.
APCS Chapter 4 Exercise 13

APCS Chapter 4 Exercise 17

APCS Chapter 4 Exercise 18

Computer Math finished Chapter 3 on Pythonic Functions and is working on Lab 3. Chapter 4 is on Sequences, Series and loops is coming soon!
CM 305 Functional Arguments

Calculus Research Lab started Chapter 3 about the Definition of the Derivative as the limit of the Difference Quotient! Lab 3.8 starts on Monday. So, we're back to a YouTube Wednesday week.

CRL 308 Derivative Defined

AP Calculus BC practiced FRQs related to implicit differentiation, optimization and related rates. Then we had a test on FRQ Friday! We have our second MCQ Monday this coming week. Last time it was 20 questions from a Part IA without a Graphing Calculator. This time it'll be 14 questions from a Part IB with a Graphing Calculator. Unit 5 introducing Integrals starts Tuesday.
MCQ 2003 AB Part IA

BC 408 Optimization

BC 410 Related Rates

PreCalculus for Seniors finished Chapter 4 with a section on Quadratic Inequalities. Then we had a test on FRQ Friday! Chapter 5 using Inverse Functions to solve equations analytically starts on Monday.

PRE 404 Quadratic Inequalities

HTH, I hope you enjoyed this week's notes!

Learning with Technology, 

Tuesday, October 25, 2011

Computing YouTube Wednesdays are back!

I tried Tuesdays for a while, but I really missed my good old YouTube Wednesdays! So, just for fun, I thought I'd share some of my most recent YouTubes. On these Wednesdays, I try to show different YouTubes in Math class as opposed to Computing classes. I have 1 section each of Computer Math, Calculus Research Lab and AP Computer Science. What follows are YouTubes I've been sharing with those classes. In fact, we managed a theme of "Grace Hopper" related videos though out the entire 1st Quarter of this school year! We started with "Lin vs Win vs Mac" videos, but then we went right into Admiral Hopper videos such as: "60 Minutes Interview #1," "60 Minutes Interview #2," Tom Lehrer's "Santa Monica" (since it was Roshashana), "Who is Ada Lovelace," "Hopper Biographer," and "Hopper on Letterman."

Well, that's all folks!

Teaching with Technology, 

Sunday, October 23, 2011

School Week 7: ScreenCasts, SmartNotes and Code, oh my!

This week AP Computer Science started Chapter 4 on the static java.lang.Math class. We spent most of the week in AP Calculus BC talking about Newton's Method and programming the TI-89 Graphing Calculator. PreCalculus was studying Real and Complex Zeros of Polynomial Functions with all Real Coefficients. Computer Math is still investigating Python Functions with and without parameters, with and without return statements. Calculus Research Lab spent all week on Lab 2.13 regarding Limits.

APCS Chapter 4 Exercise 3

APCS Chapter 4 Exercise 8

APCS Chapter 4 Exercise 10

BC Calc Unit 405 Newton's Method

BC Calc Unit 406 Programming TI-89 Quadratic Formula 

BC Calc Unit 407 Programming TI-89 Newton's Method 

preCalc ScreenCast 402 Real Roots

preCalc ScreenCast 403 Complex Zeros

Computer Math 302 Variables

Computer Math 304 Functions

HTH, I hope you enjoyed this week's materials!

Learning with Technology, 

Saturday, October 22, 2011

Move over YouTube Wednesday! Here comes Ted Tuesday!

I am known for my YouTube Wednesdays at school. I like to break up the monotony once a week with a short video from YouTube at least remotely related to what we are learning at the time. There are many educational and funny videos on YouTube that lend themselves to this treatment. Its great when such a  video sparks a discussion in class! 

This year, for the first time, I have a class that meets every other day. Calculus Research Lab misses out on YouTube Wednesdays when they meet on Tuesdays. So, I started showing videos. Ted videos are very informative and engaging and are by professionals in their fields talking about their research. I have only shown a few (see below) related to technology or science. The last Ted video below is linked from YouTube as there was no share button.

The very last video listed below is not actually a Ted video. This video is from which has similar posts. IgniteShow also airs videos on BBC TV.

Teaching with Technology, 

Sunday, October 16, 2011

School Week 6: ScreenCasts, SmartNotes and Code, oh my!

This week Computer Math/Discrete Math with python on SAGE (CM) finished Chapter 2 on python functions and started a lab. Calculus Research Lab/Scientific Computing with CAS on SAGE (CRL) finished Chapter 2 on limits and started a lab. AP Computer Science (APCS) finished Chapter 3 on designing simple classes and started a lab. PreCalculus with TI83 (preCalc) started chapter 4 on real and complex roots for polynomial functions with all real coefficients. AP Calculus BC with TI89 (CalcBC) started Chapter 4 on optimization.

preCalc ScreenCast 401 Real Zeros
preCalc ScreenCast 402 Complex Numbers

APCS ScreenCast C3X9

APCS ScreenCast C3X9a

CalcBC ScreenCast 401 Sequence Mode

CalcBC ScreenCast 402 f' and f" Tests

CalcBC ScreenCast 403 Mean Value Theorem

CalcBC ScreenCast 404 Min Max Theorem

preCalculus 401 Real Roots
Calculus 401 Sequences Series TI89

View more documents from A Jorge Garcia
Calculus 402 Extrema First and Second Derivative Tests

View more documents from A Jorge Garcia
CM Code 2.4 python functions
CRL Code 2.13 odd exercises on limits Code C3X9

APCS Code C3X9

HTH, I hope you enjoyed this week's materials!

Learning with Technology, 

Saturday, October 15, 2011

CIS(theta) 2011-2012 - Public Keys! - Meeting IV

The following is a summary of what we've accomplished so far with the 2011-2012 CIS(theta) team. The Shadowfax Cluster is coming along quite well. We have a nice base OS in 64bit Ubuntu 11.04 Natty Narwhal Desktop on top of our AMD dualcore Athlons and gigE LAN. The Unity Desktop isn't that different from the Gnome Desktop we've been using these past few years on Fedora and Ubuntu. Natty is proving very user friendly and easy to maintain! This past week we installed openSSH on a testbed of 4 Linux Boxes and we enabled public-key authenticated ssh as detailed below. Next meeting, we'll install openMPI and we'll use flops.f to stress our mini 8-core cluster! BTW, we need public keys so openMPI can scatter/gather cluster jobs without the overhead of logging into each node as needed. We created a new user common to all nodes called "jobs" in honor of Steve Jobs. The cluster user can simply log into one node and be logged into all nodes at once! We started step 4 as listed below by installing openSSH and enabling public-key authentication. We'll finish step 4 next time by installing and testing openMPI. Maybe we'll rename it step 5?
InstantCluster Step 1: Infrastructure
Make sure your cores have enough ventilation. The room has to have powerful air conditioning too. These two factors may seem trivial but will become crucial when running the entire cluster for extended periods of time! Also, you need to have enough electrical power, preferably with the cabling out of the way, to run all cores simultaneously. Don't forget to do the same with all your Ethernet cabling. We have CAT6E cables to support our gigE Ethernet cards and switches. We are lucky that this step was taken care of for us already!

InstantCluster Step 2: Hardware
You need up to date Ethernet switches plus Ethernet cards and cores as well as plenty of RAM in each Linux box. As stated above, our gigE LAN and switches were already setup for us. Also, we have 64bit dual-core AMD Athlons and our HP boxes have 750 MB of RAM. I'd rather 1 or 2 GB of RAM, but that will have to wait for an upgrade!

InstantCluster Step 3: Firmware
We wasted way too much time last year trying out all kinds of Linux distros looking for a good 64bit base for our cluster. This year we spent way too much time testing out different liveCD distros. Recently, we downgraded from 64bit Ubuntu 10.04 Desktop edition to the 32bit version on our Linux partitions. 64bit gives us access to more RAM and a larger maxint, but was proving to be a pain to maintain. Just to name one problem, jre and flash were hard to install and update on FireFox. Last year we tried Fedora, Rocks, Oscar, CentOS, Scientific Linux and, finally, Ubuntu. 32bit Ubuntu has proven very easy to use and maintain, so I think we'll stick with it for the cluster! We've done this several times over the years using everything from Slakware and KNOPPIX to Fedora and Ubuntu!

InstantCluster Step 4: Software Stack
On top of Ubuntu we need to add openSSH, public-key authentication and openMPI. In step 6 we can discuss an application to scatter/gather over the cluster whether it be graphical (fractals, povray, blender, openGL, animations) or number crunching (C++ or python app for Mersenne Primes or Beal's Conjecture). So, what follows is a summary of what we did to get up to plublic-key authentication. This summary is based on the link listed below. First, we installed openSSH-server from using the proxy server, then:
  1. If you have no .ssh directory in your home directory, ssh to some other machine in the lab; then Ctrl-d to close the connection, creating .ssh and some related files. 
  2. From your home directory, make .ssh secure by entering:
    chmod 700 .ssh
  3. Next, make .ssh your working directory by entering:
    cd .ssh
  4. To list/view the contents of the directory, enter:
    ls -a [we used ls -l]
  5. To generate your public and private keys, enter:
    ssh-keygen -t rsa
    The first prompt is for the name of the file in which your private key will be stored; press Enter to accept the default name (id_rsa).The next two prompts are for the password you want, and since we are trying to avoid entering passwords, just press Enter at both prompts, returning you to the system prompt.
  6. To compare the previous output of ls and see what new files have been created, enter:
    ls -a [we used ls -l]
    You should see id_rsa containing your private key, and containing your public key.
  7. To make your public key the only thing needed for you to ssh to a different machine, enter:
    cat >> authorized_keys
    [The Linux boxes on our LAN, soon to be cluster, have IPs ranging from to So, we copied each file to temp01-temp24 and uploaded these 
    files via ssh to the teacher station. Then we just ran cat tempnn >> authorized_keys 
    for each temp file to generate one master authorized_keys file for all nodes that we could 
    just download to each node's .ssh dir.]
  8. [optional] To make it so that only you can read or write the file containing your private key, enter:
    chmod 600 id_rsa
  9. [optional] To make it so that only you can read or write the file containing your authorized keys, enter:
    chmod 600 authorized_keys
    What we are researching II 
    (look what other people are doing with MPI):
    MPI intro, nice!
    Sample MPI code
    What we are researching I 
    (look what this school did in the 80s and 90s): 
    Thomas Jefferson High courses
    Thomas Jefferson High paper
    Thomas Jefferson High ftp
    Thomas Jefferson High teacher
    Today's Topic:
    CIS(theta) 2011-2012 - Public Keys! - Meeting IV
    Today's Attendance:
    CIS(theta) 2011-2012: GeorgeA, GrahamS, KennyK, LucasE
    Today's Reading:
    Chapter 2 Building Parallel Programs (BPP) using clusters and parallelJava
    Well, that's all folks, enjoy!