Showing posts with label discrete math. Show all posts
Showing posts with label discrete math. Show all posts

Saturday, April 6, 2013

Teaching Computer Science Honors: Continuing Turtle Graphics!

Teaching Computer Science Honors: Continuing Turtle Graphics!

We continued Turtle Graphics using "How to Think Like a Computer Scientist using Python." We are spent all week on a lab with loops, functions and turtles. Next week we'll do some random walks!

Here's our ScreenCasts and Code for this week:

 








mySAGE code for CSH2012!


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

Friday, February 8, 2013

Quarter III, Week 2: ScreenCasts, SmartNotes and Code oh my!







Quarter III, Week 2: ScreenCasts, SmartNotes and Code oh my! 

Math 4R: preCalculus for Seniors
Math 4H: preCalculus Honors for Juniors
Math 5H: AP Calculus BC
CSH: Computer Science Honors
APCS: AP Computer Science
CIS(theta): Computing Independent Study
PAEMST: Presidential Award of Excellence
Ubuntu: Linux Install Fun and Games

Above you will find links to summaries of all my lessons for the past several weeks. So, this blog post serves as a Table of Contents for all my other blogs from class!

In addition, CIS(theta) is a summary of my Computing Independent Study class that meets after school like a club. 

PAEMST details my trials and tribulations regarding my 2012-2013 application for the Presidential Award of Excellence in Math and Science Teaching. 

Last, but not least, UBUNTU is a collection of blogs about installing, maintaining and teaching with Ubuntu Linux on my desktop and on my students' desktops in class!

Our YouTube Wednesday was about what can go wrong on your PC!




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

Sunday, January 27, 2013

Teaching Computer Science Honors: Continuing Chapter 5 - Number Systems!



Teaching Computer Science Honors: Continuing Chapter 5 - Number Systems!

This week we continued Number Systems! We talked about the bin(), oct(), hex() and int() python commands! We even wrote our own bin() function.

Here's our ScreenCasts and Code for this week:





mySAGE code for CSH2012!



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

Saturday, December 15, 2012

Teaching Computer Science Honors: TI-83 BASIC Programming Case Study!




Teaching Computer Science Honors: TI-83 BASIC Programming Case Study!

We decided to take a break from SAGE and Python and Discrete Math for a couple of weeks. This past week we tried our hands at TI-83 BASIC! We wrote some very BASIC (pun intended) programs to introduce the concept of Input/Process/Output. I think my students enjoy this topic as they can take these skills to Math and Science class where they use TI-83s or TI-84s. 

We'll take a look at TI-89 BASIC in a future case study. The TI-89 is more like SAGE in that it has a Computer Algebra System built in. Also, TI-89 BASIC uses functions just like Python. 

Here's our ScreenCasts and Code for this week (YouTube embedding is down):

TI-83 BASIC: RECT.p83, SQUARE.p83
http://youtu.be/IGd6Rp5jYOw


TI-83 BASIC: PRISM.p83, CUBE.p83
http://youtu.be/YmYDB-4I0r0


TI-83 BASIC: PYRAMID.p83, CONE.p83
http://youtu.be/JYfto0miAhc


mySAGE code for CSH2012!


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

Friday, November 16, 2012

Teaching Computer Science Honors: Continuing Chapter 4!



Teaching Computer Science Honors: Continuing Chapter 4! 

Finally, 2 weeks after Hurricane Sandy, Computer Science Honors continued Chapter 4 all about summing sequences: arithmetic, geometric, telescoping and other series!


Here's our ScreenCasts and Code for this week:




mySAGE code for CSH2012!


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

Sunday, October 28, 2012

Teaching Computer Science Honors: Continuing Chapter 4!






Teaching Computer Science Honors: Continuing Chapter 4! 

Computer Science Honors continued Chapter 4 all about summing sequences: arithmetic, geometric, telescoping and other series!


Here's our ScreenCasts and Code for this week:






Code for Chapter 4 Section 3.

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

Friday, October 19, 2012

Teaching Computer Science Honors: Starting Chapter 4!





Teaching Computer Science Honors: Starting Chapter 4! 

Computer Science Honors started Chapter 4 all about sequences, series and list comprehensions in python!


Here's our ScreenCasts and Code for this week:




Code for Chapter 4 Section 2.

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

Friday, October 12, 2012

Teaching Computer Science Honors: Finishing Chapter 3, Starting Lab 3!




Teaching Computer Science Honors: Finishing Chapter 3, Starting Lab 3! 

Computer Science Honors finished Chapter 3 all about strange function input and output in python!


Here's our ScreenCasts and Code for this week:




Code for Chapter 3 Section 3.
Code for Chapter 3 Section 4.
Code for Chapter 3 Section 5.


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

Sunday, October 7, 2012

Teaching Computer Science Honors: Finishing Lab 2, Starting Chapter 3!



Teaching Computer Science Honors: Finishing Lab 2, Starting Chapter 3! 

Computer Science Honors finished Lab 2 all about Computer Hardware and the Python Interpreter! I don't post anything online about labs.


We started Chapter 3 talking about variable types and scope in python. Here's our ScreenCasts and Code for this week:



Code for Chapter 3 Section 2.


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

Saturday, September 29, 2012

Quarter I, Week 4: ScreenCasts, SmartNotes and Code oh my!

Quarter I, Week 4: ScreenCasts, SmartNotes and Code oh my! 

Math 4R: preCalculus for Seniors
Math 4H: preCalculus Honors for Juniors
Math 5H: AP Calculus BC
CSH: Computer Science Honors
APCS: AP Computer Science
CIS(theta): Computing Independent Study

Above you will find links to summaries of all my lessons for this past week!

This week were off on Wednesday for Yum Kippur, so we had no YouTube Wednesday! But I did show the following YouTubes in Calculus class:





Enjoy a little background music played by Itzhak Perlman:




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

Teaching Computer Science Honors: Starting Chapter 2!


Teaching Computer Science Honors: Starting Chapter 2! 

Computer Science Honors started Chapter 2 all about Computer Hardware and the Python Interpreter!


I think that next week we'll finish Chapter 2 and start Lab 2. Here's our ScreenCasts and Code for this week:






Code for Chapter 2 Section 2.
Code for Chapter 2 Section 3
Code for Chapter 2 Section 4


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

Sunday, September 16, 2012

Teaching CSH: Chapter 1 is nearly done!



We almost finished Chapter 1 this week. We worked on section 102 Pythonic Functions, 103 Defining Functions, 104 Algorithms and 105 Coding in Python. Below, you will find all our ScreenCasts and Python Code!







Code for Chapter 1 Section 2.
Code for Chapter 1 Section 3.
Code for Chapter 1 Section 4.
Code for Chapter 1 Section 5.

Well, that's all folks!

Saturday, September 18, 2010

Welcome to Room 429, Computer Math and Computer Science!



Here's a hearty welcome to all my new students in Computer Math! I think we got off to a great start. We've already got a hang of using http://www.sagemath.org/ and we are even starting to use the python programming language.  Our new textbook is great too, take a look at http://www.skylit.com/mathandpython.html, cudos to the authors Gary and Maria Litvin on a job well done!  This is a great course in Discrete Mathematics.  Combining this text with SAGE makes for a great intro to Scientific Computing too!


BTW, it's the 63rd anniversary of the first computer bug, so guess what YouTube Wednesday was about for the last few Wednesdays in class!



Welcome back to my AP Computer Science students who were in my Computer Math class last year! I think we're off to a good start here too having completed the first 2 chapter's of Cay Horstmann's Java Concepts text (http://horstmann.com/bigjava.html), the best programming book I've ever had the pleasure of reading!



Don't forget, in addition to YouTube Wednesdays, we're going to start MCQ Mondays this week.  Be prepared, be very prepared!  Remember, you guys are honorary Boy Scouts, http://www.scouting.org/.  So, your motto should be, "always be prepared!"   We're going to start FRQ Fridays soon too....

Sunday, May 9, 2010

KNOPPIX to the rescue!


OK, this week was a comedy of errors is my Computer Math class!
Actually it was my Advanced Computer Math class, the second semester of our pre Computer Science course. We were doing some simple object based projects in C++ recently. So, I thought it would be nice to try a graphics class. I decided to use the graphics class from "Computing Concepts with C++ Essentials" 2nd edition. I've used this class in the past without a problem.


I forgot, however, that we had upgraded our server, based on Debian, from the XFree86 to the newer Xorg Linux windowing system last summer. The graphics class we were using needs to link to the files in a directory called X11 in /usr/X11R6/lib which doesn't exist anymore! So I tried to reinstall it with the command line "sudo apt-get install libX11-dev" as suggested by some people with the same problem at Drexel University. This didn't work as apt-get reported the file deprecated in the Debian repository.



So, I downloaded the last version of QUANTIAN DVD iso (based on KNOPPIX 4.0 which, in turn, is based on Debian from 2005) and burned it for my students. This was a great fix as the old X11R6 system worked fine on a PC booted from that DVD! The problem now was that my clients have Fedora 12 installed and the burning software is a little buggy. It took so long to burn just 12 DVDs that I had to have the class burn and test the remaining 12 DVDs that we needed. What good sports!



OK, the next day my students booted up the whole class with QUANTIAN 0.7.9.2 and we were ready to go, right? Nope, the DVDs would not recognize eth1 which is configured to be used as our private Linux intranet so we can remotely store files on our sftp server. It worked fine the day before, so that network must have been down for some odd reason (never been down before).



Anyway, I showed my students how to be the "super user" and setup static IPs on their eth0s and we were finally good to go. We successfully wrote, compiled and saved a few lines of graphics code without errors and the bell rang!



I think that next week I'll download the KNOPPIX 4.0.2 CD and burn that for them. It should still have X11R6 but be a bit less buggy with our modern hardware (also faster to download, burn and boot).



...the best laid plans of mice and men.

Saturday, March 6, 2010

Rocks Cluster Distro Rox!


It's time for a bit of introspection.  We have not gotten much running on the new 64bit dual-core AMD Athlon based cluster.  So, here's what I'm thinking about.  I'm talking to the powers-that-be at my school about: 



(1) installing an all linux environment (http://www.rocksclusters.org) for my parallel programming class and other programming classes
(2) moderninzing my intro programming class to use "Mathematics for the Digital Age" and SAGE to teach discrete math and programming 
(3) running a Calculus Research Lab using SAGE to teach Calculus using computers (every other day like a science lab in addition to Calculus class in a PC classroom) 


I've seen LittleFe (get it? not "big iron"), its actually based on BCCD which I've used (1.0 based on openMosix, 2.0 based on MPICH, 3.0 based on openMPI). I'm not interested in building the hardware, however. I want to make use of the dualcore AMD 64bit Athons we have! BTW, we've also used clusterKNOPPIX/parallelKNOPPIX/Quantian based on openMosix as well as pelicanHPC based on LAMMPI, MPITB and Octave. I'd like to emulate the pelicanHPC model in a permanently installed cluster.


I have a dedicated ftp server (to share files with my students) and sftp server (for students to save their work) based on Slackware. So all they really need the Linux desktop for is to anonymous ftp or ssh with a passwd into one of those servers and do their work there. I don't use WIMxP for anything.... So, maybe its time to nuke the WIMxP partition and set up a Rocks Cluster!


OK, I think my Computing Independent Study students have more programming vs. hardware experience, so I'd like to leverage that (although, they helped me reinstall my classroom with Fedora). So, "hiding the details" of seting up the cluster is OK at this point. I'd like to focus on parallel programming. I read some of the beginner's dox and have the following concerns: 


MASTER NODE: 
(1) Does the master node have to be dedicated or can it be dual boot? My dept likes WimpDoze for some reason. So, all our PCs have WIMxP on hda1 and 64bit Fedora 12 on hda2. 
ANSWER: Yes it is dedicated. In fact, the install process is simplified to such an extent that nuking the partition table is automatic! 
(2) Does eth0 have to be on the private network? We have always had the internet (public network) on eth0 and the cluster (private network) on eth1. 
ANSWER: Yes, so we'll just have to switch the ethernet cables around.  


WORKER/COMPUTE NODES: 
(3) When installing the compute nodes, can I specify a partition? When the compute node PXE boots, Rocks gets installed to the hdd, right? Or does the cluster just run in RAM on the compute nodes? 
ANSWER: Nope, the compute nodes are installed to hdd from the master node via PXE and the partition tables are nuked again!
(4) When installing the compute nodes, can I boot from CD/DVD as with the master node? PXE boot has had issues in my lab (conflicting DHCP servers?). 
ANSWER: Yes, but PXE boot is a time saver so lets see if we can do it that way.
BOTH NODES: 
(5) Is the resulting installation usable as a desktop for everyday tasks when the cluster is not in use? I teach AP Computer Science with Fedora as the desktop and slackware running my ftp (for sharing files with my students) and sftp (for students to save their work) servers. 
ANSWER: Yes, you get a stable FLOSS version of RHEL that's even better than Fedora called Centos.  


BTW, we've been playing with clusters for a while: 
Colossus: 486 PCs + ethernet + PVM 
Guardian: Pentium I&II PCs + ethernet + openMosix
Centauri: Pentium III&IV PCs + fast ethernet + openMosix 
Shadowfax: 64bit AMD Athon PCs + gigE + ??? 

We got the latest hardware upgrade last school year. At that point we didn't know what to do with it all. So, we installed Debian and wrote bash scrpts to scatter/gather povray jobs via publicly authenticated ssh. This year, we started by installing 64bit Fedora 11 (then Fedora 12) and trying out openMPI. We are having a bear of a time getting openMPI to work over our public key authenticated ssh. Then I read about Rocks and found that it has a similar goal. Rocks is based, in part, on RHEL and openMPI! 
Here's some nice dox: http://www.rocksclusters.org/rocksapalooza/2006/lab-mpi.pdf