App Smashing: Working with Combinations

Thus far I have been concerned with reporting on programs for teachers and students to use in the education process.  Now I gimpfootam going to mention a pair of programs that work together with an energy much greater than the sum of their parts.  The hardest part of game development is creating the assets to use in the game.  The code syntax is fairly easy to master but creating the sprites or images to be used in the game as well as backgrounds and character design is tough.  This package provides all the tools you need to completely design and build games that can be shared online or compiled into a desktop application.  I’m talking Greenfoot and GIMP.  Introducing GIMPFOOT.  Both of these applications are portable.  It is possible to create a game or simulation from start to finish with these applications installed on a flash drive.  This is very convenient when one is unable to install applications on a PC or when using a public computer that is incapable of having software added.

Both of these applications are open source.  They may be downloaded and distributed for free.  This is a huge plus when starting up a development class because it is possible to put professional quality tools in the hands of students at no charge.  In fact, given the cost of a flash drive, it is possible to provide students with multiple copies of the software, one for school and one to take home.  The programs will run on just about any flavor of Windows and it is possible to build flash drives for Linux and Mac as well.  All in all, this is a great way to get kids started developing for almost no investment.

This is not a perfect solution.  While Greenfoot is easy and intuitive to learn, GIMP requires a bit of practice.  It will, given appropriate training and effort, rival Photoshop in its capabilities.  There are plenty of tutorials and training material available on the Internet to bring anyone, teacher or student, up to speed.  Greenfoot may be downloaded from http://www.greenfoot.org  While GIMP is available in portable format from Major Geeks.  Both may be downloaded and install on any flashdrive and both take up no more than about 400 M of space.  They will seem a bit slow to run the first time they are activated from the flash drive but will speed up considerably after that.

Advertisements

Getting Your Feet Green in Java

Tonight’s entry into the Teacher Tech. Tools series is also a personal cause of mine.  Greenfoot is an entry-level Java IDE (integrated greenfootdevelopment environment) that is tailor-made for education.  This software package allows a complete beginner to begin creating interesting and engaging games and simulations almost from the moment lessons are begun.  Given the rapid growth of the IT and Software Development industries, anything you can do to stimulate interest in computer programming is going to be beneficial to your students.  Greenfoot teaches legitimate Java syntax and “real world” object oriented programming theory while hiding the more complex operations “under the hood” so to speak.

I teach basic programming to high school sophomores at for a rural school district in North Texas and I can vouch for the interest and engagement value this software and it’s curriculum provide. We began class with Michael Kölling’s book “Introduction to Java Programming with Greenfoot” and by the end of the first lesson, the class was hooked.  We have since moved on to Eclipse and more advanced topics but my class constantly requests that we go back and visit one of the Greenfoot projects.  As I am presenting a coding boot-camp at the TCEA state conference in Austin, TX (also over Greenfoot) during the first week of February, my programming class will be running a Greeps competition in my absence.  Those who are initiated into the Greenfoot world will understand and rest assured, my kids are ecstatic at the prospect.

“But I don’t know anything about Java, or coding, or computers, or greeps for that matter.  I DON’T teach computers, How can I possibly make use of this tool?”  Believe me, teaching with this program is every bit as easy as learning with it.  There is a wonderful community of users, most of whom are also educators, who are happy to help get a newbie up and running.  Lessons and projects abound on the forum and Michael Kölling has an excellent text book available to provide inspiration and support.  His blog site, The Joy of Code, is a step-by-step tutorial on how to teach java, object oriented programming, and introductory computer science to anyone at almost any age.  This curriculum would be useful as it is in a middle school or high school, and, with minor modification, could be easily ported to an even younger group.

I have tried other “educational” software development products (Scratch, Alice, Lego NXT) and all have merit.  They do NOT, however, as a rule teach legitimate code technique and syntax.  Most are a “drag and drop” interface that has very little connection with the real world.  Greenfoot teaches Java.  It explains the concepts of class, objects, inheritance, constructors, methods, and other ideas that the neophyte programmer will still be using long after college and landing a job in the field.

Each year a programming event called The Hour of Code occurs in schools and other educational venues around the world. The idea is to get young people interested in technology and particularly, software development.  First, visit the link above and find out why you need to be teaching an hour of code, and then check out the Greenfoot link to see if it is not the perfect tool for teaching programming.  When the lesson is over, you might hear something from your class that you are not used to…applause.

Livin’ The Dream(spark)

03-DreamSpark1

Today’s entry into educational technology tools is not simply a web site or single piece of software, it is a licensing plan offered by Microsoft to get professional quality development tools into the hands of students.  The program is called Dreamspark and it is the best way to provide real tools for students at a price that any school district can live with.

Many development companies, technology shops, and “just plain businesses” use Microsoft development tools and Operating System software as the foundation of their business models.  Given that the shortage of qualified developers and technical workers continues to grow, Microsoft has decided that providing their tools to up and coming young programmers can help alleviate the gap between qualified applications and jobs.  They have developed a program that allows students and faculty to have access to their flag ship business products for a tiny fraction of the cost that business pay.

The Dreamspark program is available to qualified and accredited High School and Universities and provides software packages for students and staff to be used for educational purposes.  Visual Studio Professional 2013 (and soon 2015), MS SQL Server, Windows Server 2012, and all the various flavors of Windows 8.1 are available for home and school use for around $100 per year depending on your circumstances.  These are not crippled academic or “lite” versions, this is the real thing.  If your school district can find someone to teach it, Microsoft will provide the tools to build the class.  To give an example of the value of this program, one copy of Visual Studio 2013, purchase retail runs about $500.  A copy of MS SQL Server standard goes for about $1000, and a full copy of Server 2012 standard, depending on the number of clients and other factors, can run from $500 to more than $2000 per copy.  Dreamspark provides all this and more for around $100 per year.  The software may be downloaded be each student for use at home via a personalized web store.  Essentially there are no limits to the numbers (although I think they cap the install keys at 500).  The price is hard to beat.

Many companies are seeing the value of providing professional tools to students who are interested in the learning those products.  Adobe Creative Cloud subscriptions for academic use can be had for around $20 per month (the commercial license runs about $50 per month for individual use and $70 a month of businesses).  3D software like 3DS Max and Motionbuilder by Autodesk can be used for free by students on a yearly basis but costs thousands to be purchased for commercial projects.  It is sincerely worth your while as an educator to investigate what titles are available for academic discounts.  You owe it to your students and your self to see what is available.

Linux: With great power comes great responsibility

In recent tweets, Facebook posts, and other social media outlets you may have heard me refer to any or all of the following: Linux, Debian, Unbuntu, Mint, CentOS, Sabayon, and, my personal favorite, Slacko-puppy. What, you may ask, am I talking about? (Go ahead…ask…you know you want to) Each of these arcane sounding terms is a different distribution of the Linux operating system. Still in the dark? Well lemme enlighten you.

Back in the bad old days of data processing, maybe 30 years bw (before Windows). Computers were the domain of the rich and corporate. Huge main-frame processors did the heavy lifting and data was entered using punch cards. These are semi-stiff card stock with 80 columns and 12 rows. Small square holes are punched in the cards in various patterns. EACH CARD REPRESENTS A SINGLE CHARACTER AS IN A LETTER OR NUMBER. You can imagine how many hundreds of cards it would take to enter even a single paragraph of text. In 1969, at Bell Laboratories, a group of individuals developed an alternative to this clumsy method of data entry in the form of an OS (operating system) called UNIX. It stands for Uniplexed Information and Computing System. (So named because it replaced Multics or Multiplex Information and Computing System) It was initially Unics but Hey! you know those wacky L33t computer guys love to play games with spelling.

About two years after the end of Reaganomics, (1991) a young Finn named Linus Torvalds, working with a system called Minix, developed an operating system patterned on the Unix Kernel. He wanted to call it Freax, but an FTP admin on the server he was using renamed the project without asking him. Thus the operating system LINUX was born. (Background info courtesy of the “History of Linux” Wikki).
This might be just another interesting (well sort of…) footnote in history except for Linus’ philosophy on what software, and computing should be. He proposed the idea that software and computing in general should be FREE!! This is where things get interesting.

Today Linux has made the jump from interesting (sort of) and geeky to mainstream corporate for just this reason. It is still FREE! I don’t mean just “no cost” to download and install. I mean that the code that makes up the system is available for download. You can modify it. You can market it. Once you get it, you can change it however. (Don’t try this with Microsoft. Reverse engineering Windows will land you in court and maybe even jail) You can do anything within reason. Now, the average Windows license for Windows 8.1 (the only version you can buy right now) will set you back about $75 (if you happen to have bulk license purchasing. If you go to Best Buy it will run three times that much) If you have ten or a hundred, or, like GM, more than 200,000 employees, most of which have to have access to their own individual licensed copy of an operating system on a PC, you can see why Linux (which is still FREE!) could generate some excitement. Couple that with a large (and growing) number of FREE applications (Libre Office, web browsers like Firefox (Iceweasel – almost as wacky sounding as Slacko-puppy) and lots of other business oriented apps and you, as well as many financial officers in corporate America, can see a huge incentive to work Linux into your business model. It also gives you lots of street cred and makes you look all edgy and cool.

Linux has the richly deserved reputation of being absolutely rock-solid stable (depending on which distro you choose – we’ll get to that shortly) and almost immune to malware. (The latter is NOT true. There are several viruses, Trojans, etc that can infect Linux. The intense and consistent testing and patching that Linux distros go through as well as the lack of root access in most distros keeps bad code invasions to a minimum) Until this year, more than half of all Internet Web servers (25 million on Godaddy.com hosting alone) ran Apache web server on a Linux frame…and it’s still FREE!!

I have been experimenting for the past few days with different Linux distros and trying to determine which is the easiest and best. The jury is still out on best but ease of install and configuring should have bearing on the “which is best” category. I can tell you, without hesitation, that Debian 7 (code name Wheezy – I LOVE these computer guys) is far and away the easiest to install. It has gone smoothly into Dell, Compaq, HP, servers, desktops, laptops, old systems, new systems, single or multiple processors, lots of RAM, little RAM, or just about anything with a chip. It does not balk at NVIDIA video drivers. In short, it works right out of the box, every time, with no hardware limits that I have found. I am a Debian (and its various forks and incarnations) fan. Unbuntu and Mint ranked near the top but I had trouble on different systems with each of them and when I dropped Debian (with KDE or XFCE) all my difficulties vanished. (GNOME can be an annoying little resource hog at times but even that works with enough RAM).

What, you may ask, distros did NOT make the cut? Well I am not very impressed with Sabayon 14 (or 13 for that matter). It balked at most video drivers and has got to be the slowest system since Windows Millenium. (Now THERE was a bad practical joke on computer users at large.) I have yet to get the latest Sabayon to install on a single system and run like I think it ought to. (I expect it to run like Debian.)

Slacko-puppy (and all the slackware distros) definitely get points for having the coolest name. Next time you are in a conversation, use the words “slacko-puppy” and see who looks up. I got it to run on a Dell laptop and a desktop but it balked at a Compaq with an AMD processor. It is cool but slow and seems to me like a system in search of a purpose. (The best I have come up with is to use it as a rescue disk for other systems that get malware and won’t boot. You can run it from a USB stick or CD and boot the drive up and clean out whatever nastiness you find.)

CentOS is a very light weight (read that as runs best as a server with no GUI and only command line access) and, supposedly, reliable system. I tried loading it on a Dell PowerEdge 700 and got no where. Debian went on like a glove and when I had configured NFS and SAMBA I found myself in possession of a multiple platform capable domain file server/DNS server/mail server.

Netrunner was also a No-Show. Tried it on a couple of Dell OptiPlex desktops as well as a Compaq Presario. It would not play nice. Red Hat Enterprise would load but took forever to download. It also looses points for not being completely without cost. (Debian is FREE and reliable)

There you have it. The results of my (decidedly) unscientific research into Linux. I have 3 new functional computers that cost me nothing. (I had the old systems laying around) They will edit MS Office documents, view PDF files, watch videos on Youtube and send and receive email. Outside of some fairly specific video compositing applications, I don’t need Windows at all. (If Adobe ever ports After Effects and Premier Pro to Linux I will bid farewell to Redmond, WA forever). Does this mean anything to anyone other than myself? Can any conclusions be drawn, other than that I am more familiar with Debian than other flavors of Linux? No. But I encourage you (especially if you have an old PC laying around that you want to repurpose to say… a home file server or a kid’s computer) to experiment. You can go to Google and search out any of the popular distros (use that word..distro…and you will sound MUCH cooler) and download it. It should (if it is Debian or one of the forks. Debian has more forks than the place setting at a state dinner) boot up and give your old PC new life. I wish you luck. (And remember…It’s FREE!!!)

…and the World Knows the Turtle

How’s that for cryptic. I am evaluating a video tutorial created by Michael Kölling called the “Joy of Coding”.  He uses the IDE (integrated development environment) Greenfoot to teach Java coding with emphasis on game design and Object Oriented Coding techniques aimed at teenagers.  I plan to incorporate some of his material in my own class during the 2014 – 15 semester.  Every time he says, “The World knows the turtle” it just tickles me to death (or at least makes me grin – not sure why).  You really need to click on the link and hear it for yourself.  He has a rather strong German accent and it just sounds cool, like some Teutonic philosopher expounding on the meaning of life.  Also it might not hurt you to click on the link and follow along.  Everyone needs to be able to at least understand a bit of code, and the principles on which it is written.

Meanwhile, the other bits and pieces are coming together.  This blog is intended to be a journal of my struggle to get Computer Science off the ground in Whitesboro, TX.  As it stands now I will be able to offer Concepts of Information Technology, Principles of Engineering and Technology, Basic Coding in Java, Computer Repair, and Robotics next year as well as having a conference period and one period a day helping the tech. staff.  The Java class will utilize Greenfoot graduating to BlueJ at mid-term.  Robotics will use the same NXT we have been using.  The only change is that I will not be using the NXT language but coding strictly in C.  The Engineering class will emphasize electronic engineering and will use the open source Arduino platform.  I have about 15 old computers for the Principles of IT class to work on.  It should be a busy year.  This summer is going to be equally busy setting up the room and getting things ready.

I am flying blind basically.  I have the technical expertise to teach these materials but I am not so sure about the logistics.  I have never been good at evaluating budget constraints and planning from that perspective.  This plea is directed at anyone who has ever set up a computer science program in a high school before.  How did you do it and how much did it cost?  Where can I get grants?  How deep did you take them?  How did you handle evaluations and exams?  These are the questions I need to answer.  The Internet is being much less help than I expected.  I thought I would be able to hit Google for an afternoon and find everything ready built.  This has NOT been the case.  There are lots of people trying to sell things but very little about people trying to build something useful.

Oh well…its late and I need to catch a nap.  Busy day tomorrow.

When ‘a you blink LEDs and a’ you write code in C that’s Arduino (Hey, it’s all I could come up with)

arduinoI plan to emphasize electronics engineering for the Intro. to Engineering and Technology class. Yes I know I have to teach mechanics, heat, and motion but I am really going to push electrical circuit design. To facilitate that I plan to use the Arduino microprocessor and it’s attendant programming environment. I can purchase the Arduino starter kits from Amazon for about $50 per group of two students. One can code and one can build and then swap out the next project. Does anyone out there use this equipment? I have found several tutorials that will port over into consecutive lessons but I am wondering if there is a packaged curriculum available. Any input would be appreciated.

So far I have Arduino for the Intro. to Engineering and Tech. class.  NXT Legos for robotics, Greenfoot for Basic Programming and BlueJ for Advanced Programming.  I hope these kids appreciate all this research I am doing.  At least I hope they find the material interesting.  My goal is to make sure that whatever class and whatever technology we are using, it involves writing some type of code.  We will be doing some batch files in the A+ class and even some HTML in the Introduction to Computer Science class.  Any other suggestions would be appreciated.

“Money….Its a gas; I’m allright Jack, keep yer hands off’a my stack”

Finally we have the schedule for next year’s computer science department in order. Now we just need to find money. As annoying as it is to contend with, education is expensive. I am doing all within my power to keep the cost down. We are doing Greenfoot and BlueJ and all things Java so the cost of programming software is nil. We are using Arduino in the engineering and technology principles class and so, outside of the hardware costs, the expense should be minimal. I have dozens of old computers in my garage from twenty years of people asking me to move their data to their new system and then telling me to keep the old one. I even have a fairly new rack and some rack mounted components that we can use in the Maintenance A+ course. I am assuming that we can get away with 1 toolkit per two students and a classroom set of cable testers or crimpers. The Arduino comes with breadboard and jumpers and components are cheap but we will need multimeters and basic tools. WHERE DOES A PERSON START TO FIGURE THIS BUDGET THING OUT!?!?

I would greatly appreciate any input from anyone who has initiated a high school computer science program. We are offering basic programming using Greenfoot and BlueJ. We offer an A+ certification as well as Principles of Engineering and Technology. We are planning on a minimum of 10 and a maximum of 15 kids in each class. I know the materials I want to include but I also know that I don’t know everything I will need. To all CS and Tech. Educators, please help. Respond via comments and I will send you more contact info. Any input will help. Thanks.