Showing posts with label octave. Show all posts
Showing posts with label octave. Show all posts

Sunday, March 1, 2020

Computing Science Education 2020 (Part 1 of 3)

Computing Science Education 2020 
(Part 1 of 3)


What is the State Of Computing Science education in 2020? I don't know if I can speak to that except from my own experiences at my own High School, so that's what this blog will be about. Note further that I'm referring to Computing Science and not Computer Science. I teach Mathematics and Computer Science, I've also been known to teach Chemistry and Physics, at a Middle School, High School or Community College in New York State every year since 1984. However, my primary interest in Computer Science is in a little known niche called Computing Science or Scientific Computing. 


Scientific Computing is all about modeling real world phenomena, running simulations and exploring what if scenarios, using programming environments and computer algebra systems such as Mathematica, MATLAB and SPSS. I've taught with free versions of these packages for decades in Linux: SAGE, Octave and R. We also do a lot of modeling in Computer Science class with programming languages from FORTRANBASIC and Pascal to C++, Java and Python even Logo and Processing!


I'm not teaching AP Computer Science A (CSA) this year so as to restart my curriculum with our intro Computer Science Honors (CSH) course using Python. I currently have 18 students in CSH, but I have a lot of seniors, so only 9 students are going on to CSA next year. We can't run a section with less than 13 students, so we may have to combine the 2 sections next year with 12 students that signed up for CSH. So I'll be back to CSA in one year for the noobie students. 


We had 2 sections (CSH and CSA) for many years (since 1984). Recently, we stopped populating CSH and put everyone in CSA but our results for those 5 years were poor on the AP exam, so we brought CSH back this year. The idea was to have 2 sections each year from now on, but no dice. I was asked to teach both courses simultaneously in one section next year, but that would be even more disastrous! 


Approximate Enrollment History
CSH 24 Students 1984-2014
CSA 12 Students 1984-2014
CSH 00 Students 2014-2019
CSA 24 Students 2014-2019
CSH 18 Students 2019-2020
CSA 00 Students 2019-2020
CSH 00 Students 2020-2021
CSA 21 Students 2020-2021


I have taught the intro class using several versions of BASIC from 1984-2010. We did not call it CSH then and it wasn't a full year course either. The intro CompSci class was 2 semester courses. The first one was called Computer Math (CM) and the second was called Advanced Computer Math (ACM). We changed the name of the intro course to Computer Science Honors in 2010 when we made it a full year course taught with Python. We use Litvin's awesome Discrete Mathematics text and we also do some turtle.py graphics in IDLE and visual.py 3D graphics in VIDLE


My school just started an AP Computer Science Principles (CSP) section this year, so I'm competing with that course too. I'm a member of the Math dept. CSA has always been taught by our dept. CSP is currently taught by a Science teacher. I didn't want to teach CSP as it's too much like a CS 101 class in college for non majors. Further, CSP has five modules, only one of which is about algorithms based solely on pseudo code... not my cup of tea.


FYI, I also teach Computing Science Lab (CSL) for Calculus students learning Computer Algebra Systems and Computing Science Independent Study (CSI) for students who have taken CSA and want to build a Linux cluster. We haven't had the enrollment to offer CSL for some years now, but we cover Computer Algebra Systems is preCalculus Honors now. As you can see, for better or worse, I have been the only teacher in my school in charge of maintaining and developing CompSci related curricula like this (CSH, CSA, CSI and CSL but not CSP) over the course of the past 36 years!

Well, that's all folks.

Generally Speaking,
A. Jorge Garcia

 
Applied Math, Physics and CS
www.patreon.com/calcpage2020

www.youtube.com/calcpage2009

calcpage.redbubble.com

society6.com/calcpage






2015 NYS Secondary Math PAEMST Nominee


Teaching with Technology, 
pastebin youtube slideshare 
mathforum apcommunity sage

(IDEs & Code)
MATH 4H, AP CALC, CSH: SAGECELL
(Curriculae)
CSH: CodeHS
APCSA: Big Java
APCSA: CSAwesome

RECOMMENDED AP COMPSCI REVIEW:
CRIB SHEET (given during exam)
REVIEW BARRONS BOOK (see me)
REVIEW BARRONS ONLINE 
REVIEW APCENTRAL (past FRQs)
REVIEW EDX REVIEW MOOC01 
REVIEW UDEMY REVIEW MOOC02 
REVIEW CODING_BAT 
REVIEW PRACTICE_IT 
REVIEW RUNESTONE 
AUDIT CS50

RECOMMENDED AP CALCULUS REVIEW:
CRIB SHEET (not given during exam) 
REVIEW BARRONS BOOK (see me)
REVIEW BARRONS ONLINE 
REVIEW APCENTRAL (latest AB FRQs)
REVIEW APCENTRAL (latest BC FRQs)
REVIEW APCENTRAL (older AB FRQs)
REVIEW APCENTRAL (older BC FRQs)
REVIEW EDX MOOC01 
REVIEW COURSERA MOOC02

XTRA CREDIT FILKS RUBRIC 
(1 video = up to 5 bonus points):
1) Use a recognizable tune.
2) Karaoke entire song changing up the words (about STEAM).
3) You are Singing, Dancing or Playing an instrument.
4) You upload your video to YouTube and provide the url.
5) YouTube Description includes the lyrics.

XTRA CREDIT ARTICLES RUBRIC
(up to 5 articles = 1 bonus point each):
1) Cover Sheet is a Summary of the article.
2) FullPage, 12 pt, DoubleSpaced, 1" Margin.
3) Article has to be STEAM related
4) Article has to be a current event.
5) Copy of entire article is attached.

Saturday, May 14, 2011

CIS(theta) 2010-2011 - Eureka, we did it! - Meeting XIV

Aim: 
Completing Step 4!

Attending: 
CIS(theta) 2010-2011: DavidG, RyanH

Absent: 
CIS(theta) 2010-2011: HerbertKJoshG

Reading:
NA

Parallel Python
IPython
Large Integer number crunching Mersenne Primes
http://www.hoise.com/primeur/03/articles/weekly/AE-PR-01-04-37.html
Large Integer number crunching Beal Conjecture
http://www.bealconjecture.com/



InstantCluster Step 4: Software Stack (Completed)
By Jove, I think we've done it! OK, we had a really short meeting today as everyone had to come late due to xtra help and AP exams.... Anyway, we actually got openMPI working last time and didn't even know it! All we had to do was add the IPs to a file called "machines" to get nearly 2700 MFLOPs using 2 cores per node on 3 nodes!

Now, we can scale the cluster up from 3 nodes to all 24 students boxes and get over 20 GFLOPs. The trick was to use the 10.10.*.* IPs and not the 10.5.*.* ones. Maybe we could get the 3 servers in on this too for an additional 3 or more GFLOPs? 

BTW, we figured out how to setup the "machines" file by running ClusterByNight first, thanx Kevin Lynagh! That's also where we got the idea to run openMPI over openSSH. Sorry, but PXE boot just didn't work for us! We should also be able to add the octave/mpitb functionality from pelicanHPC as well, thanx Michael Creel!




We only installed gfortran on one box so we could compile flops.f on that node (lets call it the master node):
mpif77 -o flops flops.f

and copied "flops" to all the worker boxes (and used chmod 755 to make it executable) getting about 2650 MFLOPs on 6 cores over 3 nodes:
mpirun -np 6 --hostfile machines flops

What we messed up last time was making the "machines" file based on the 10.5.*.* static IPs we set up on eth1. When we listed all the 10.10.*.* DHCP IPs used on eth0, all worked fine! So, openMPI just defaults to eth0?

Well, it was almost fine. When the remote processes terminated, the master node hung. I think that's because the 10.5.*.* IPs are listed in the authorized_keys file. Maybe we can just edit that and make them 10.10.*.* too?

Well, that's all for now, enjoy!

Saturday, November 27, 2010

CIS(theta) Meeting VI (2010-2011) - pelican HPC the movie!

Aim: 
pelican HPC the movie!

Attending: 
DavidG, HerbertK, JoshG, RyanH

Reading: 
Building Parallel Programs, Chapter6

Research6: 

We went a little cuckoo this week and watched all the Pelican HPC related videos we could find online!  We wanted to see that other peeps were getting Pelican to work and how they did it.  Maybe we missed something?  We started with a series of four:









Then we viewed the tutorial video from the Pelican website:



We found two more on YouTube:





OK, here's the CbN (Cluster by Night) video too.  This one is nice as it uses a CD for the Master Node and multiple CDs for the worker nodes.  So, this solution does not use PXE+openMPI+Octave, it uses ssh+openMPI+Ruby!



Well, that's all for this week.  I hope you enjoyed our movie night!  Next week, we're going to bring in our own cables, switches, routers and laptops to see if we can get Pelican to work in our lab....

Happy Clustering,

Saturday, November 13, 2010

CIS(theta) Meeting V (2010-2011) - pelican HPC CD on Overdrive!

Aim: 
pelican HPC CD on Overdrive!

Attending: 
DavidG, HerbertK, JayW, JoshG, RyanH

Reading: 
Building Parallel Programs, Chapter5

Research5: 
pelican HPC website
http://idea.uab.es/mcreel/ParallelKnoppix
pelican HPC tutorial
http://pareto.uab.es/mcreel/PelicanHPC/Tutorial/PelicanTutorial.html
pelican HPC forum
http://pelicanhpc.788819.n4.nabble.com
pelican HPC article
http://www.linux-magazine.com/w3/issue/103/030-035_pelicanHPC.pdf
pelican HPC based
http://birg1.fbb.utm.my/birghpc
pelican HPC based
http://kestrelhpc.sourceforge.net
pelican HPC like
http://www.ehu.es/AC/ABC.htm
pelican HPC like
http://www.dirigibleflightcraft.com/index.html




This week we went into pelicanHPC overdrive!  pelicanHPC was developed by Michael Creel at the University of Barcelona for his research in Econometrics using Octave and MPI.  We downloaded the ISO and burned one CD.  We then booted one of our 64bit dualcore AMD Athlons to try out pelicanHPC.  We booted the remaining 24 PCs (total of 50 2GHz cores) from that CD via PXE or netboot.  The video above follows the tutorial on the pelicanHPC website.  Take a look at the BIRG website with a version for Bioinformatics and protein folding.  It also has a tutorial.  Kestrel looks interesting too but it has to be installed on a hard drive and I don't think I want to give up the Ubuntu desktop we use in class during the day.  Our clustering experiments will be conducted after hours.  Take a look at CLuster By Night which uses ssh instead of PXE and Ruby instead of C++ for MPI jobs!



We ran into a bit of a SNAFU, however, as the client PCs got stuck somewhere in the middle of the boot process via PXE (so PXE boot works at least).  So, I dragged out a CrossOver Ethernet cable (http://www.littlewhitedog.com/content-8.html) I had spliced together ahead of time for just such an eventuality.  



This way we can fool 2 PCs (4 cores on the Athlons or 8 cores on the Xeons) into "thinking" they were still on an isolated LAN (PXE boot only works over Ethernet on a network with no other DHCP servers). 



We attached the Ethernet cards on eth1 (we also have eth0 for a public Windows LAN) that we usually use for the private Linux LAN, but ran into the same problem!




We also discussed using pelicanHPC or parallel Java "out of the box."  In other words these clustering solutions work fine on multicore PCs, the problem is networking more than one node.  We should have no problem making pelican or PJ use 1 or 2 cores on one of our AMD Athlons and 1, 2 or 4 cores on one of our Intel Xeons!


Well, "That's All Folks," for this meeting. We'll tackle the new server again next meeting in 2 weeks. Check our new Facebook Group, CIS(theta), for our next event!  BTW, this 1 hour meeting every 2 weeks is mandatory.  






Happy Clustering,

Saturday, October 2, 2010

CIS(theta) Meeting II (2010-2011) - Burn Fest!!


Aim: 
Burn Fest!!


Attending: 
DavidG, HerbertK, JayW, JoshG, RyanH


Reading: Building Parallel Programs, Chapter2


tjhsst
http://www.tjhsst.edu/~dhyatt/supercomp/index.html
tjhsst
http://www.tjhsst.edu/~rlatimer/compsys/compsys2001.html




This week we reviewed the reading from Chapter 1 and the links from Reasearch 1.  We talked about setting up pelicanHPC in the near future via PXEboot to run some jobs using Octave, MPI and MPITB.  This week's reading is Chapter 2 and Research 2.  I put up Research 3 as it is related to TJHSST, but you can skip those links for now.





The next version of Ubuntu is coming soon
Then we talked about our 64bit Ubuntu install as discribed here: http://shadowfaxrant.blogspot.com/2010/06/so-many-linux-distros-so-little-time.html whereby all the PCs in our lab are installed identically (24 student clients, 1 teacher client and 2 servers) via the Ubuntu 10.04 live install CD (dualboot with WinXP making linux the primary boot partition on grub2).  I added JRE to the teacher and student stations so we could do 3D graphs on SAGE.  I also added VLC to the teacher station so I could display my crazy videos.  



We discussed adding flash (for youtube viewing), WINE (for VTI in math class), handbrake (to edit DVDs for youtube upload) and xournal (for writing notes in class with my wireless tablet) to the teacher station.  We will also be installing vsftp and openssh-server on the servers. 




Note: student and teacher PCs are 64bit dualcore AMD Athlons and the new servers are 64bit quadcore Intel Xeons.  So, the "geek squad" has its hands full with helping me do all this in the near future!







Meanwhile, the "geek squad" burned, labeled and cased 50 Ubuntu 32bit liveCDs that I can now give out in my classes for my new students to work from home in the same environment as they do in class.  BTW, we made a mini field trip to the Math Office to get some CDs where we found 10x100 CD and 15x50 DVD spindles!  Thanx guys!


Happy Clustering,

Wednesday, September 8, 2010

CIS(theta) Meeting I (2010-2011) - Welcome Back!

Aim: 
Welcome Back!


Attending: 
DavidG, HerbertK, JayW, JoshG, RyanH

Reading: Building Parallel Programs, Chapter1


Research1: 

pelicanHPC
http://idea.uab.es/mcreel/ParallelKnoppix/
mpitb
http://atc.ugr.es/javier-bin/mpitb_eng






I welcomed our new CIS(theta) team today!  We will meet every other Wednesday.  Our task is to learn about cluster computing hardware in general.  Investigate the current state of cluster computing software and find a problem worthy of running on our cluster.  




First, let's get some vocabulary straight:
CIS(theta) = Computing Independent Study class
CIS(team) = DavidG, HerbertK, JoshG, JayW, RyanH (aka Geek Squad)
Shadowfax = 25 node, 64bit dual-core AMD Athlon 2GHz, gigE cluster




How about some history:
CIS(team) 0: We've done a bit of cluster programming over the years as a final project in AP Computer Science after AP Week all the way back to clusterKNOPPIX, i386/486s and slow ethernet!  Actually, about 25 years ago I helped JamesM with a robotics project for the Westinghouse Talent Search.  So, that's when the bug bit me to get into all this research with my students!  I think the computing independent study started about 20 years ago when JoeB wanted to learn about Mathematica and Vector Calculus.




CIS(team) I: ChrisR, FrankK, NathanielR successfully installed openMOSIX on 25 Pentium IVs over fastE and created several Mandelbrot plots using C++ and fork().  We followed the advice from this blog, http://nullprogram.com (search there for mosix, octave, c++ or fractal).  Take a look at the fractal prints on my deviantart site, http://cistheta2007.deviantart.com/gallery


CIS(team) II: MarcA, MitchellW were the first to use the current cluster hardware.  They installed the Quantian Linux DVD and used bash scripts to scatter/gather povray jobs over publicly authenticated ssh.  Take a look at the ray tracings on my zazzle site: http://www.zazzle.com/cistheta2008/gifts


CIS(team) III: ArthurD, DevinB, JeremyA, StevenB were the first to attempt using the current cluster hardware in 64bit mode.  We tried Fedora, CentOS and even Rocks Clusters and OSCAR to no avail.  I think we barely got HelloCluster.cc running on openMPI.


CIS(team) IV: DavidG, HerbertK, JayW, JoshG, RyanH will try 64bit mode again on Ubuntu Linux 10.04 that I have already installed on all nodes (see my post on this, http://shadowfaxrant.blogspot.com/2010/06/so-many-linux-distros-so-little-time.html).  You may want to try pelicanHPC too. This is a 32bit live Linux CD.  With this CD you are supposed to be able to reboot the whole room as an MPI cluster in minutes without installing a thing!  What's nice about this solution is that it includes openMPI and has a lot of demos.  We had this working on the new hardware last summer but sometimes its hard to use as its based on PXE and there's some DHCP server on our 10.5.*.* subnet that interferes with booting the nodes.  However, another benefit of this CD is that it includes Octave (like MATLAB/SAGE) and mpiTB (an interface for Octave to work with MPI)!  Hence your online research assignment listed above.  Another CD solution with MPI is BCCD.  An older DVD with openMOSIX is QUANTIAN.





So, our first meeting consisted of discussing all the above.  Also, I mentioned that the CIS(theta) team will act as my personal Geek Squad and help me install hardware, firmware and software in our PC Classroom (since I am still recuperating from surprise hernia surgery).  So, we had 2 "field trips."


Firld Trip 1: We went to the display case with some fractal and ray tracing prints we wanted to swap out.  We also went to Mrs. Murthy's new office to help decorate it with some prints.  We saved some nice big prints for the PC Classroom.  We are getting 6 new marker boards in there which will be installed all around the room.  I will hang a big print above each one.  So, my decorative work here is done!


Firld Trip 2: I also showed the current CIS(theta) team around to all the servers
centauri: ftp server in the book room
colossus: ssh server in the business office
guardian and caprica: new servers in the PC Classroom


So, the Geek Squad will also be helping me to install these new servers.  The new servers will eventually replace the old ones.  These new servers each have 4x72GB RAID drives and have 64bit Intel Xeon quadcores!  Maybe we should make a cluster out of these?  Google Cloud Computing using Ubuntu and Cloud Computing for HPC.


Wow, we have our work cut out for us.  But, I think we are going to have a lot of fun this year!





Happy Clustering,

Tuesday, September 22, 2009

Meeting II

Today's Aim: Boot up an MPI cluster using the Pelican HPC 64-bit bootable CD from the University of Barcelona on the Master Node and PXE booting the Worker Nodes
Tonight's Reading: Building Parallel Programs, Chapter 2
This Week's Research: look up info on GIMPS, PovRay and Fractals
Attending: JeremyA, SteveB, DevinB, ArthurD 

We had a problem with conflicting DHCP servers on our LAN when setting up Pelican HPC, even though the Linux LAN is supposed to be isolated.  I was surprised as I had this working last June!  We'll try again next meeting.  We are also looking into downloading and buring the Red Hat Fedora 11 64-bit installation DVD to reinstall the whole room.  Eventually, we'll try to emulate the MPI+MPITB+Octave cluster a la Pelican HPC.  Maybe we can install Sage from the University of Washington and use dSage?  What about the proprietary version of MOSIX, now that openMOSIX is dead, from the University of Israel?


Happy Clustering,