QueTwo's Blog

thouoghts on telecommunications, programming, education and technology

Tag Archives: Education

As a teacher

ChalkboardI, in general have been very quiet in the technical front as of late.  This last fall one of my very good friends and mentors Ron Choura passed away suddenly.  After loosing another close mentor of mine this just the year before it hit me really hard.  Both Ron and Dr. Muth were instrumental in my schooling and career advancement. 

With Ron Choura’s passing, his upcoming class was missing an instructor.  I was asked to fill in for the class that was set to start a few weeks later; I couldn’t think of a better tribute than to teach the class that I enjoyed most during my time at MSU.  My manager at my day job helped with the class as well.  The class was titled “Advanced Network Design” and had a focus on how the telecommunications world works from the phone jack of your house to the jack of the other person you called.  It also had a project where the students were to write an extensive RFP (Request for Proposal) for a telecommunications based company. 

The class itself went off without a hitch.  It made me realize how much work running a class like that really is.  Despite knowing the material cold (heck! it’s stuff I do during my day job), it still required about 12 – 14 hours of prep time for every week’s class.  Between prepping for the power-point, grading, setting up the next assignment and setting up the next exam (we had exams each week), it took a lot more man-power than I had ever expected out of a 4 hour class. 

I’ve been out of school for nearly 7 years at this point, so interacting with the students was very interesting.  When I found out I was going to be teaching the class, I immediately dove in and did the research as to what tools they would want to use to communicate, how to best reach out to them, etc.  I had a chance to reach out to my favorite EduTech professional Leigh who also gave me some useful pointers. 

 Some of the things that as a telecommunications professional I “knew” but my students made very apparent :

  • Not a single one of them had a land-line telephone at home.  Many of their parents didn’t have one at home either.
  • Only two of the students were on Twitter.  Most of them saw Twitter as what the older generation and celebrities used.
  • They all, at one time had MySpace accounts.  None of them have logged in to the service in ages.
  • Facebook is their primary communications method — but only to their friends. 
  • To many of them, the phone company IS their wireless provider. 
  • They see getting most of their telecommunications services (data/video) in the future either via wireless or fiber. 
  • They are not excited by offerings from their telecommunications providers — AT&T / Comcast / etc.  They feel there is always more marketing behind their offerings than substance.

All in all, the class was a lot of fun, and it gave me insight into how I can best offer MSU Telecom’s own services to the current generation of college students.

So, now all that is out-of-the-way — it’s time to return to my tech and telecom blogging :)

Why ColdFusion should NOT be taught in schools

I already know that this post won’t be popular with my close friends, but I think it needs to be said anyway…   Don’t worry, this isn’t a “ColdFusion is dead” article.

I was recently asked to sit down for lunch with two computer science professors from two different schools in my area.  For the most part, I was in “a fly on the wall” mode as these professors talked about various things such as how they catch people copying code, to how they teach good memory use, etc.  This wasn’t a formal meeting by any sense, but rather just a meeting of two friends who happen to work in the same profession.

Chalk BoardAbout half-way through lunch, I decided to ask about using a more stable language, like ColdFusion (CFML) to teach web programming. Currently one of the schools teach Python (and considering Ruby) and the other teaches PHP for their courseware.  After both chuckled at me, I dove into my Adobe taught ColdFusion isn’t dead, ColdFusion has a growing population, ColdFusion has some open-source alternatives, etc.  Both sat there and soaked in my sales pitch.  One of the two even used to use ColdFusion on some side work in the past.

“It’s not about the servers — it’s truly about the language.” spoke the gent from the larger school.  “For a formal, introductory computer science class, ColdFusion [CFML] really doesn’t offer us anything that another language does.  And it adds in a lot of complexities and guessing that make other languages easier to teach in the classroom

As he explained his position, it started to soak in to me — ColdFusion while really easy to pick up and learn teaches some really god-awful practices.  And if you take a look at the ColdFusion community at large, it seems to be a real mess.  Some of the great points from his argument :

  • CFML is not a typeful language.  For the end user to not be able to specify to the language/compiler that you want to store a String vs. a Number can be troublesome and confusing to both sides.  What is often worse is that to force ColdFusion to choose a particular variable type is very awkward and more-or-less a hack.
  • There is no good CFML debugger.  If you do your work in the current Official CFML editor by Adobe (Dreamweaver) there is no debugger.  You have to install another, 3rd party application (Eclipse) to do your debugging.  Even then, it is cumbersome, and not really feature complete.  How much memory is this CFC using?  Why am I getting this response from the Query?  These are the questions that the debugger still fails to answer properly.
  • The documentation is poor.  The LiveDocs, while OK, are very un-organized and seem to be very short on examples.  The community is good at sharing examples, if you can find them.  The Adobe search engine is a joke on their site.  There are only 4 current books, by two authors (although, one plus to this is they both live in Michigan).
  • CFML, by its design will fight you in implementing the most common design patterns.  Lets face it, most of the MVC frameworks are a hack.  In fact, when you take a look at it, most frameworks that exist for ColdFusion — even Adobe’s own Model-Glue are exceedingly complex because they have to implement so many workarounds to get their pattern to work. 
  • Available Open Source / Free / Alternative engines are not 100% compatible.  Even BlueDragon, the engine that has implemented the most compatibility, is only about 90% there.  This is a huge disadvantage if you use the “there are other engines out there” argument — most, if not all, examples and documentation are written for the Adobe engine. 
  • Some features are just some “black box”.  This is one item that raised a huge concern, while being a huge advantage for the regular business community.  Programmers, specifically students want to know how things work.  They want to know the nuances of why FTP would be a sessionful protocol, rather than something like LDAP. These tags/engines are essentially black boxes with ColdFusion, with very limited visibility as to what is happening on the back end — all we know is that they ‘work’, and get the job done. 

Some of these things are changing in future versions of ColdFusion, I’m sure.  Others are just breed from the history of ColdFusion, and for the regular community, that’s not a bad thing.  For example, does a web / CFML programmer really want to know how the POP protocol works?  No!  That’s why they use ColdFusion! 

So parting from my experience, I do ask the question — where SHOULD CFML be learned?  That is a really tacky question, one that is really hard to answer.  From the above, CFML shouldn’t be chosen to be taught in a formal programming class, but how about in a web programming class?  Rather than teach HTML, how about HTML and CFML?  Should CFML be taught at a community college?  How about at the high-school level where programming theory is not nearly as important? What are your thoughts?

Follow

Get every new post delivered to your Inbox.

Join 27 other followers