[Hidden-tech] Help me rewrite an old Programming / Web Development Curriculum? CMS, Language, Frameworks

Andy Klapper atk at AndyKlapper.com
Mon Sep 11 15:37:37 EDT 2017


I second Daniel’s statement that a good base is more important than particular languages or tools in the long term.  I also agree with the statement that it’s better to start with a highly typed language and if necessary slip to more laxed languages later.

 

That all being said I don’t know if learning a solid programming base is what this class is about.  So my recommendation is to not design this class in a vacuum but look at what other classes are required and what students learn in those classes.  In fact I’d recommend that the entire CS program be built together to some extent.  You can have a single class that talks about different coding techniques like OOP/recursion/state based/data driven/event driven/multi-threading/etc. or these things can be spread over a few different courses.  Ditto for everything else that covers the definition of “a good base”.  Testing, IMHO, should be part of all classes, but which class teaches the basics of how to design a good test suite and which classes just including testing as the normal process of making good code?  Also, if this course is part of a well-defined sequence then presumably the students already know at least one language (Java?) and already know SQL and at least one database which means that is something you don’t have to cover as long as you stick to that language and that database. 

 

As far as the specifics for this particular class – look to others but what I can tell you as somebody that took a class on web development once long ago – try to keep the number of technologies you need to learn down to a minimum.  The class I took have at least seven different technologies, each a separate open source project, that had to work together to get anything to work.  While this may have been realistic if one is doing complex work with open source tools only, it meant that we didn’t learn any of them to any depth and more time then I would have liked was spent making sure we had the right versions of each configured in the specific way they needed to play (mostly) well with each other.  All of that configuration knowledge was useless a couple of years later to boot.  (or the goal could have been to give an example of how parts of the gui could be determined/modified at every single point it was possible to effect the gui – and that was more than the course should have contained).

 

Of course I’m assuming a professional level class, if the goal is simply to expose kids to the wonders of programming and get them excited about programming as a career choice then a course that is high on visible results and low on structure might be a better way to go.

 

 

 

Andy Klapper

Asgard Technology Group, LLC

Making Complex Software Simple

AndyTK at Asgard-Tech.com <mailto:AndyTK at Asgard-Tech.com> 

 

 

 

 

From: hidden-discuss-bounces at lists.hidden-tech.net [mailto:hidden-discuss-bounces at lists.hidden-tech.net] On Behalf Of Daniel Fried
Sent: Monday, September 11, 2017 1:08 PM
To: Bram Moreinis <bram at greenfielddigital.com>
Cc: Paul Bissex <paul at bissex.net>; Hidden-Tech Listserv <hidden-discuss at lists.hidden-tech.net>
Subject: Re: [Hidden-tech] Help me rewrite an old Programming / Web Development Curriculum? CMS, Language, Frameworks

 

Bram,

 

>From my perspective, one of the greatest things you can teach them is good programming habits.  A good programmer can adapt to any language... if they have a good foundation.  

 

Because of that, I would tend to argue in favor of languages that impose more structure, object-oriented development and strongly typed variables.  It's far easier to learn those concepts and then move to languages that don't require them than the other way around.  From your list, that would lead me to say Java first with Python next (please avoid PHP).

 

-Dan

 

On Sun, Sep 10, 2017 at 7:06 PM, Bram Moreinis <bram at greenfielddigital.com <mailto:bram at greenfielddigital.com> > wrote:

Hi, Folks. 

I just got a job teaching Programming and Web Development at Pathfinder Vocational Technical High School in Palmer.  I love the kids and it's wonderful. 

I need to immediately re-do the old curriculum, however.  They were learning Dreamweaver DHTML (so some Javascript).  They learned no databases. They developed project websites with Adobe Muse (the Anti-Coder web tool). And they can't afford Dreamweaver when they leave school, so all of this was dead-end. 

There are three types of students: those who want to be web developers, those who want to be coders, and those who like computers and want to learn more.  They are at all different levels ... so I have to balance what would best set them up to be coders (few will be) with what will best get them doing SOMETHING. 

The AP Computer Science test is in Java. Last year ONE student out of 10 seemed ready to take it after learning it from a textbook (said the teacher who left).  The others tried to learn from textbooks and failed.  Obviously Java is quite valid to learn ... but what entry level work in Java can they find?  And how to connect it to web development? 

Obviously they need to learn together, from a teacher (supplemented by online courses like Udacity) - not from textbooks.  I need a coherent, cumulative curriculum that goes deep into coding, and addresses both the back end and the front end. Ideally we also learn a CMS so everyone can make SOME kind of website without Dreamweaver. 

I think I need to teach them:

*	a server-side coding language - either PHP (because Wordpress), Node.js (because Javascript), Java (because AP Computer Science) or Python (because Python)
*	a database to connect the language to - MySQL (because Wordpress) or PostgreSQL (because Python)
*	an associated framework to get comfy with - Symfony (because Drupal and Laravel), etc. 
*	a CMS to get them started - Wordpress (because jobs) ... 

What is my best grouping of the four?  

1.	PHP / MySQL / Symfony / Wordpress: enough PHP to make templates and theme files. Many folks want to hire Wordpress developers. But Codecademy says PHP is so unpopular now that they won't update their course in it.  I can't find anything on the web about what php framework Wordpress was developed from, but http://www.hongkiat.com/blog/best-php-frameworks says Drupal used components from Symfony, and that Laravel is based on Symfony.  
2.	Java / MySQL / SpringMVC / dotCMS: only two dotCMS developer jobs on Glassdoor makes me think that won't help them get jobs... but maybe that doesn't matter.  SpringMVC seems to be the most popular Java framework. 
3.	NodeJS / MySQL / Meteor / [Apostrophe]: nobody is looking for Apostrophe.  But since we're parlaying Javascript into Node.js and everyone wants to hire mobile app developers, maybe I should push them and leap off the Wordpress bandwagon, leaving Apostrophe for students who can't hack the coding?   Meteor seems to be the most popular Node.js framework. 
4.	Python / PostgreSQL / Django / Wagtail: The problem is that none of these connect to the Javascript or Java that we know have to be part of the course, and that unlike Wordpress, Wagtail is not a way to get jobs. 

It's better if they know how to do SOMETHING well than how to do many things poorly. What would you advise? 

Please vote -- and if you have time to explain why, do!

Thanks,

-Bram

-- 


Martin Bram Moreinis, Designer/Developer
http://myinstructionaldesigns.com
(413) 829-0355 <tel:(413)%20829-0355> 


_______________________________________________
Hidden-discuss mailing list - home page: http://www.hidden-tech.net
Hidden-discuss at lists.hidden-tech.net <mailto:Hidden-discuss at lists.hidden-tech.net> 

You are receiving this because you are on the Hidden-Tech Discussion list.
If you would like to change your list preferences, Go to the Members
page on the Hidden Tech Web site.
http://www.hidden-tech.net/members

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.hidden-tech.net/pipermail/hidden-discuss/attachments/20170911/dc34377a/attachment.html 


Google

More information about the Hidden-discuss mailing list