Wednesday, August 1, 2018

Executive Summary 2017-2018

Executive Summary 2017-2018 
These past 12 months represented a marked change from the status quo of the past several years. This year started off with a shock (no more Linux) and ended with a bang (entering the Maker Space). What follows is a brief chronicle of what happened:

The first couple of weeks of class this past school year (2017-2018) were agonizing particularly for my AP Computer Science class. My district decided to go whole hog into Windows. My classroom was a PC Lab with Linux installed on every computer for nearly 24 years. My students use PCs every day in every class, not just in Computer Science, but in my Math classes too. In addition, my Computing Independent Study class usually sets up a Linux MPI Cluster after school for some advanced projects so my lab was isolated from the rest of the school network in order that we may set up our own DHCP without disrupting the Windows DHCP server. Apparently, this was deemed a security risk, so, after nearly 24 years, Linux is out!

I emailed the tech dept and admins:
"The infrastructure in 429 was fine when I left last June! Our Math PC Lab/Classroom in Room 429 is optimized for teaching AP Computer Science, Computer Science Honors, Calculus Research Lab and Computer Science Independent Study. We use a Linux Desktop environment teaching Python, Java, SAGE (Computer Algebra System) and openMPI (Linux Cluster Programming Environment and Compilers). We also maintain a SFTP/SSH server for students to complete and store their programming projects. I have designed and maintained all this firmware, hardware and curriculum for decades. What is wrong with this infrastructure, may I ask?"

So, we had a meeting and I was told that my room was to be converted to a Windows shop and that our network would go back on to the school's DHCP server. They asked me how they could help make this transition work:

"As per our meeting this morning, my students need access to the following cloud computing sites:

1) AP Computer Science (Amazon EC2):
2) PreCalculus and Calculus (Google GCP):

Also, I have a few programs installed on the PC Desktops in Room 429:

1) WABBIT TI84 emulator (every PC) 
2) KARMTI TI nSpire emulator (every PC) 
3) (every PC) 
4) ScreenCasting utility to record my lessons for Edmodo and YouTube (SmartBoard PC only). I currently use Simple Screen Recorder in Linux. I have used Screencast-o-matic as well.

Can these items be added to our new Windows desktop?"

A week or so later I emailed again:
"AP Calculus needs an emulator for the TI nSpire CX CAS calculator accessible on all 25 PCs in Room 429. Also, AP Computer Science needs software from installed on all 25 desktops. As of Friday, I still have no audio when playing MP4s in QuickTime or VLC on the SmartBoard. Also, I have no audio when playing videos from on the SmartBoard."

After a few more emails, some success:
"We had significant progress yesterday!

FIXED 1) MicroSoft Word is only on a 30 day trial in Room 429.
FIXED 2) Smart NoteBook is not installed correctly in Room 429. 
FIXED 3) I can play MP4 files in QuickTime but there is no audio.
FIXED 4) If I play a video on YouTube it starts to load but then hangs
FIXED 5) TI84C Emulator needed on all PCs in Room 429 (WABBIT on S: drive).
6) TI-nSpire CX CAS Emulator needed on all PCs in Room 429. I have the Windows emulator that came with our nSpires from DonorsChoose and Amazon. 
7) compiler needed on all 25 PCs in Room 429. I can download Processing, but I cannot install it.
FIXED 8) Screencast-o-matic App needed on Teacher/SmartBoard PC in Room 429.

BTW, I love Screencast-o-matic especially since I was beta tester years ago for the Linux version and was awarded a lifetime pro account for my participation!"

And more emails:
"Thank you for installing the TI nSpire CX CAS Student Software in Room 429. I've been using it on the Teacher Station. However, the Student Stations were not installed until Thursday (10/19/2017) this past week after school. Thank you also for addressing all the varied and myriad issues that we've been discussing in this thread."

As an aside, you may not know this but I have been solely responsible for installing, upgrading and otherwise maintaining all the Firmware and Software in Room 429 and, until recently, the Hardware as well, for more than 30 years. Everything I do in Room 429 is educationally sound and has a pedagogical purpose. Whenever my students needed something new to work with in class I would install and debug whatever technology it were within 24 to 48 hours even when it came to reinstalling the OS from scratch on every single PC in the room every 6 months. I'm not accustomed to waiting for weeks on end to install a piece of software or repair some hardware.... 

1) I moved all my video to the HDMI port of the projector via a ChromeCast using HDMI mode on the SmartBoard.
2) I moved all my audio to the Amazon Echo Dot via the audio cable using VGA1 mode on the SmartBoard.
3) All other Teacher PC Desktop functions were routed via the VGA and USB cables using VGA1 mode on the SmartBoard.

This set up greatly improved my workflow in class (teaching and screencasting) and benefited my Auditory and Visual Learners. 

After our annual Admiral Grace Hopper Day celebration and AP Computer Science Recruitment, we had the following issues:

"Completed issues, thank you:
0) Screencast-o-matic on the Teacher PC to record lessons for Edmodo and YouTube.
1) New TI nSpire CX CAS emulator on each Windows Desktop in AP Calculus.
2) Processing IDE on each Windows Desktop for coding Graphics projects in AP Computer Science.
3), aka, online in place of our Linux SSH/SFTP server for coding Java projects in AP Computer Science.
4) online in place of our SAGE server for coding Python projects in preCalculus.

Pending issues: 
5a) My Computer Science Independent Study class usually sets up a Linux Cluster to learn openMPI and code some very involved calculations. That's why my LAN was isolated from the rest of the school network. We need to set up our own DHCP server. However, said DHCP server would now conflict with Windows DHCP service. We usually have a grid cluster of 100 cores running at 50 GFLOPs.

5b) We tried bootable DVD versions of openMPI from the or sites. We downloaded the ISOs, burned the DVDs but find that we cannot boot DVDs? The idea was to run openMPI without installing anything. These DVDs boot up and run from RAM without setting up a DHCP server. So we would not have a grid of 100 cores but we could run SMP clusters which run on multiple cores of a single machine (quadcore)."

A week later, not an issue after all:
"My students were able to download an ISO, burn an ISO to DVD and boot said DVD in class this week. I don't know what they did wrong last week, but they decided they had to do this at home. Now we don't. So, please disregard issue."

Two weeks later:
"Is there anyway around issue (5a) to get our grid up and running again? BTW, the kids in Computing Independent Study got up to 2 GFLOP/s per core and 8 GFLOP/s per quadcore PC with the pelicanHPC DVD. So, last year, when we fired up a grid of 25 PCs with 100 cores, why did we only get 50 GFLOP/s performance and not 200? Something on the GigaBit/s Ethernet LAN in Room 429 is not optimized, I'm afraid."

Don't forget about your preCalculus, Calculus and CompSci Carols!

This month we moved from to
If you get a Cloud9 account, you can set up different development environments. One of them is a plain vanilla install of the latest Ubuntu Linux Desktop in the AWS EC2 cloud. 

Then you can install any Debian compatible packages with the apt-get console command in the CLI. You get a text editor and a shell. Just install openjdk and your AP Computer Science students are good to go.  

However, we can only do text based programming, no graphics or GUIs. So, we also installed the Processing IDE on our local Windows desktop to do some graphics projects. I love this minimalist coding environment but it's not for everyone. If you want to use an IDE like Eclipse or NetBeans, I think you are out of luck, sorry. 

My students love to tell their friends that they are computing in the cloud, aka cloud computing, in class, in the library and at home on a PC or tablet. Also, they like explaining what the cloud actually is and that it's not just for backing up your pictures on Dropbox! Don't get me wrong, I love Dropbox too, it's like the old days of setting up your very own ftp server.

...and don't get me started on WimpDoze! I had a lot of growing pains this year. I was running a Linux LAN plus a sftp/ssh (originally ftp/telnet) server in my classroom for 24 years. We used tons of different Linux Distros over the years too: Slackware, Knoppix, ClusterKnoppix, Quantian, Pelican, Red Hat and, in recent years, Ubuntu. 

Secret Pro Tip: Have your kids audit the course. They get access to a free account which is plus everything already installed that you need to teach and learn coding with a variety languages including java! We tried for a while too, but I much prefer as it emulates the Linux desktop we used for years. Shush, don't tell anyone... 

BTW, all this is subject to change. CS50 used this year but they keep changing their computing environment. I remember a few years ago they had students download an "appliance" which was a huge zip file that ran a Linux virtual machine on whatever OS you had installed. You needed VMware to run it. Hope that helps!

Sounds like my school is moving to Epson Brightlink interactive whiteboards but the teachers that got the "upgrade" don't sound happy. The Epson boards do look bigger and brighter.... 

I have an extra wide SmartBoard and I'm usually coding on during class. I try not to lecture a lot in class. I send PowerPoints from my DropBox and Screencasts from my YouTube channel home on Edmodo for homework. 

The PowerPoints are basically the textbook I'm using, the Screencasts are my own, I guess I flipped my class? Well, it's a modified flip as the students get summaries of any given lesson after the lesson is done in class to help with homework, not as homework before class.

Most class time is spent coding either with me (classwork) or in pairs (labwork) or on their own (tests). Most of my tests are take homes too. I really want to maximize coding time in class. I know the AP CS audit requires 20 hours of coding but I try to do lots more: over 30 hours class work and over 30 hours lab work during some 120 school days before AP review.

We rebooted the whole room with 25 Redhat Gaming Spin DVDs to play BZFlag before February break just for good old time's sake! We may do this more often next year. This year, after AP Exams we will have a movie marathon in Calculus class as well as Computer Science (no games).

MARCH 2018
More emails:
"I'd like to take this opportunity to thank you all for helping with my transition from Linux Boxes to the Windows biosphere! I don't know if you realize it, but transitioning to this new ecosystem after 24 years of Linux has been very trying for me. You've made it very easy, Thank You!

Let's see what we have accomplished so far this year (chronologically IIRC):
1) New TI nSpire CX CAS emulator on each Windows Desktop in AP Calculus.
2) Processing IDE on each Windows Desktop for coding Graphics projects in AP Computer Science.
3) online in place of our Linux SSH/SFTP server for coding Java projects in AP Computer Science.
4) online in place of our SAGE server for coding Python projects in preCalculus.

New Maker Space Project: I gave my Computing Independent Study class a brief overview of what we are talking about here (Linux Cluster made from Raspberry PI micro boards). They are very excited at the prospect of actually entering the "Maker Space" with this new Raspberry PI project. Thanx for everything you are doing to help us out!

FYI, these are the computing courses I have taught and developed in the Math Dept over the years:

CSH: Computer Science Honors (preAP - Intro Programming with Python). 
Currently not offered, usually for Sophomores and Juniors with Algebra prerequisite.

CSA: Computer Science A (AP - Object Oriented Programming with Java).
Currently offered, usually for Juniors and Seniors with CSH or Geometry Honors prerequisite.

CSL: Computing Science Lab (aka CRL: Calculus Research Lab - Calculus reinforcement with SAGE).
Currently not offered, elective with AP Calculus AB or AP Calculus BC corequisite.

CSI: Computing Science Independent Study (various projects ranging from Computer Algebra Systems to Linux Cluster Coding).
Currently offered after school like a club, for students who have completed CSA.

APRIL 2018
So, I ordered the following parts via BOCES:

24 x RPI 3.0 Model Bs:

24 x Dog Bone Stackable Cases:

24 x Dog Bone Stacking Kits:

24 x NOOBS RPI SD Cards 
(with preloaded raspbian OS):

1 x 24-port Fast Ethernet Switch/Router:

8 x 3 packs of 3ft USB cables:

24 x CAT5e Ethernet Cables:

6 x 4 port USB Power Hub 5 volts 2.5 aperes per port:

MAY 2018
Turns out we're not getting funding for the parts listed above until July 1st. So we will be doing our Maker Space project next year! Also, BOCES will not be able to acquire the folowing parts, so I'll start a DonorsChoose campaign for these:

24 x Dog Bone Stackable Cases:

24 x Dog Bone Stacking Kits:

24 x NOOBS RPI SD Cards 
(with preloaded raspbian OS):

6 x 4 port USB Power Hub 5 volts 2.5 aperes per port:

JUNE 2018
preCalculus reviewed for an in-class Final Exam. AP Calculus worked on a project learning some Linear Algebra using SAGE. AP Computer Science worked on a Maker Space project using CoDrones and Arduino Studio.

I also put in some work orders for repairs in Room 429: 

1) Install new A/C unit that's been sitting in a box all year. 
2) Replace an extra long SmartBoard audio cable the broke the last day of class when a student rammed into my PC. 
3) Resurface my whiteboards with whiteboard paint. 
4) Add corkboard around the room for more RedBubble Tapestries! 

I hope these repairs are completed over the summer.

JULY 2018
MAT225 @ NCC
I spent all of July learning how to teach and teaching Multivariable Calculus for the first time!

Week00: Getting Organized (June really)
Week01: Vectors and Matrices
Week02: Partial Derivatives
Week03: Special Integrals
Week04: The Great Theorems

Now I can look ahead to next school year. I was just invited to speak at LIMACON March 2019. So, I filled out a Speaker Proposal form entitled "Adventures of a Visiting Professor!" In this talk I'll explain how I prepared for and taught my summer Multivariable Calculus course at the college. 

Here's the description: "I was asked to teach Calc III at the local college last July just one week before the start of class. I had no materials, no textbook, no smartboard and no graphing calculators. What would you do? Come see my tech and coding solutions!"

So, the first thing I did was high tail it over to the campus and update all my devices' WiFi passwords and my Desktop PC passwords and accounts at the college. Then I tested all my equipment in the multimedia room they gave me. I installed Teamviewer on the PC and connected my Samsung Chromebook Plus to it over WiFi so the students could see everything I wrote on my Chromebook. In other words, my students would see my notes on the central PC Projector screen at the front of the room and on 4 HDTVs spaced about the room. This is a large lecture hall with balcony seating no less, so this was the only way for everyone to take notes! I could also see what the students were seeing on my Desktop PC at the PC Podium. I also set up my Samsung Galaxy NotePro 12.2 on a stand so I could see my lesson plans from my blog. On the Chromebook, other than Teamviewer, I only used one other Android App called Squid to draw notes with an S-Pen as you would on a SmartBoard. I also used Chrome to access Youtube for documentaries and SageCell to type code, make graphs and do calculations. So, to recap, I was using 3 computer screens at the PC Podium to drive my presentation all over the room! I also had a bluetooth mouse and a stylus.

I recall taking Multivariable Calculus during my Spring semester of my Freshman year at Cornell in 1979. I used this material through out my undergrad Physics major and my Masters. So I haven't seen this topic, much less taught it, since 1988, some 30 years ago! I found the MIT OpenCourseware website and this YouTube channel invaluable in brushing up! Most people binge watch Game Of Thones or The Man in the High Castle. Not me, I binge watched Multivariable Calculus all summer!

Then I went home and wrote code on SageCell for every single lesson in the form of Python code. I like to teach Pythonic Math, so who needs a graphing calculator?
This code was invaluable to me since I could follow it as I taught each class as a lesson plan from my tablet. I also linked copies of the code after each class via Edmodo.

I also got a professor account at WileyPlus in order to get the textbook in an electronic format. WileyPlus is great in that you can download the entire textbook as a series on powerpoints. I also downloaded a number of PDFs for exercises and solutions for the end of each chapter. I've used WileyPlus before for my AP Computer Science textbook, so I knew this would be a great resource!

Don't forget, I screencast parts of each lesson that cover new material. So, I was also running the Screencast-o-matic Android App on the Chromebook. I linked these recordings to Edmodo from Youtube.

So, at LIMACON 2019, I'll speak to all these points and I'll demostrate the use of SageCell in class!

That's all folks! Hope you found some inspiration of a useful idea or two for your own classes!

Generally Speaking,

Tuesday, July 31, 2018

MAT225 Multivariable Calculus The Great Theorems! (SSII 2018 - WEEK04)

MAT225 Multivariable Calculus
The Great Theorems!
(SSII 2018 - WEEK04)

Week04 started with Line Integrals in the plane to calculate Work and Flux. We practiced Double and Triple Integrals as well as Surface Integrals and Flux Integrals in Space. 

We reviewed the Fundamental Theorem for Line Integrals then we discovered Green's Theorem for Work in the Plane, Stokes' Theorem for Work in Space and the Diveregence Theorem for Flux in Space. 

Actually, we saw both forms of Green's Theorem. The other regards Flux Integrals in the Plane aka Green's Theorem in Normal Form. 

We talked about the Divergence Theorem as an experimental result when Gauss was studying Electric Fields so this theorem is also called the Gauss-Green Theorem and leads to Gauss' Law. We finished with a discussion of Maxwell's Equations and how they relate to Gradient Fields as well as the Divergence and Curl of a Vector Field. 

We finished the course this week by not testing on Thursday. So, this is our last blog post for the class. 

Week05 is all about review and testing. I hope you learned a lot! Have a great rest of the summer!

SageCells (401) Week04 Day01
Green's Theorem for Work
More Green's Theorem
Green's Applications
Green's & Flux

SageCells (402) Week04 Day02
Triple Integrals
More Triple Integrals
Cylindrical Coordinates
Flux in Space

SageCells (403) Week04 Day03
Surface Integrals
Divergence Theorem
More Divergence Theorem
Diffussion & LaPlace
Line Integrals in Space

Filks: Science!


CRIB SHEET (not given during exam) 

1) Use a recognizable tune.
2) Karaoke the whole song, 
2) changing up the words (STEM).
3) You are in the whole video,
3) Singing, Dancing or Playing an instrument.
4) You upload your video to YouTube,
4) providing me with the url.
5) YouTube Description includes the lyrics.

1) Cover Sheet is a Summary of the article.
2) Full Page, 12 pt Font, 
2) Double Spaced, 1" Margins.
3) Article has to be STEM related
4) Article has to be a current event.
5) Copy of entire article is attached.

Well, that's all folks!
Teaching with Technology,