Monday, December 4, 2017

The Hour Of Processing & SAGE 2017!

The Hour Of Processing & SAGE 2017!

What follows is based on my "Hour Of SAGE 2016!" In 2016 I taught SAGE in Math classes and Processing in AP Computer Science class. This year, we did the same thing except, we covered SAGE in my AP CompSci class and Processing in my Math classes. Why? Because this year I've been using SAGE in Math class and Processing in AP CompSci a lot more than in previous years!


Every year, around Admiral Grace Murray Hopper's birthday, we celebrate CS Education Week aka CSED Week, and participate in The Hour Of Code. The Hour Of Code started a few years ago and has grown by leaps and bounds! Last year it was estimated that 1000s of schools participated world wide. Further, 100000s of students wrote 1000000s of lines of code during their Hour Of Code, many for the first time ever!

I like to tell my students, "Grace Hooper's why we have nice things!" Back in the day of the first electronic computers using Vacuum Tube technology in the 1940s, she invented the concept of coding and programming languages. First, she developed the language A, then she created B, and finally COBOL which is still used today in banking and on Wall Street! So, if it weren't for Gracey, you wouldn't have apps on your SmartPhones! We'd have DumbPhones! Also, she worked in Naval Intelligence during WWII. For example, top secret files were made public in the late 1990s describing her work on the Manhattan Project. She used some of her first programs on a computer called the Harvard Mark I to solve some really pesky equations leading to the development of the Atomic Bomb. If it weren't for Grace, the war in the Pacific would have lasted many more years and we may be speaking Japanese right now. She singlehandedly shortened WWII by several years and saved many allied lives! 

In many ways, Grace's story parallels that of Alan Turing, a mathematician who worked for British Military Intelligence during WWII. He built a computer named Christopher out of gears and pulleys, reminiscent of Babbage's Analytical Engine, and cracked the Enigma Code used by the Nazis in the European Theater! Alan is also credited with saving millions of lives and shortening WWII by several years!

Many of the activities at the Hour Of Code website are based on the Blockly or Scratch programming languages using online IDEs and target younger students. I've used these in the past but thought I'd do my own this year based on Python and SAGE (see above) as well as Java and Processing tailoring my presentation to a High School audience. 

Python is a very popular programming language used to teach Mathematics and to do real Science. SAGE is a supercomputer at Washington State University funded by the NSF free for you to use where ever you have an internet connection. You can use SAGE on your cellphone or tablet using an app and you can use SAGE on your cellphone, tablet or PC using an internet browser. Recently, SAGE has been made available on the Google Compute Platform (cloud computing on the GCP) at https://cocalc.com with alot more options.

I ran my Hour Of SAGE with all my classes on Monday 12/4/2016 and with all the remaining Honors Math classes on Wednesday 12/6/2016 as an in-school field trip. So, here's what I did on Wednesday:

STEP01: I went to each class and spoke about taking AP CompSci next year. I gave out the following letter too. The CSAP (Computer Science AP) letter I gave to every class except for my current AP CompSci students. I gave them the CSI (Computer Science Independent Study) letter. We used to have an intro programming course based on Python called CSH (Computer Science Honors aka Computer Math) but we don't have the enrollment to justify it anymore. We also had a class called CRL (Calculus Research Lab aka Scientific Computing Lab) as a co-requisite for AP Calculus using SAGE to complement Calculus class and to introduce the concepts of Scientific Computing aka Computing Science.





STEP02: I then march the whole class to my PC Lab-Classroom to have them do some coding all period! Put yourself in the students' shoes. Most of these students have never coded before and never saw my Lab before (see picture of my room in the banner of this blog). Imagine walking into a dark room. The only source of light was from 24 student PCs and a SmartBoard. On the SmartBoard you see the HourOfCode website masthead with the Game Of Thrones original sound track playing in the background. Sorry, I tend to be a little dramatic.


STEP03: Then I show the following motivational video about coding as a profession.


STEP04: In AP CompSci we used SAGECELL to do some coding. I start very simply with the basic arithmetic operators in Python: +, -, *, /, //, % and ** aka ^. We follow by using the same operators algebraically. I finish with coding a simple python script or two related to the math the students are learning tailored to algebra, geometry, precalculus or calculus (please see the second screencast at the top of this post). With my Math students I introduced the Processing IDE instead based on Daniel Shiffman's Processing Hour Of Code (please see first screencast at the top of this post).

STEP05: We finished with a pep talk from President Obama himself! Gotta luv those guest speakers!


STEP06: Last, but not least, I gave out Certificates Of Completion! Alas, our In-School Field Trip has come to an end, as all good things must.


Well, that's all folks,
A. Jorge Garcia

 Applied Math, Physics and CS

2017 NYS Secondary Math PAEMST Nominee


Sage Ebay
TpT

Thursday, November 30, 2017

Computer Science 2017-2018: Primitive Java Data Types (November)

Computer Science 2017-2018:
Primitive Java Data Types 
(November)

LAB 4 ScreenCast


LAB04 was all about declaring and using Primitive Java Data Types. We talked about RAM usage for int vs long and float vs double as well as char and boolean! We talked about integer arithmetic and casting to a double. Take a look at our lab assignments in the PDF below and our classwork in the ScreenCast above for more information!

1st YouTube Wednesday: Tom Lehrer



October YouTube Wednesdays

Teaching with Technology, 

preCalculus 2017-2018: Laws Of Sines and Cosines (November)

preCalculus 2017-2018:
Laws Of Sines and Cosines 
(November)

Chapter 8 ScreenCasts



Chapter 8 was all about Applications Of Trigonometry. First we solved Right Triangle using Pythagoras and SOHCAHTOA. Then we solved nonRight Triangles using the Laws Of Sines and Cosines. We even calculated triangular areas using Heron's Formula! We found that Law Of Cosines is great for SSS and SAS problems. Other cases used the Law Of Sines. Watch out for that Ambiguous Case! We had fun applying our advanced trigonometry to real world data and word problems. We even tackled Harmonic Motion and Sinusoidal Regression!


1st YouTube Wednesday: Tom Lehrer



October YouTube Wednesdays





Well, that's all folks!

Teaching with Technology, 

Calculus 2017-2018: Applications Of AntiDerivatives (November)

Calculus 2017-2018:
Applications Of AntiDerivatives 
(November)

UNIT 6 ScreenCast


UNIT06 was all about applications of the AntiDerivative. We talked about solving Variable Separable First Order Differential Equations Of First Degree using Indefinte Integrals. We also found the area between 2 curves using Definite Integrals. Then we upped our game calculating Areas Of Revolution using horizontal or vertical strips and Disks, Washers or Shells. Then we calculated more Metrics finding Volumes Of Solids With Known Cross Sections, Arc Length and Surface Area!



1st YouTube Wednesday: Tom Lehrer



October YouTube Wednesdays



Well, that's all folks!

Teaching with Technology, 

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 Hello_World_MPI.py 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
Econometrics
Bioinformatics
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, 
AJG