Friday, November 10, 2017

CIS(theta), 2017-2018 November Meeting: PelicanHPC!

CIS(theta), 2017-2018 
November MeetingPelicanHPC!

Yes, I'm afraid it's true, IT replaced all my Linux Boxes with WimpDoze! So we have to find an alternative to installing MPI on native Linux! How do we run MPI under WimpDoze without installing anything?

Enter pelicanHPC as a our first solution! We demoed an old DVD we had to show how to fire up the cluster. Our experiment demonstrated that we could not boot the whole room anymore, as we used to, as PXE Boot or Netboot requires we setup our own DHCP server. When you boot the DVD on one PC, it sets up a DHCP server so all the other PCs can PXE Boot the same OS. However, our new WimpDoze network uses its own DHCP server. These two servers conflict, so we cannot reliably connect all the Worker bees to the Queen bee. We can't setup grid computing or a grid cluster, but we can still setup SMP. In other words, boot up a single PC with the pelicanHPC DVD and run multicore applications on all the cores on that one PC.

So, here's your homework. Download the latest pelicanHPC ISO file and burn your own bootable DVD. Don't worry if your first burn doesn't boot. You can use that DVD as a "Linux Coaster" for your favorite beverage the next time you play on SteamOS. If you can make this work at home, try to run from John Burke's sample MPI4PY (MPI for Python) code.

Also, here's our second reading assignment. BTW, I was an editor on this book. That's why I recommend it. It's all about setting up and programming a Linux Cluster aka Super Computer with COWS (Commodity Off-the-shelf Work Stations = ordinary PCs). What's unique about this book is that it uses Java for all its coding samples making it an easy read for anyone who has taken AP CompSci!

NEW DECOR (Display Case):
Featuring ChromeCast & Processing!

NEW DECOR (Room 429):
Featuring Tapestry from RedBubble!

So, what's all this good for aside from making Fractal Zoom or Shrek Movies?
SETI Search
Protein Folding
Beal Conjecture
Scientific Computing
Computational Physics
Mersenne Prime Search
Computational Chemistry
Computational Astronomy
Computer Aided Design (CAD)
Computer Algebra Systems (CAS)

These are but a few examples of using Computer Science to solve problems in Mathematics and the Sciences (STEAM). In fact, many of these applications fall under the heading of Cluster Programming or Super Computing. These problems typically take too long to process on a single PC, so we need a lot more horse power. Next time, maybe we'll just use Titan!


Membership (alphabetic by first name):
CIS(theta) 2017-2018:
BrandonB(12), FabbyF(12), JoehanA(12), RusselK(12)

CIS(theta) 2016-2017: 
DanielD(12), JevanyI(12), JuliaL(12), MichaelS(12), YaminiN(12)

CIS(theta) 2015-2016: 
BenR(11), BrandonL(12), DavidZ(12), GabeT(12), HarrisonD(11), HunterS(12), JacksonC(11), SafirT(12), TimL(12)

CIS(theta) 2014-2015: 
BryceB(12), CheyenneC(12), CliffordD(12), DanielP(12), DavidZ(12), GabeT(11), KeyhanV(11), NoelS(12), SafirT(11)

CIS(theta) 2013-2014: 
BryanS(12), CheyenneC(11), DanielG(12), HarineeN(12), RichardH(12), RyanW(12), TatianaR(12), TylerK(12)

CIS(theta) 2012-2013: 
Kyle Seipp(12)

CIS(theta) 2011-2012: 
Graham Smith(12), George Abreu(12), Kenny Krug(12), LucasEager-Leavitt(12)

CIS(theta) 2010-2011: 
David Gonzalez(12), Herbert Kwok(12), Jay Wong(12), Josh Granoff(12), Ryan Hothan(12)

CIS(theta) 2009-2010: 
Arthur Dysart(12), Devin Bramble(12), Jeremy Agostino(12), Steve Beller(12)

CIS(theta) 2008-2009: 
Marc Aldorasi(12), Mitchel Wong(12)

CIS(theta) 2007-2008: 
Chris Rai(12), Frank Kotarski(12), Nathaniel Roman(12)

CIS(theta) 1988-2007: 
A. Jorge Garcia, Gabriel Garcia, James McLurkin, Joe Bernstein, ... too many to mention here!

Happy Linux Clustering, 

Wednesday, November 1, 2017

What are you doing for Grace Hopper Day?

What are you doing for Grace Hopper Day?
Every year around Admiral Grace Murray Hopper's (12/9/1906) and Ada Lovelace's, aka Augusta Ada Byron Countess of Lovelace, (12/10/1815) birthdays, I conduct an in-school Field Trip for the Honors Math classes to my PC Classroom/Lab to talk about taking AP Computer Science next year. In recent years, this has coincided with The Hour Of Code and CSED Week sponsored by promoting Computer Science education in grades K-12. 

This year has lots of new tutorials for CS ED Week, aka The Hour Of Code. I think I'll do these with my own classes too. I'm trying to get teachers to sign up their students for my Field Trip on Wednesday 12/6/2017. Since I don't have a lot of Seniors this year, I'm also going to show some of these tutorials to my own classes on Monday 12/4/2017 as a trial run.

I could show the Disney Frozen tutorial on 12/7/16. There's so many good tutorials to choose from. Maybe I'll show the Star Wars tutorial? Wait, Angry Birds look fun too! Karel The Dog was fun last year! I could do a different tutorial each period! 

There's a new tutorial based on the TI nSpire CX CAS that I may use for my AP Calculus BC class. That link also has a tutorial for the TI-84! One problem with these tutorials is that they are teacher driven. So, the teacher needs to know about programming in general and TI-BASIC in particular. Most of the other tutorials are student centered with videos to keep them on track. 

We use the nSpire every day in AP Calculus. We even code with TI-BASIC on the nSpire. We've written code for solving Quadratic Equations and for Newton's Method. Soon, we'll be writing code for Riemann Sums and Euler's method too! So, maybe I'll show this tutorial on MATHLAB instead! 

The new tutorial on Processing would be perfect for my AP Computer Science class as we have been doing console based programming all year so far and we're thinking of switching to graphics based programming soon. The only issue with the Processing tutorial is that it will most definitely take more than and hour. Daniel Siffman, put together a nice intro but he sure likes to talk! I may take a couple of days on this one!

What follows is a description of what we did for CS ED Week, aka The Hour Of Code, aka Admiral Grace Murray Hopper Day, aka Lady Ada Lovelace's Birthday last year. This year we are doing much the same thing. Our goal here is twofold. (1) Promote Computer Science Education in general. (2) Recruit more students for the APCS class next year!

Last year was based on this Hour Of Code Tutorial from This year I'd like to try this or this tutorial from 

I'd like to do the tutorials with my AP classes as they saw the tutorials last year. Also, has an Angry Birds tutorial and and a Disney's Frozen tutorial. So, I can do one in the morning with AP Calculus and the other in the afternoon with AP Computer Science as I have some of the same students in each. For students who have not done The Hour of Code with me,'s Karel the Dog is an easier intro. has two new tutorials. One is on mySQL and Harry Potter which is a little dry. The other is on making graphics with JavaScript which is a little challenging. I also like the tutorials because they feature experts in the video tutorials like Bill Gates and Mark Zukerburg teaching about if/then/else branches and repeat/until loops! Here's some videos from

Admiral Grace Murray Hopper is one of my personal idols! Not only did she usher in the entire industry of Software Engineering but she single handedly invented Computer Programming Languages and Compilers! She was a Math Professor, a Naval Officer, the developer of COBOL and an all around class act! 

To honor Grace Hopper's memory, I registered all my classes for an Hour Of Code. Maybe you'd like to participate as well? The Hour Of Code is about exposing as many students as possible to Computer Science in all disciplines. I'm making this presentation during course selection week as well to encourage students to take Computer Science at my High School! Due to budget cuts, teacher layoffs, large class sizes and canceled electives, I'm recommending Honors 9th Graders take AP Computer Science next year. I used to recommend an intro course, but I can't anymore.... 

CSEDWEEK was an unprecedented international effort last year. Over 15,000,000 students at more than 30,000 locations (mostly schools) in nearly 200 countries were registered to participate and wrote more than 500,000,000 lines of code!

I teach Computer Science and see it as a great tool in all disciplines. It's a shame that more students don't take Computer Science in High School. Taking Computer Science can lead to a great major in college and a great profession! I also use Computer Science in all my Math and Science courses in High School and College! 

I've been teaching people how to code since 1975. I've also been teaching AP Computer Science at the High School level since 1984. Finally, I've been teaching computing at the College level since 1993. Needless to say, I'm a vehement advocate for a strong Computer Science Education in particular and a challenging STEM curriculum in general for every High School student. 

In fact, every single class I teach, every single day of the week, is devoted to some aspect of STEM! STEM stands for "Science, Technology, Engineering and Math." Actually, I try to incorporate STEAM into my classroom: "Science, Technology, Engineering, Arts and Math." By Arts I do mean Art (fractals, 3D graphics, animation) but I also try to tie in plenty of History, Literature and Culture. 

Mine is one of the few High Schools in the USA to offer a Computer Science curriculum! CS50 at Harvard, see playlist above, covers a lot of the same material we cover here at Baldwin Senior High in my AP Computer Science class. They use Scratch, C, php and JavaScript whereas we use Python, SAGE, MPI and Java, but the concepts are the same!

Sadly, the United States is falling far behind other countries in training professionals for jobs in the 21st Century that will require this skill more and more! So, in answer to this growing demand, here's what I teach (in addition to Math and Science):

Intro To Computer Science (python):

AP Computer Science A (java):

CIS: Computing Independent Study
(MPI with FORTRAN, C, C++ and python):

Calculus Research Lab (SAGE):
aka Scientific Computing Lab (Octave):
aka Computing Science Lab (R): 

Course Selection Week DropBox

Hope that was helpful?
Well, that's all folks!

Generally Speaking,

Tuesday, October 31, 2017

Computer Science 2017-2018: Object Based vs. Object Oriented (October)

Computer Science 2017-2018:
Object Based vs. Object Oriented 

LABS 2&3 ScreenCasts

LAB02 was all about using pre-defined classes from the Java Library based in the Java API on the Oracle site (used to be We constructed, accessed and mutated several object types such as Rectangle, Color and String. Don't forget: the String class is immutable! I call this Object Based Programming.

LAB03 was all about writing our own classes from scratched derived from existing Java classes. This is the beginning of OOP: Object Oriented Programming. For example, we Abstracted the Car class and Encapsulated it's Private Instance Fields (engineEfficiency in mpg, gasInTank in gallons). We defined a Car() constructor, a getGas() accessor and a letsDrive() mutator.
1st YouTube Wednesday: Tom Lehrer

October YouTube Wednesdays

Teaching with Technology, 

Calculus 2017-2018: Derivatives & AntiDerivatives (October)

Calculus 2017-2018:
Derivatives & AntiDerivatives 

UNITS 4&5 ScreenCasts

Following UNIT03, Introduction To Derivatives, UNIT04 was about Applications Of The Derivative including the Mean Value Theorem, the 1st & 2nd Derivative Tests, the Closed Interval Theorem aka the Min Max Theorem aka the Candidates Theorem as well as Implicit Differentiation, Related Rates and Newton's Method. We had fun writing a newGuess() function in TI-BASIC on our TI nSpire CX CAS handhelds! We also wrote a program newt() to automate the calls to newGuess() in order to fill in our convergence tables!

UNIT05 was an introduction to Anti-Differentiation. We had fun finding areas using the Fundamental Theorem Of Calculus. We also enjoyed evaluating areas setting up Riemann Sums and finding the limit the old fashioned way. We introduced Variable Separable First Order Ordinary Differential Equations too! We finished up with U-Substitution as the traditional end of our AB Calculus Review. UNIT06 will about about Applications Of Anti-Differentiation which is typically part of AB Calculus too, but we will start introducing some more advanced Anti-Differentiation Techniques starting the BC material.

1st YouTube Wednesday: Tom Lehrer

October YouTube Wednesdays

Teaching with Technology, 

Monday, October 30, 2017

preCalculus 2017-2018: Intro To Trigonometry (October)

preCalculus 2017-2018:
Intro To Trigonometry 

Chapters 6&7 ScreenCasts

We talked about SOHCAHTOA, reference angles in radians and the Unit Circle (Chapter 6). We also talked about proving Trig Identities and solving Quadratic Trig Equations (Chapter 7). We also talked about what constitutes a function and what is an inverse function. In addition, we tried our hands at graphing trig functions with horizontal and vertical shifts, horizontal and vertical shrinks and stretches as well as reflections about the X-Axis and the Y-Axis. Last, but not least, we played around with non-linear regression!

1st YouTube Wednesday: Tom Lehrer

October YouTube Wednesdays

Teaching with Technology,