Scientific Computing
Science, Technology, Engineering, Arts & Math
Teaching & Learning Math & Science with Technology:
Graphing Calculators, Numerical Methods, Computer Algebra Systems & Linux Clusters

Why Shadowfax? Our cluster is so fast that we named it after the Lord Of The Rings character!

Website once known as http://CalcPage.tripod.com (1988 – 2008)

December 9th was Grace Hopper's birthday and the Hour Of Code! So, we revisited Grace Hopper and Ada Lovelace. We were also practicing preCalculus and Calculus Carols which are the beat math filks ever.

This month I covered Conic Sections and Planet Orbits in preCalculus class. So, Youtube Wednesday saw several Astronomers as Guest Speakers. We have several Guest Speakers and Documentaries though out the year.

Neil DeGrasse Tyson

Bill Nye

Phil Plait

Carl Sagan

October YouTube Wednesdays!

October is devoted to one of my all time inspirations: Admiral Grace Murray Hopper.

We continued CH6: Applications of the AntiDerivative! We focused on Volumes of Revolution with horizontal and vertical strips: Disk, Washer, Shell. Of course, Friday was Calculus Caroling Day!

Quarter II Weeks 4&5: 12/2-12/13

We started CH6: Applications of the AntiDerivative! We focused on the Betty Sue problem and the importance of adding a constant C. We talked about horizontal and vertical strips in our Riemann Statements for finding area between curves and Volumes of Revolution.

UNIT 6 Applications of AntiDerivatives:

Quarter II Week 3: 11/25-11/29

This week we continued our discussion of AntiDerivatives by introducing The Fundamental Theorem Parts I and II! We went over a MCQ Monday on Monday and did the Fundamental Theorem on Tuesday. This was a short week due to Thanksgiving, so we had GAMEDAY on Wednesday. Fun was had by all!

Since we were covering Indefinite Integrals this week, we had to do the Betty Sue FRQ and sing the song!

Also, next week is December already, so we start practising our preCalculus and Calculus Carols!

Quarter II Week 2: 11/18-11/22

This week we continued our discussion of AntiDerivatives and Riemann Sums! We focused on Scientific Computing. IE: we wrote programs in TI89 BASIC demostrating the Numerical Methods for definite integration: LSUM, RSUM, MSUM, TRAP and SIMP!

Quarter II Week 1: 11/11-11/15

This week was all about AntiDerivatives and Riemann Sums! We talked about Right Riemann Sums as exact limits. Next week we'll have to right some TI89 code! We also started talking about solving Variable Separable Differential Equations.

UNIT 5 AntiDerivatives and Riemann Sums:

Quarter I Week 9: 11/4-11/8

We finally finished with UNIT 4: Application of Differentiation this week. We programmed Newton's Method in TI89-BASIC. We also covered related rates. Next week is all about AntiDerivatives and Reimann Sums!

Quarter I Week 8: 10/28-11/1

We're nearly finished with UNIT 4: Application of Differentiation this week. We programmed Newton's Method in TI89-BASIC. We also started related rates this week.

Quarter I Week 7: 10/21-10/25

We started UNIT 4: Application of Differentiation this week. We started talking about IVT, MVT, Min/Max and Optimization!

UNIT 4 Applications of Derivatives:

Quarter I Week 6: 10/14-10/18

This week we finished UNIT 3 with a discussion of the Chain Rule, Implicit Differentiation, Min/Max and Related Rates.

Quarter I Week 5: 10/07-10/11

Out sick.... However, I did start using DropBox, see above!

Quarter I Week 4: 9/30-10/04

We started UNIT 3 about Differentiation! We derived the Product and Quotient Rules. We did all 6 Trig Rules. We started talking about the Chain Rule.

UNIT 3 Differentiation Rules:

Quarter I Week 3: 9/23-9/27

We finished UNIT 2 with a test! Our last topic concerned the existence of the derivative. BTW, we start with UNIT 2 since UNIT 1 is just a review of PreCalculus. We did a bit of that in 106 and 107 on Conics and Polar Notation.

Quarter I Week 2: 9/16-9/20

We are almost finished with UNIT 2: Continuity and Differentiablility! We demostrated the Power Rule using the Definition of the Derivative as the limit of the Difference Quotient. We even started the Trig Rules!

Quarter I Week 1: 9/9-9/13

AP Calculus BC started with a preCalc review in the form of the topic of Conic Sections! This is a great topic to review Cartesian and Polar Coordinates, as well as some algebra, trig and TI89 usage!

We started Chapter 5 all about Inverse Functions like Exponential and Logarithmic Functions. Of course, Friday was PreCalculus Caroling Day!

SAGE Chapter 5 Inverses:

TI83 Chapter 5 Inverses:

Quarter II Weeks 4&5: 12/2-12/13

We finished Chapter 9 all about CIS(theta) and Vectors. We focused the last week or so on dot products and cross products (see below)!

Quarter II Week 3: 11/25-11/29

We started Chapter 9 all about Vectors. Actually, we started with CIS(theta) and Complex Arithmetic! We stuck to reference angles mostly and no tech was harmed in the making of our screencast (as yet). It was a short week due to Thanksgiving. So, we had Take Home Tuesday on CIS(theta) and GAMEDAY on Wednesday. Fun was had by all!

SAGE Chapter 9 Vectors:

TI83 Chapter 9 Vectors:

Quarter II Week 2: 11/18-11/22

We finished Chapter 10 all about Conics. This week we focused on Parametric graphs and Word Problems. Next we will cover CH9 Vectors starting with CIS(theta).

Quarter II Week 1: 11/11-11/15

We continued Chapter 10 all about Conics. This week we focused on Polar graphs. We talked about converting General Form Conics to Polar Form instead on Completing the Square in the case of rotated graphs! Next weeks now is about Parametrics.

Quarter I Week 9: 11/4-11/8

We started Chapter 10 all about Conics. This week we focused on Completing The Square as a method to convert General Form conics into Standard Form Parabolas, Ellipses and Hyperbolas. We also focused on graphing Standard Form Conics without any tech! Next week is about Polar graphs and 2 weeks from now is about Parametrics. We're going to need TI83s or SAGE for that....

SAGE Chapter 10 Conics:

TI83 Chapter 10 Conics:

Quarter I Week 8: 10/28-11/1

We are finished with Chapter 11 about Matrices! We had a test on Friday. We are starting Chapter 10: Conics next week.

Quarter I Week 7: 10/21-10/25

We are almost finished with Chapter 11 about Matrices. This week focused on nonLinear Systems. Then we reviewed solving Linear Systems using Determinants or Matrix Inverses. We even had a preQuiz on Thursday and a Quiz on Friday on Linear Systems. Next week we cover the last topic in CH11: Linear Programming. The preTest this Thursday and Test this Friday will include all the nonLinear and Linear Systems as well as Linear Programming.

Quarter I Week 6: 10/14-10/18

We continued Chapter 11 about Matrices. This week focused on Matrix Arithmetic and Matrix Algebra. First we need to know how to add, subtract, multiply and divide before we can do the Algebra, aka Arithmetic backwards! BTW, we aren't really dividing, we're multiplying by the reciprocal. So, we used reciprocals to solve Matrix Equations.

Quarter I Week 5: 10/07-10/11

Out sick.... However, I did start using DropBox, see above!

Quarter I Week 4: 9/30-10/04

We started Chapter 11 about Matrices this week! We started by reviewing 2x2 Systems Algebraically and Graphically. Then we introduced Guass-Jordan Elimination using Augmented Matrices!

SAGE Chapter 11 Matrices:

TI83 Chapter 11 Matrices:

Quarter I Week 3: 9/23-9/27

We finished CH12 this week with a test! Our last topics included Proof By Induction and The Binomial Expansion Theorem!

Quarter I Week 2: 9/16-9/20

This week we covered Geometric Sequences and Induction! Included below you will find ScreenCasts based on TI83 and SAGE. I also have SmartNotes from the TI83 ScreenCasts as well as SAGE Worksheets for the SAGE ScreenCasts!

Quarter I Week 1: 9/9-9/30:

PreCalculus is all new this year:

(1) My preCalculus for Juniors classes started the school year with Chapter 12 this year! We start with Chapter 12 so we don't waste a lot of time reviewing topics from Chapters 1 and 2 which are about solving Linear Equations and Quadratics! So, when midyear is upon us, we can switch to Calculus without skipping important topics at the end of the preCalculus text. As such, we cover as much preCalculus as we can in the Fall Semester and as much AP Calculus AB material as we can in the Spring in preparation for Calculus next year! (2) We are using a Computer Algebra System called SAGE instead of the TI83. The grand experiment this year is to see how well students learn the Math while learning to code in python at the same time! (3) We will be learning a lot of python in class. You can learn some python code on your own too with this online, interactive textbook! I actually have 2 different preCalculus classes. PreCalculus 4R and preCalculus 4H cover the same material and is comprised mostly of Juniors. The difference between these to groups is that 4R takes AP Calculus AB next year and 4H takes AP Calculus BC. Also, we cover material a little more in-depth for the 4H student and our tests may be a bit more challenging.

We continued CH5 this week about Conditional Statements, Boolean Expressions and Predicate Methods. We also finished Number Systems and Chip Logic! I did the #HourOfCode again on Monday as an in school field trip for our Honors 9th Grade Math classes to advertise AP Computer Science. Due to budgetary constraints, we're not offering an intro CompSci course anymore. So, Honors 9th and 10th Graders won't have that option anymore. Friday was, of course, GAMEDAY!

Quarter II Weeks 4&5: 12/2-12/13

We started CH5 this week about Conditional Statements, Boolean Expressions and Predicate Methods. We also finished Number Systems and Chip Logic!

Chip Logic:

new Lab5:

Quarter II Week 3: 11/25-11/29

We finally finished CH4 this week. We have Take Home 4 due this Tuesday. We printed Lab 4. This was a short week due to Thanksgiving, so that's about it! Next week we'll start CH6+Lab5 on Conditional Statements. Of course, Wednesday was GAMEDAY!

Quarter II Week 2: 11/18-11/22

We continued CH4 this week. We went nuts with "Can you name that number?" aka Number Systems. We converted to Base 10. We converted from Base 10. We counted, added and subtracted in various bases: BIN, OCT, HEX. See ScreenCasts below!

Quarter II Week 1: 11/11-11/15

We continued CH4 this week. We also continued "Numeral of the Day!" aka "Can you name that number?" For example, 111BIN, 222TRI, 777OCT and FFFHEX=? We wrote several classes where finals were useful such as the CashRegister class which had public static final double QUARTER_VALUE=0.25 listed after the private instance fields. We also dealt with various forms of input from main: JOptionPane, Scanner and args[0]. When using JOptionPane and args[0] we had to use Double.parseDouble() or Integer.parseInt() quite a bit!

Quarter I Week 9: 11/4-11/8

We started CH4 this week about the differences between byte, short, int, long, boolean, char, float, double variables and finals. We also started "Numeral of the Day!"

Number Systems:

new Lab4:

Quarter I Week 8: 10/28-11/1

We finished Lab3 which talks about writing your own classes from scratch. Our first TakeHome Tuesday on this chapter is due next week!

Quarter I Week 7: 10/21-10/25

We continued Lab3 which talks about writing your own classes from scratch. We are doing the end of chapter exercises as labs. We do the odds together so I can model new concepts. I am rerecording the odd exercises as ScreenCasts for YouTube. The students complete the evens as labwork in groups. New Lab1 ScreenCasts are done. New Lab2 ScreenCasts are almost done. Sorry, there's no new ScreenCasts for Lab 3 yet. I have a link to my old Lab3 ScreenCasts. See my DropBox link for all our code so far. See links below.

Quarter I Week 6: 10/14-10/18

We started Lab3 which talks about writing your own classes from scratch. We have to come up with our own Contructors, Accessors and Mutators for the first time. We also discussed Abstraction and Encapsulation! Sorry, there's no ScreenCasts for Lab 3 yet.

old Lab3:

Quarter I Week 5: 10/07-10/11

Out sick.... However, I did start using DropBox and I added some screencasts for Lab 2, see above!

Quarter I Week 4: 9/30-10/4

This week we finished Lab2 by introducing the StdDraw class from Princeton's CS101 course. Here we used Object Based Programming to draw Rectangles, Ellipses and Lines! See all the code linked below from my PasteBin account (last link). I've also been redoing my ScreenCasts in the APCS Shorts playlist on my YouTube channel (see below too)!

Quarter I Week 3: 9/23-9/27

This week we started Lab2 based on Chapter 2. In this chapter we discuss constructing objects from existing classes: Rectangle, Color, Random and String. We started talking about Constructors, Accessors and Mutators as well a Private Instance Fields. I'm reworking the ScreenCasts as short summaries after class. I have a new playlist (see below) with only HelloWorld so far. new Lab2:

Quarter I Week 2: 9/16-9/20

We had a good week this week! We finished Lab1 based on Chapter 1 Exercises 1-8 (see Code and ScreenCasts below). We basically covered everything you ever wanted to know about main() methods and println()! We just started talking about Chapter 2 and Lab 2, Object Based Programming (using existing classes, constructors, objects, accessors) at the end of the week.

Our networking and various hardware issues are all corrected now (except the HP Color LaserJet is still down). My networking issues required setting up a static IP on the SmartBoard or Teacher PC. So, I have access to all my sites at school, finally!

address: 10.5.129.25

netmask: 255.255.0.0

broadcast: 10.5.0.254

dns: 10.1.1.19

proxy: NONE! (was 10.0.0.125)

There's a bit of lag on the LAN. So, I think I'll make Static IPs for the students too as there may be a DHCP conflict. However, the student stations are required to have the proxy.

Also, most students can access the ssh server from home. Some of us have Linux running at home which makes accessing java files the same as in class. Some students are logging in using putty from WIN but cannot use GUI applications from home (WIN graphics engine does not recognize the LIN graphics engine). Some have Mac at home and find that the MAC terminal works just like the Linux terminal at home including GUI ssh tunnels using: "ssh -Y userid@173.251.48.56"

Quarter I Week 1: 9/9-9/13

APCS had a slow start this year with a lot of networking and server issues. I think we're up to snuff now. We're in Chapter 1 of Cay Horstmann's fabulous text. All we did was write serveral versions of HelloWorld. This is a fine way to become familiar with our Linux based system.

We talked about how to use our server from home using putty in Windows or a terminal in Mac and Linux land. We also talked about CLI vs GUI, ASCII and Unicode, SSH vs FTP, javac vs java, etc. We also talked about the importance of comments and self-documenting code! What's new this year is that I'm trying to stick to a CLI for coding in java all day every day! All we need is a shell or terminal to run javac, java and a text editor. This way we call login from home and do our work the same way we do in class even from a Mac terminal or by using putty in Windows!

Today we booted up the entire LAN using the pelicanHPC 64bit 2.9 with mpi4py DVD! We finally got up to 24 nodes with 96 cores and nearly 50 GFLOP/s!! Great job guys!!! Now we have to decide if we are going to install a native MPI stack. We also need to research sample MPI code online to learn how to program the cluster in FORTRAN77, C, C++ and python. We used the code above, which estimates pi using Reimann Sums and arctan(x), to stress the cluster. BTW, we don't have 100 cores as my PC is on another logical subnet and its only dual core anyway.

To compile:

mpif77 -o flops flops.f

To execute

mpirun -np 96 --hostfile ~/tmp/bhosts flops

November Meeting II

Firing up the cluster for the first time!

We are trying to figure out if we can use a bootable Linux CD to boot up the cluster or if we want to add an MPI stack with public key authenticated sshd to our Ubuntu Desktop. So, we downloaded the pelicanHPC ISO, burned a DVD and got 17 compute nodes or 68 cores running at about 35 GFLOP/s!

Hey, that's not too shabby, just 13 years ago, top500.org reports that all you needed were 50 cores running at 55 MFLOP/s to make the list of one of the 500 fastest clusters in the world! We may even get up to 50 MFLOP/s if we get all 100 cores up and running.

So, we're looking at pelicanHPC, BCCD and ClusterByNight for MPI. We used to run clusterKNOPPIX, BCCD and Quantian with openMOSIX. Too bad openMOSIX isn't supported anymore. It was so easy to code for MOSIX. In C or C++ all you had to do was use the fork() function to start a new process. openMOSIX ran in the Linux Kernel. Whenever your processes came close to using 100% of you CPU, MOSIX would automagically send one of your forked jobs to another processor. When we started using MOSIX, we only had one core per PC, so that meant send the job to another PC on the LAN. In those days (late 1990s) we managed to run 100 cores anyway by taking over 4 PC Labs on my floor at school....

November Meeting I

Last Linux Install Fest!

We finally got the new 64bit Ubuntu 13.10 Saucy Salamader installed correctly on all student PCs. I'll upgrade my station at a later date. We got this down to a science:

(9) all we left on the desktop was the SAGE directory, a short cut to TilEm and our handy dandy Trig Table (see below)

(10a) to use TilEm, the students just click on the short cut

(10b) to use TIEMU and SAGE open a terminal and type "tiemu" or "sage" on a command line.

(11) I'll add TilEm and TIEMU to the start-up menu. I was going to add "sage -n) too, but I don't want FireFox hogging all my Desktops at bootup!

October Meeting II

Linux Install Fest Again!

I downloaded 8 copies the latest version of Ubuntu Desktop 32bit ISO: 13.10 Saucy Salamander. Then I burned 8 DVDs and reinstalled the Linux partition on the second row of 8 PCs in our classroom. The geek squad did all the tweaks this time!

We are having a massive problem with VTI running under WINE. It's so slow as to be unusable. We have to figure out a solution. Maybe 13.04 is better? Or maybe I can get WINE's direct ppa and use their latest version?

Another problem is that we have a SAGE directory on the Desktop extracted from the latest compiled version of SAGE. In there we have a SAGE bash script. I usually make it executable and students can just click it to run SAGE. In 13.10, the script will not execute, the script just opens in gedit even though I made the file executable. I even ran "which bash" to see if bash moved (it did) so I could update the #! line but still no joy!

We downloaded 8 copies the latest version of Ubuntu Desktop 64bit ISO: 13.10 Saucy Salamander. Then we burned 8 DVDs and reinstalled the Linux partition on the first row of 8 PCs in our classroom. I did all the tweaks the following day.

Next week I'll reinstall the 2nd row and the Geek Squad will do all the tweaks. I like to keep the Student Stations very simple. So, we will only tweak as follows:

(1) configure Network (eth0, proxy)

(2) configure Appearence and Brightness

(3) configure Printers

(4) sudo apt-get update (after setting sources to main).

(5) sudo apt-get upgrade

(6) install WINE

(7) copy VTI to the desktop

(8) extract SAGE to the desktop

September Meeting I:

Administrativa!

(1) Wreath of the Unknown Server: We visited our first ssh server, Colossus, which is still in the switch room though dormant. I set it up for the first time in 1995 running Slackware Linux. Colossus ran for 12 years straight, 24x7 never having to shut down, reboot or even have anything re-installed!

(2) Display Case Unveiled: We took down a ton of fractal prints and ray tracings from Room 429 to the 2 cases on the 1st floor near the art wing. We decorated both cases as best we could and left before anyone saw us. Must have been gremlins.

(3) Recruiting: We decided that we have more than enough qualified CIS(theta) members for this year's Geek Squad, so we tabled that topic.

(4) Planning: We have to wait another 2 weeks 10/4 at which point Ubuntu 13.10 Desktop Edition should be available for a mini install fest. After that, we may use bootable cluster Linux CD distros such as BCCD and pelicanHPC to learn MPI using C++ or Python. We also talked about installing an MPI stack on each hdd along with public key authenticated ssh. We would like to make a fractal zoom animation.

(5) Summary: This year's CIS(theta) team is off to a good start. Shadowfax, our 100 core cluster, is in good hands!