Computer Science Tools Review

9ipArbkiEReviewing the live adaptation of Ghost in the Shell has put me in the mood to present some other reviews and so without further adieu I will be presenting my Top Ten for Computer Science Teaching Tools. These are presented in no particular order or ranking and I would be very happy to have someone add to the list in the comments section below if I miss one of your favorite tools or programs.

greenfootOne of my personal favorite programming tools will always be the Educational Java IDE Greenfoot.  I believe that this is one of the most comprehensive and useful combinations of curriculum and tools available for teaching Java and the basic concepts of Object Oriented Programming.  Notice I added both of those qualifiers.  There are certainly more effective programming interfaces and some tools that make learning the basics of programming simpler but to combine both of those things into a single application, Greenfoot can not be beaten.  The program creator, Michael Kölling, is first and foremost, an educator rather than simply a programmer, and this is apparent in the way that he designed the Greenfoot application to bring out the basic tenets of programming, and specifically Object Oriented design while hiding much of the complicated boiler-plate code that students will get to soon enough in Eclipse or Net Beans.  Rather than begin in a procedural mode teaching loops and variables and other constructs and then bringing class into it  (There I go…bringing class into it) Michael starts off with proper class design principles from the beginning and teaches constructs along with OOP design.  The best time to build a mind-set, in this case, for Object Oriented Programming, is in the beginning and that is exactly what Greenfoot does.

arduinoMy next favorite tool is the combination programming environment and hardware that make up the Arduino system. In order to get students interested in programming and code creation we need to get them engaged. Nothing creates interest and focuses attention better than creating something that works. Lights flash. servos turn. robots move. All of these things tie the attention of the young programmer onto the task in a manner that does not seem at all tedious or difficult. With the Arduino programming environment concepts like functions, methods, variables, loops, and program logic can be taught in bite-sized portions that don’t overwhelm the young programmer. Also Arduino provides an avenue to teach fundamentals of engineering, circuit design, and making in general. Considering the price of the hardware, this is an excellent investment for a part of your classroom budget each year.

With that, the first edition of my Top Ten Computer Science Teaching Tools comes to a close.  I will continue the list tomorrow and try to finish by the end of the week.  If you have suggestions or comments, please list them below.  Also, “likes” are appreciated.

Thanks.

TCEA 2017

arduinoOnce again I am off to Austin, TX (not my favorite place to travel to but I seem to go there a lot) to present my way of teaching technology to the attendees of the Texas Computer Educator’s Association.  I have done this for the past 5 years and it just keeps getting better each year.  I am presenting on the topic of using incorporating the Arduino microprocessor and the Internet of Things into the curriculum of a technology classroom at the secondary level.  I have been using Arduino for also about five years and find it to be an incredible tool for creating engagement with the students.  Everyone likes to be in control and make things happen.  Something about typing code into a screen and seeing a motor turn or watching an LED blink on and off in response to a sensor is satisfying beyond what it should be.  Compared to Raspberry Pi (which I also use) or other small computers/processors, the Arduino is inexpensive and easy to incorporate into all sorts of projects.  The basic theories of electronics (Ohm’s Law, Kirchhoff’s Law, etc) are easy to teach and building circuits that actually do something really helps focus the student’s attention on the task at hand.  In short, it is an excellent way to spend some grant money if you happen to have it available.

So off I go.  Wish me luck.  I will do my best to blog while I am away but no promises.  It is, after all, a very busy time.  I hope to see you there and I REALLY hope that you can drop by at 8:00 am on Monday and sit in for my demonstration.  I think you will find it interesting and useful – at least, that is my goal.  Safe journey if you are traveling this week.

TCEA 2017 is a GO!!

I just got my acceptance letter to present a premiere session at TCEA 2017 in Austin, TX tbusyhis year.  I will be presenting Arduino and the Internet of Things on Monday, Feb. 6 at 8:00 am.  You will need a premiere admission to attend as this is a half-day “hands-on” session.  I would LOVE to see someone there who is also a blog reader.  Speaking of which, I know I have been remiss in posting but this year has been incredibly busy.  I have nine (NINE!!) preps this year.  Seven classes, two of which run two classes concurrently.  Needless to say I am very overloaded.  Also, my fledgling music career is moving forward.  Fifth Sparrow completed their summer tour of West Texas and also played the Whitesboro Peanut Festival.  So before you chide me for inattentiveness, please be aware that I am not just being lazy.

Introduzione Arduino

Saluti amici.  Benvenuti nel mondo della tecnologia.  Tonight TechnologyNEducation is featuring a software/hardware combination that is sure to be a hit in any Physics, Engineering, or Technology classroom; the Arduino microprocessor and its accompanying IDE software.  Arduino is one of the best Italian exports since the Ferrari.  With a few electronic components and a little imagination you can literally do ANYTHING.  Built robots, weather stations, web servers, plant waterers, garage door openers.  spider dresphotoses with legs that move like the real thing when people get close to the wearer…ANYTHING.

The Arduino consists of an ATmega328 processor embedded into a printed circuit board with various inputs and outputs.  One has access to digital and analog inputs and outputs, PWM (pulse with modulation), an on-board oscillator, and many other features to make prototyping your next great invention a snap.  One communicates with the Arduino from a PC via a standard USB connection and the unit will run off USB power or by way of a separate power jack.  It uses a processor platform called Wiring which is essentially a C/C++ library modified and geared to input/output.  In order to have a viable Arduino program (or sketch as they are called) one must simply create two functions; a setup() function in which any instantiation or initialization can occur, and a loop() function that, as it’s name indicates, continue to operate once the program in initiated.

As I am a serious proponent of teaching code in the classroom at every opportunity, this device immediately intrigued me.   Since I have begun using it in my “Concepts of Engineering” classroom, I have not ceased to find new applications for lessons.  Outside of the very useful coding and programming applications, Arduino teaches problem solving via algorithims, basic engineering skills, electronics and circuit design, and it is a wonderful introduction to the Internet of Things.  If you don’t already know what the IoT is, you need to stop reading this and head over to Google.  It is the fastest growing facet of the Internet today.  The Arduino and its supporting cast of breadboards, resistors, capicitors, and switches is a great way to get engagement and interest in topics that would ordinarily receive a groan of dismay when announced.  The product is fairly inexpensive and requires no great training commitment on the part of the instructor.  Besides…They are FUN!