selfstudier; I don't see why this discussion cannot be had as an SG itself; I think we would have more input that way.
Javascript 101 Study Group
School of Webcraft and P2PU are transitioning to a study group activity model which invites people to work together around shared learning goals. Study groups are organised around "tasks" - discrete activities that participants work through to develop their skills and knowledge. Courses are great - but they limited participants to learning only when a topic was being offered by someone willing to do it:-)
Our goal is to provide excellent ongoing learning activities and community happening around core web development topics - no matter when people join the School of Webcraft. Right now we're harnessing our collective energy to curate the content, tasks and study plan for a Javascript "101" study group - which will allow people to join-up and work through learning activities. We're working around a suggested study plan that takes 6 weeks, though participants are free to work through their tasks at whatever pace suits them. Is that a difference between a participant and a follower?
So far we've identified the core Javascript 101 competencies for the study group - and we'd like you to help develop the plan and curate learning resources and "tasks" that will help Webcraft participants learn everything they need to know about Javascript basics.
Please add your answers below and let us know who you are - we like to say thank you to those who've helped!
What will learners be able to make and do at the end of 6 weeks?
- Suggest a final project that they can present to their peers and potentially add to a portfolio of work.
- I have placed the objective as completing the http://en.wikiversity.org/wiki/Web_Design/JavaScript_Challenges and all particpants know this from Day1
- These challenges should not really be set in stone but reviewed for relevance, they are not entirely appropriate for a JS101 as described below.
Javascript 101 Competencies - Can you help refine these?
- Javascript Data Types
- Strings
- Numbers
- Boolean: understanding how to use true and false
- Objects - Moving Objects, Functions and Arrays to DTs - they are all pretty central to the way DTs are done in JS.
- Functions
- Arrays
- Data Type Conversion
- Control structures
---- Up to here this is fairly standard within most programming languages people with programming knowledge should not need much time to absorb the js differences.
- objects and functions
- scope
- concept of closures
- A function's "prototype" and prototypital inheritance - a HUGE concept in JS.
- DOM
- Accessing elements in the DOM
- Manipulating elements in the DOM
- Working with Events
The current version is running on this basis:
- Week 1 - What is Javascript?
- Week 2 - Functions Objects and Scope
- Week 3 -The DOM and Events
- Week 4 - Forms and HTML 5
- Week 5 - Frameworks and Repositories
- Week 6 - The future & Challenge Assignments
I would consider putting "Frameworks" if these include DOM libraries before week 3, as the DOM libraries will shield a lot of learners from having to deal with the nuances of each browser. This could be considered "teaching a library", but if the goal of the first level study group is to get users up to speed and developing, I think that libraries are a valuable tool.
What are the most useful resources and tutorials can you suggest that will help people develop this knowledge?
Can you suggest specific tasks that learners can work through?
Many.....
Are you interested in helping others to administer and curate this group? Let us know and join the School of Webcraft Discussion List: http://lists.p2pu.org/mailman/listinfo/p2pu-webcraft
When I was with the Open University (online UK degree awarding Uni) Javascript was first introduced as part of a compulsory Level 1 course (reviews here http://www3.open.ac.uk/coursereviews/course.aspx?course=m150).
Then later at Level 2 (reviews here http://www3.open.ac.uk/coursereviews/course.aspx?course=tt281).
Whilst many students successfully developed JavaScript programs, a significant proportion of users either withdrew from study or did not progress to more advanced
programming courses. Common complaints included JavaScript’s pedantic syntax, relatively poor debugging support and that the time spent learning the language was
not reflected in the relatively simple and unengaging programs developed. Student interviews and feedback from tutors suggested that most students could design an algorithm to solve a problem, but lacked the confidence to turn that algorithm into an executable program.
Also very noticeable was the clear split into love/hate programming.
The OU has pretty much given up on teaching Javascript; Java courses are successful.
The course I am trying to run http://p2pu.org/webcraft/javascript-101-1 and http://new.p2pu.org/en/groups/javascript-101/ is aiming to cover all of the above js101 competencies above by Week3 and assumes via prerequisites a certain prior knowledge or a willingness to invest extra time acquiring it; some familiarity with programming has been assumed:-
- Week 1 - What is Javascript?
- Week 2 - Functions Objects and Scope
- Week 3 -The DOM and Events
- Week 4 - Forms and HTML 5
- Week 5 - Frameworks and Repositories
- Week 6 - The future & Challenge Assignments
I am not convinced that the previous incarnation of this course was the correct design, there seemed to be few participants remaining in the later weeks.
That may also occur in the current course, we will have to wait and see.
In the meantime I am calling the SG on the new site simply Javascript with the tagline Javascript++.
Got ideas for Javascript 201 and 301 learners?
Add them below:
Javascript 201 Competencies
Javascript 301 Competencies
Below contents is archived and is more relevant to the discussion of courses:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
This whole pad is written from the point of view of courses not SGs and is otherwise dated in large part.
[Pippa - who added the comments in red? ]
School of Webcraft: JavaScript Course Design Working Group
The Problem
School of Webcraft needs a series of courses (SGs) relating to JavaScript development, from basic understanding of the language through to working with libraries, frameworks and then diving into optimisation and security.
Many people want to learn JavaScript but don't feel confident enough to facilitate a group of learners, let alone gather and assess learning resources for quality. (under the new set up they have to do this?)
When volunteers do wish to organise Webcraft courses (SGs) they are not working from the same course designs (SG designs?) and the experience of participants varies drastically, it is important that over time we can direct course organisers to useful courses (SGs) of a consistent quality.(How can a SG be of consistent quality? Materials perhaps).
The Solution
As a learning community we should identify members who are willing develop and collate JavaScript learning resources. By creating quality, reusable courses (SGs, materials?) suitable for a peer-based environment, we should find it easier to scale and support a larger number of participants.
Similar Webcraft Course Design Projects
We've also outlined a rough plan for an HTML5 / CSS3 course to be created with cooperation by Mozilla Developer Network.
http://pad.p2pu.org/webcraftHTML5CSSAsynch
Initially we will work within the Webcraft community on the first pass of courses (SGs?) for JavaScript and then look for feedback and support from the JavaScript community. This differs from the HTML5 and CSS3 courses as JavaScript has been in existence for longer and has a greater body of knowledge and existing documentation to draw from.
HTML5 and CSS3 are new specifications and more expertise about their use and implementation is present in the Mozilla community. It is also strategically beneficial for Mozilla to be directly tied to the creation of these resources as it connects their non-profit interests with the release of Firefox 4 and its support for HTML5 and CSS3.
Timeframe
The current round of courses begin on January 25th, 2011.(April 25 2011)
The next supported round of courses for P2PU and School of Webcraft is intended to take place in ? 2011.
Parag Shah, David Suarez and Dan Diebolt are all running courses for January on JavaScript. Where possible these course designs should be used as the basis for further refinement.
Proposal: revised course designs based on Parag, David and Dan's courses should be presented to the community for "adoption" by course facilitators by mid-March.(Do these revised designs exist, I never saw any) Advanced courses (SGs?) designed over the next 2 months could potentially be facilitated by designers or could also be presented for "adoption".
TO BE DEFINED: How to manage a course (SG) "adoption" process.
How can we support community members working on this project?
- How can those involved be recognised as original course (SG) designers?
- What technical and informational support can we give them?
- Can we connect School of Webcraft course (SG) designers with JavaScript experts in the Mozilla community?
Documentation and Organisational Tools
We recommend Etherpad as an excellent live collaboration tool. http://pad.p2pu.org
Why? Use Lernanta.
Longer term, the content and resources developed should be stored in a wiki.
If book-style content is to be developed we suggest that the Booki collaborative writing tool be used. http://www.booki.cc/
Where to store source code examples? Github? (Probably best)
To be defined, WIKI choice: the Mozilla wiki does contain some documentation around the School of Webcraft project. P2PU also runs its own wiki setup. Longer term P2PU is intending to move towards a multi-language MediaWiki (or alternative) setup as the current wiki system is not open source.
For long term course adoption it makes sense to store such course content within the P2PU wiki (close to where the learning is). If improvements of course content are to be made as part of learning activities, it makes more sense for course design to be kept within P2PU's wiki.
From a "Webcraft" and Mozilla name recognition perspective, it may make sense to maintain the archived course content within the Mozilla wiki.
To be determined License Owner: Is School of Webcraft the license holder? or... The collaborators, P2PU or Mozilla?
Existing Resources
While there are some useful existing resources that we can refer to, remix and draw inspiration from, they may not be licensed appropriately, may be dated and may not be suitably presented for a peer-learning environment:
- WaSP Interact DOM Scripting
- jQuery Fundamentals
- Client-Side JavaScript Guide (dated but still useful)
Course Guidelines
In order to fit into the existing P2PU structure, courses should be designed for 6 weeks of activity.
An alternative would be to design a series of 3 week blocks of content that can be used alone, or in 3, 6, 9 or 12 week sequences.
- Each block / course module should outline the learning objectives and provide an overview.
- Every week should provide references to primary and recommended resources.
- Primary resources have to be openly licensed to allow for reproduction and remixing (eg translation into languages other than English)
- Recommended resources should be freely available and openly licensed if possible.
- Commercially released, copyrighted books may be referred to as further reading for a course, but can not be referred to as a primary or recommended resource.
- Each week's outline should list recommended activities to develop both theoretical and practical knowledge
Assessment outlines and assessment rubrics are not required as part of these course designs, but ideas for assessment tasks and measures of quality would be helpful
Proposed Course Sequence (suggested by Dan Diebolt)
javascript 101
- covers basic language syntax,
- usage and features,
- simple form validation and dom manipulation, events
- coding standards,
- tools (IDEs, jslint, firebug console, debuggers, profilers),
- introductory coverage of: (a) XMLHTTP request object, (b) prototypal inheritance, (c) closures
Q: When would advance coverage of a, b, c be scheduled in these courses?
JavaScript Frameworks and Libraries
- jQuery
- PrototypeScriptaculous and others/
- community resources, source code repositories
javascript patterns
- which includes advanced topics such as those listed in the Oreilly book,
- optimization, security
- this would be for developers who would be writing their own libraries or supporting an existing one