Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Page 1 of 2 12 LastLast
Results 1 to 15 of 24
  1. #1
    New to the CF scene
    Join Date
    May 2012
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Cool Javascript is easy to learn online

    check out http://codeavengers.com we have only been live for two months now and would love some feedback and what you think about our style of teaching online (for free)

    Best Regards & Goodluck!

  • #2
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,216
    Thanks
    75
    Thanked 4,344 Times in 4,310 Posts
    Well, just for starters, Felgall will castigate you severely using alert( ) as a first step.

    He would much rather see you start using HTML and the DOM right off the bat.

    And I think I have to agree with him. It would be no harder to start by using the DOM.

    But the annoying part, to me, is that there is no way to skip lessons on stuff you already know (well, you can, but you would have to guess what is in each lesson, since they are only numbered, not named).

    And, of course, the big problem is that your "course" doesn't even begin to go far enough.

    Your step 10 is really about step 1 in any real course. Something I would expect to see at the end of first day or two of, say, an introductory college course. (Though, again, it should be done without ever using alert( ).)
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  • Users who have thanked Old Pedant for this post:

    mrwwalmsley (05-30-2012)

  • #3
    Regular Coder low tech's Avatar
    Join Date
    Dec 2009
    Posts
    851
    Thanks
    172
    Thanked 93 Times in 93 Posts
    Hi OP

    But the annoying part, to me, is that there is no way to skip lessons on stuff you already know (well, you can, but you would have to guess what is in each lesson, since they are only numbered, not named
    From what I can see, I think the lesson names are under Menu -- Index -- use prev / next to see all.


    LT
    Last edited by low tech; 05-30-2012 at 02:16 AM.
    "The greatest revenge is to accomplish what others say you cannot do."
    ~ Unknown

    I used to be indecisive, but now I'm not so sure.

  • #4
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,216
    Thanks
    75
    Thanked 4,344 Times in 4,310 Posts
    Quote Originally Posted by low tech View Post
    Hi OP

    From what I can see, I think the lesson names are under Menu -- Index -- use prev / next to see all.

    LT
    Ahh...right you are.

    Okay...another fun problem with their whole scheme: They let you type in ANY JAVASCRIPT YOU WANT and then click RUN.

    So you could enter
    Code:
    location.href = "http://www.google.com"; // get away from this stuff
    
    ** or **
    
    while ( true )
    {
        document.write("this is silly<br/>\n");
    }
    In a tutorial environment such as this, they should probably, instead, be looking for specific answers, rather than relying upon the (assumed idiot) user to do the right thing.
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  • #5
    Master Coder felgall's Avatar
    Join Date
    Sep 2005
    Location
    Sydney, Australia
    Posts
    6,634
    Thanks
    0
    Thanked 649 Times in 639 Posts
    The home page has a jumbled mess of JavaScript scattered through the page instead of all the script tags being together and with the JavaScript itself in external files. If you can't write the JavaScript you are using the right way then that does cast some doubts on your ability to teach it. Not that there's anything wrong with the way the scripts are written, just how they are attached.

    How to correctly attach JavaScript to the page should be lesson One and the home page doesn't follow what that lesson should be teaching.

    The page itself gives no proper indication of what the site is actually for and just has the one button to press to proceed - but without any reason why anyone should do so.

    Don't know what the rest of the site is like as there was no reason presented as to why I should press that button.

    I used to use alert in the early code in my JavaScript courses until they started looking like the following in two popular browsers:




    With the extra checkboxes alert (and the other dialog boxes) are now only suitable for debugging when you're too lazy to open the debugger built into the browser.
    Last edited by felgall; 05-30-2012 at 03:12 AM.
    Stephen
    Learn Modern JavaScript - http://javascriptexample.net/
    Helping others to solve their computer problem at http://www.felgall.com/

    Don't forget to start your JavaScript code with "use strict"; which makes it easier to find errors in your code.

  • Users who have thanked felgall for this post:

    mrwwalmsley (05-30-2012)

  • #6
    New Coder
    Join Date
    May 2012
    Posts
    11
    Thanks
    2
    Thanked 0 Times in 0 Posts

    Smile Code Avenger Creator

    Hey guys, big thanks for the feedback!

    I'm Mike the CodeAvengers creator. I'm a software eng. grad, doing a PhD in computer assisted language learning -- Human... NOT computer languages. Have tutored for programming courses 1st through 3rd year, and have also tutored high school students.

    The original post was from my friend Andrew. Here is my quick response.

    1st of all brief background. CodeAvengers is one my side projects (which I have put MANY hours into) and began with me developing a few interactive tuts to teach my brother Javascript he enjoyed them, so I decided to adapt the course for the average beginner. Furthermore, here in NZ where I live, we have a new high school computer science curriculum for senior students that forms part of our digital technologies course.

    The 1st 40 lesson course covers all the stuff yr10 students (15yo) are supposed to learn in the few weeks they spend on computer programming. I am designing the course for the ABSOLUTE beginner. The system also includes a page to allow teachers to montior student progress. I have been getting awesome feedback from beginners and teachers so far who say the course caters well for beginners.

    Now to address your very valid feedback...

    Using alerts vs DOM... I would love to use DOM, but many our NZ students don't do any HTML in their course. I also wanted to make a course that was stand alone... did not require another 'langauge'. While, HTML & DOM seems trivial to all of us... its not to someone having their 1st encounter with computer programming.

    I also tried a few lessons that wrote messages to the console, but not suprisingly all the people I tested on seemed to catch hold of what was going on with the version that used alerts. As for the checkbox in alerts, in Chrome and Firefox they only appear when 2 alerts are displayed in quick succession. So I avoid showing 2 alerts in quick succession in the 1st lesson. Then I explain that in the 2nd lesson.

    As far as catering for more fast learners/people who already know a little bit of programming... Eventually, I will add a 'task 6/fast track' which reviews each lesson, as well as a 'task 7/extra credit'. Fast learners could skip straight to task 6 & 7, and do the 1st 5 tasks only if they needed to.

    I also plan to create an HTML course soon, also aimed to be suitable for High School children 11-18 years old. When I create the level 2 Javascript course I am planning on doing integration with DOM.

    As for Old Pedants 'another fun problem with their whole scheme: They let you type in ANY JAVASCRIPT YOU WANT'

    That is not true... My system checks if they are doing something that goes against the task description and warns them if that is the case.

    In the lessons that teach about loops, there are checks to warn the user about potential infinite loops. And if they are typing loops in the introductory lesson they probably already know what an infinite loop is!

    Also I don't see what the problem is with a user typing: location.href = "http://www.google.com";
    If they want to do that... let them. From my testing of the system, people seem to get more frustrated when you are overly restrictive.

    Finally, HOME PAGE... As far as the 1 button on the home page that says 'Begin training'... the goal is to build suspense...

    Well not really, I have experimented with various button combinations (index, about, login button etc.) and labels to see if there is change in click through.

    Good point about the scattered social media scripts, I will put them in 1 file.

    I am fairly new to web development, so would love suggestions for the home page. Also would love more feedback from someone like you Stephen, so what would I have to change to the home page to get you to CLICK THE BUTTON!! Thanks

  • #7
    Senior Coder Dormilich's Avatar
    Join Date
    Jan 2010
    Location
    Behind the Wall
    Posts
    3,253
    Thanks
    12
    Thanked 341 Times in 337 Posts
    Quote Originally Posted by mrwwalmsley View Post
    Using alerts vs DOM... I would love to use DOM, but many our NZ students don't do any HTML in their course. I also wanted to make a course that was stand alone... did not require another 'langauge'. While, HTML & DOM seems trivial to all of us... its not to someone having their 1st encounter with computer programming.
    the problem I see here is, in what environment will the student use their knowledge? I assume that 99% will use their learned JS knowledge in their (personal) website (as there isn’t another environment a beginner would use JS in). now you have the problem that the pupil knows some JS, but can’t apply it for the missing DOM/HTML API knowledge*. and another point I want to make is, the things you learn first are what you’ll build on later. if you unknowingly learned bad habits (e.g. document.write()), it is extremely difficult to get rid of that later.

    to summarise that, JavaScript seems more simple than it is. it’s a full fledged programming language with pros and cons, but nothing you could master in some days. (I’m doing JS for something like 10 years now (hobbyist programmer) and I can’t say that I have really mastered all of JS. it took me around 5 years to get a decent understanding of JS)


    * - problems I see most often when visiting JS forums:
    - improper use of functions (e.g. document.write() in event handlers)
    - syntax errors, invalid calls of functions
    - insufficient knowledge of DOM
    - missing error handling
    - invalid HTML
    - insufficient knowledge of scope
    The computer is always right. The computer is always right. The computer is always right. Take it from someone who has programmed for over ten years: not once has the computational mechanism of the machine malfunctioned.
    André Behrens, NY Times Software Developer

  • #8
    Master Coder felgall's Avatar
    Join Date
    Sep 2005
    Location
    Sydney, Australia
    Posts
    6,634
    Thanks
    0
    Thanked 649 Times in 639 Posts
    Quote Originally Posted by mrwwalmsley View Post
    Using alerts vs DOM... I would love to use DOM, but many our NZ students don't do any HTML in their course. I also wanted to make a course that was stand alone... did not require another 'langauge'. While, HTML & DOM seems trivial to all of us... its not to someone having their 1st encounter with computer programming.
    The DOM isn't another language - JavaScript is about 35% ECMAScript, 5% browser specific and 60% DOM - the DOM is the biggest part of JavaScript.

    Quote Originally Posted by mrwwalmsley View Post
    As for the checkbox in alerts, in Chrome and Firefox they only appear when 2 alerts are displayed in quick succession. So I avoid showing 2 alerts in quick succession in the 1st lesson. Then I explain that in the 2nd lesson.
    The Opera version of alert I posted is how all dialogs look in Opera - they all have the checkbox to turn off JavaScript including the first one.

    Quote Originally Posted by mrwwalmsley View Post
    Finally, HOME PAGE... As far as the 1 button on the home page that says 'Begin training'... the goal is to build suspense...

    I am fairly new to web development, so would love suggestions for the home page. Also would love more feedback from someone like you Stephen, so what would I have to change to the home page to get you to CLICK THE BUTTON!! Thanks
    The home page should tell people what the site is about so they know whether they have found what they are looking for.

    I don't claim to know all that much about design. The JavaScript site in my signature underwent lots of design changes from feedback I got late last year when I first created the site and asked for reviews on a different forum. The home page does list all the categories of "lessons" that the site has so that you can get to any lesson with two clicks.
    Stephen
    Learn Modern JavaScript - http://javascriptexample.net/
    Helping others to solve their computer problem at http://www.felgall.com/

    Don't forget to start your JavaScript code with "use strict"; which makes it easier to find errors in your code.

  • #9
    New Coder
    Join Date
    May 2012
    Posts
    11
    Thanks
    2
    Thanked 0 Times in 0 Posts
    felgall: Thanks for the reply... At the moment my site does not support Opera. There are a couple issues I have not bothered to fix. I am busy writing up my PhD thesis at the moment... so decided on not supporting opera for now, since have few site visitors with that browser.

    As for not learning another language I mean HTML (not DOM)...
    For the level 2 course I create I am planning to integrate HTML and Javascript.
    But for the level 1 course I don't want to assume HTML knowledge.

  • #10
    New Coder
    Join Date
    May 2012
    Posts
    11
    Thanks
    2
    Thanked 0 Times in 0 Posts
    Felgal: Also... Once you go to the TRAINING page, on my site, you can get to every lesson with a single click.

    Also your feedback on the home page... was valuable because I was so busy working on lesson material... I hadn't really really realised that my home page did not even say what the heck the site is about! I have added something that should make that clearer.

    And may I say WOW, your site covers A LOT of material! Good going!

    Dormilich: Totally agree with everything you said. I have only been doing JS for 2 years... migrating from C++, Java, C# and VB: and it took a while to get a good handle on it.

    Thanks for the heads up on document.write(). I will be sure NOT to teach it in my Level 2 course!

    The plan is to have the level 1 HTML and level 1 JS courses separate.
    The projects they have to create in our high school year 10 courses are really BASIC. A little sandbox environment displaying a few prompts and alerts is sufficient.

    In the level 2 Javascript course I will cover, the console, for loops, arrays and functions, still in the sandbox environment. I also plan to integrate some DOM stuff here.

    The NZ level 3 high school curriculum comes out at the end of this year, so I am waiting to see what is in that before I start creating the level 2 course.

    I really do want to get into the HTML/DOM stuff as early as possible. At this stage, not of the high school teachers I have talked to in our NZ high schools do ANY Javascript/HTML integration because the teachers think it is too hard (most don't know how to do it themselves).

  • #11
    New Coder
    Join Date
    May 2012
    Posts
    11
    Thanks
    2
    Thanked 0 Times in 0 Posts
    Finally, any thoughts on using JQuery for teaching the DOM stuff??

  • #12
    Senior Coder Dormilich's Avatar
    Join Date
    Jan 2010
    Location
    Behind the Wall
    Posts
    3,253
    Thanks
    12
    Thanked 341 Times in 337 Posts
    nope (at least not for beginners). jQuery uses some advanced techniques (design-wise), which might confuse the students (chaining, iteration, different function behaviour* depending on the input)

    for the use of DOM in jQuery style use document.querySelector() and document.querySelectorAll()


    * - explain the following to a beginner:
    PHP Code:
    var = $(this).val();
    $(
    this).val("foo");

    // vs.
    var Date.now();
    Date.now("2012-05-30 12:35:47"); // obviously doesn’t work 
    The computer is always right. The computer is always right. The computer is always right. Take it from someone who has programmed for over ten years: not once has the computational mechanism of the machine malfunctioned.
    André Behrens, NY Times Software Developer

  • #13
    Senior Coder Dormilich's Avatar
    Join Date
    Jan 2010
    Location
    Behind the Wall
    Posts
    3,253
    Thanks
    12
    Thanked 341 Times in 337 Posts
    not sure if it were a good idea for teaching, but as JS mostly consist of objects you could occasionally do an excursus/digression that mentions the reason behind the stuff you currently teach. for instance for the DOM you need to mention object types: what is the difference between an Array and a NodeList; why does document.formname.elementname.value work on a single checkbox, but not on 2 or more; what’s the difference between a function statement and a function definition*; what is a first-class function**)


    * - one of my favourites:
    PHP Code:
    function doSomething(x)
    {
      var 
    doSomethingElse(x);
      return
      {
        
    valuey,
        
    argx
      
    }
      function 
    doSomethingElse(a)
      {
        return 
    a;
      }
    }

    // now the big question: what is z.value?
    var doSomething(5); 
    ** - you need that in Event handling, otherwise it is difficult to explain the difference between window.onload = doSomething; vs. window.onload = doSomething();
    Last edited by Dormilich; 05-30-2012 at 10:16 AM.
    The computer is always right. The computer is always right. The computer is always right. Take it from someone who has programmed for over ten years: not once has the computational mechanism of the machine malfunctioned.
    André Behrens, NY Times Software Developer

  • #14
    Master Coder felgall's Avatar
    Join Date
    Sep 2005
    Location
    Sydney, Australia
    Posts
    6,634
    Thanks
    0
    Thanked 649 Times in 639 Posts
    Quote Originally Posted by mrwwalmsley View Post
    And may I say WOW, your site covers A LOT of material! Good going!
    I started that site in September last year after I resigned from writing for About.com - it is the 4th set of tutorials I have written to teach JavaScript with the prior three versions all on javascript.about.com where most of the outdated pages are marked as such with links to the more modern replacements. I set up the first 200 pages the first month and have added about another 150 pages since then.

    Quote Originally Posted by mrwwalmsley View Post
    Totally agree with everything you said. I have only been doing JS for 2 years... migrating from C++, Java, C# and VB: and it took a while to get a good handle on it.
    I have been programming for about 35+ years, writing JavaScript for about 13 years and teaching it for eight. Over that time I found the hardest concepts to be learning the different approaches to programming - eg. already knowing C it still took me about two years to properly understand object oriented programming when I taught myself C++. It also took quite a few months for me to properly understand the similar advances that a prototyping language such as JavaScript has over class based object oriented languages.

    Quote Originally Posted by mrwwalmsley View Post
    The plan is to have the level 1 HTML and level 1 JS courses separate.
    HTML is really a prerequisite for using JavaScript in the environment that most people use it in - attached to web pages or attached directly to the browser. Both of those places can use the same DOM.

    It is only once you start using it in other places (desktop applications using Adobe AIR, on the server using Node.js etc) where there might be ifile interactions and similar so that the DOM part doesn't get used as much.

    Quote Originally Posted by mrwwalmsley View Post
    Finally, any thoughts on using JQuery for teaching the DOM stuff??
    Anyone who doesn't understand at least the basics of the JavaScript DOM before trying to use jQuery is likely to get themselves in a mess and write several times as much code to use jQuery as they'd need if they weren't using jQuery. It is an advanced piece of JavaScript that requires about an intermediate level understanding of JavaScript to use it properly.

    Anyway, teaching the DOM stuff should be easier once IE8 dies out since that's the last browser that has differences in some of the DOM commands (which is what a big part of jQuery and similar libraries take care of for you). After IE8 dies jQuery should shrink to about 1/10th its current size.
    Stephen
    Learn Modern JavaScript - http://javascriptexample.net/
    Helping others to solve their computer problem at http://www.felgall.com/

    Don't forget to start your JavaScript code with "use strict"; which makes it easier to find errors in your code.

  • #15
    New Coder
    Join Date
    May 2012
    Posts
    11
    Thanks
    2
    Thanked 0 Times in 0 Posts
    Thanks to both of you, that was excellent feedback! I really appreciate your time. After reading that, I think I will give JQuery a miss for the courses targeting the high school students.

    Also, I totally agree it is good to start using DOM as early as possible.

    I have also met a high school teacher that uses Unity Script (another ECMAScript based language) in his level 1 course outside of web browser environment.

    The NZ High School curriculum does not cover a whole lot of material. Our NCEA level 1 curriculum is an introduction to variables, data types (number, strings, boolean), if statements, while loops, and predefined functions.

    Most schools in NZ are currently using visual programming languages like Scratch. But they are not allowed to use Scratch for level 2 (which introduces functions and arrays). So, I think a lot of teachers are keen for something else.


  •  
    Page 1 of 2 12 LastLast

    Tags for this Thread

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •