Welcome Guest.   Make a donation to an author on the site December 18, 2014, 04:27:16 PM  *

Please login or register.
Or did you miss your validation email?


Login with username and password (forgot your password?)
Why not become a lifetime supporting member of the site with a one-time donation of any amount? Your donation entitles you to a ton of additional benefits, including access to exclusive discounts and downloads, the ability to enter monthly free software drawings, and a single non-expiring license key for all of our programs.


You must sign up here before you can post and access some areas of the site. Registration is totally free and confidential.
 
The N.A.N.Y. Challenge 2010! Download 24 custom programs!
   
   Forum Home   Thread Marks Chat! Downloads Search Login Register  
Pages: [1]   Go Down
  Reply  |  New Topic  |  Print  
Author Topic: Building a new programming school - V3.0  (Read 6776 times)
Josh
Charter Honorary Member
***
Posts: 3,345



View Profile Give some DonationCredits to this forum member
« on: June 11, 2011, 05:50:03 PM »

DoCo Community,

The time has come to discuss building a new donationcoder.com programming school. I was approached by mouser with this idea and it is one I would like to attempt to tackle.

I want to open up a dialogue about what this new feature of the site should entail, how it should operate/integrate with the current site structure, and what functionality it should have.

From the start, I have the following ideas for v3.0 of the programming school:

  • Web page based assignments with full instructions, expectations.
  • Grading points for each assignment which cover language specific expectations (appropriate data structures in c++, appropriate function calls in .net, etc)
  • A grading sheet/page for each assignment with a numeric score + breakdown of that score to ensure each individual knows what was done right/wrong and could be improved upon
  • Not focusing on the number of languages but instead generate good, quality assignments for a list of core languages.
  • Have a group of individuals assigned as graders for each section based on demonstrated proficiency in each language rather than having one individual grade every language without knowledge of the specifics of the language
  • Use the forum for assignment submission as it currently is. This will allow individuals who have completed each assignment to view other submissions.
  • After assignment submission, a self-grading sheet is given so the user can grade themselves and wait for a "teacher" to grade the assignment.
  • Once an assignment is graded by a "teacher", a reference assignment is given to the student so they can see an example of the assignment. This assignment would have detailed comments about why certain steps were taken at points X, Y and Z in the code and help teach/develop good coding habits from the start.

At the start, I think we need to choose a set of core choices which represent the most widely utilized languages in use today, and then focus on developing quality assignments with grade sheets and rubrics for each. Once we get our feet in and experienced with the more common languages, focus on exotic languages as they come up and demand is shown for the school.

The word teacher is used above but only as a reference term. The idea of this school is that the student teaches themselves. The individuals selected as "teachers" for each language merely serve to examine an assignment and provide feedback/grading. The grading provides a rubric of where the student can improve, different steps they could have taken at different points, and an individual to contact with questions should they come up.

Each assignment should have links to various places to start and learn a language, where to seek advice, and where to find sample code. This will help aide the "student" in learning.

I really feel that a new version of this school could be a great value-added feature for donationcoder and could attract even more attention to the site and its community to expand our base of users. This expansion will help contribute to what makes doco great, the users.

So, that said, what are your thoughts?
« Last Edit: June 11, 2011, 05:52:08 PM by Josh » Logged

Strength in Knowledge
mouser
First Author
Administrator
*****
Posts: 33,770



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #1 on: June 11, 2011, 06:30:55 PM »

I've wanted to break off the Self-Teaching Programming School to a Full-features Website for a while now.

Here are the main things I'd like to accomplish:

1. Focus on the unique aspect of the existing programming school -- it's "self-teaching nature"; that is, it serves mainly to motivate self-learners.  Try to keep the same spirit of the existing school.

2. Provide assignments that are much more rich in terms of having introductory references to point students to where they might learn what to do, and have a much richer "official" reference answer that a student can study and see how they could improve theirs.

3. Build a more efficient system for moderators/teachers to interact with teachers.

4. Do this through a clean web (wiki heavy) interface, that feels like a natural learning environment, rather than a forum hack.
Logged
40hz
Supporting Member
**
Posts: 11,056



see users location on a map View Profile Read user's biography. Give some DonationCredits to this forum member
« Reply #2 on: June 12, 2011, 06:32:31 AM »

You might want to consider using a course management system like Moodle or OLAT to handle the heavy lifting.

Moodle is nice enough to provide a free PDF version of the book Using Moodle if you're not familiar with it - or course management software in general. Info and download links here.

Why reinvent the wheel on presentation when there's enough work to do putting together the course content? Cool

Just my tuppence. smiley

(Oh right! Languages...C++, Python, and PHP please?  smiley)
Logged

Don't you see? It's turtles all the way down!
Carol Haynes
Waffles for England (patent pending)
Global Moderator
*****
Posts: 7,958



see users location on a map View Profile WWW Give some DonationCredits to this forum member
« Reply #3 on: June 12, 2011, 07:33:48 AM »

A remember having a play with Moodle a while ago and thinking it looked very nice - if only I had something to use it for!

Seems to me that something like Moodle would be a good solution to get an appropriate school up and running in the quickest time.

My initial thought reading this thread was to set up a 'social networking' style site that would allow easy social interaction between students and teachers but then there would be a lot of work to set up the 'school' side of it too.

I wouldn't mind a PHP/MySQL course too - I can do enough to hack about scripts that are already there but don't know enough to be writing my own scripts easily!
Logged

mouser
First Author
Administrator
*****
Posts: 33,770



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #4 on: June 12, 2011, 07:38:46 AM »

Something *like* Moodle would be good; I did give moodle a long look a year or two ago and felt like it was a bit fragile.. Hard to remember details of what I didn't like but I definitely came away not enthusiastic about using it.
Logged
40hz
Supporting Member
**
Posts: 11,056



see users location on a map View Profile Read user's biography. Give some DonationCredits to this forum member
« Reply #5 on: June 12, 2011, 09:11:16 AM »

I don't know if I'd call it fragile as much as it is what it is. From what I've seen it doesn't lend itself to extensive mods or customization without a serious programming commitment. Hardly worth it for most people.

To your second point, I thought it was cool.  But I didn't really like it all that much either. I did however take a distance learning course once that used Moodle extensively. It got the job done rather well even if I couldn't see the point of some of it's feature set. But that's me.  Grin

I actually like the look and feel of OLAT a lot more. It seems less fussy and more modern, but I've never used it on a live project so I don't know how well it works in practice. Running a quick & dirty setup and duffing around with it made me think it just might be a better system. (Note: I used their demo installer which sets up the entire stack for development and testing purposes but is not intended for production environments.)

« Last Edit: June 12, 2011, 10:36:57 AM by 40hz » Logged

Don't you see? It's turtles all the way down!
kunkel321
Supporting Member
**
Posts: 396


see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #6 on: June 13, 2011, 11:21:24 AM »

I don't know much about hosting, etc., but I wanted to comment that I really liked the old teach-yourself-auto-hot-key school on DC.  I want through the (few) chapters available a year or two ago and it really did help teach me a little about AHK.  I was sad when I realized that the school was abandoned. 
Logged
mouser
First Author
Administrator
*****
Posts: 33,770



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #7 on: June 13, 2011, 11:24:10 AM »

Quote
I was sad when I realized that the school was abandoned.

Um .. wait.. what?  The current programming school is alive and well on DC !
We're just trying to think about the next incarnation.
Logged
JavaJones
Review 2.0 Designer
Charter Member
***
Posts: 2,541



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #8 on: June 13, 2011, 03:37:24 PM »

Take a look at Moodle 2.0 if your previous testing was with a 1.x version. It's improved a fair amount. Might seem less "fragile".

Having said that, depending on how different from the "Moodle way of doing things" the needs of your course(s) are, it *can* be a pain to implement in Moodle. It almost certainly *will* be able to do it, just not necessarily painlessly. I speak from experience on this. Wink

- Oshyan
Logged

The New Adventures of Oshyan Greene - A life in pictures...
Josh
Charter Honorary Member
***
Posts: 3,345



View Profile Give some DonationCredits to this forum member
« Reply #9 on: June 13, 2011, 03:43:24 PM »

We tried to install moodle for testing but mouser did not want to have gothi[c] recompile some things with mysqli support. This limits our choices, unfortunately.
Logged

Strength in Knowledge
alivingspirit
Supporting Member
**
Posts: 165



see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #10 on: June 13, 2011, 04:09:35 PM »

Since I am a product of the programming school I feel like my 2 cents may help. For me, by far the helpful feature of the programming school was the feedback I got when I failed an assignment and had to keep improving until I finished it to the teacher's (Mousey) satisfaction. This pass/fail system made the programming school feel like a game that I had to beat rather than a school assignment. Therefore, I am not an advocate of the grade system suggested above. If the requirements of an assignment are clear before the student starts then the student won't feel frustrated if he fails to complete it the first time.
In the needs improvement section, the most annoying part of the programming school was how long it took to get feedback. Sometimes I needed to bump my thread in order to get a response. Obviously if there were a lot more graders to assignments this issue might likely fall away.
Logged
Carol Haynes
Waffles for England (patent pending)
Global Moderator
*****
Posts: 7,958



see users location on a map View Profile WWW Give some DonationCredits to this forum member
« Reply #11 on: June 13, 2011, 05:00:40 PM »

We tried to install moodle for testing but mouser did not want to have gothi[c] recompile some things with mysqli support. This limits our choices, unfortunately.

Does that mean that anything used has to be MySQLi compat? If so that is a limitation on a lot of PHP/MySQL based systems? Is there any reason why MySQLi is used instead of the usual MySQL?
Logged

Josh
Charter Honorary Member
***
Posts: 3,345



View Profile Give some DonationCredits to this forum member
« Reply #12 on: June 13, 2011, 05:07:43 PM »

The majority of LMS utilize mysqli as the primary database driver. 4 of the ones I have looked at thus far use it and do not support standard mysql. After troubleshooting with gothi[c], he identified the string being called for db access and I have thus confirmed a few other packages utilize this, and not std mysql.

That said, not to worry! I have one installed that is turning out to be very promising. I think it might be a winner. Once I get a chance to do some more configging, I will post it for general appraisal.         
Logged

Strength in Knowledge
steeladept
Supporting Member
**
Posts: 1,058



Fettucini alfredo is macaroni & cheese for adults

see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #13 on: June 13, 2011, 10:25:21 PM »

I am guessing this is what you are doing Josh, but....what about putting it in a different VM altogether?  That way it wouldn't need to be recompiled and potentially mess up what is already here....Make it truly separate in all ways, or is there a lot not mentioned here?
Logged
Josh
Charter Honorary Member
***
Posts: 3,345



View Profile Give some DonationCredits to this forum member
« Reply #14 on: June 13, 2011, 11:16:36 PM »

The new programming school will run on a completely different site. The idea is to separate it from the forums in an attempt to make it more user friendly.
Logged

Strength in Knowledge
mouser
First Author
Administrator
*****
Posts: 33,770



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #15 on: June 13, 2011, 11:49:19 PM »

alivingspirit: Thanks for your comments -- i think we should survey everyone who has participated in the current school to get comments and suggestions.

A bit of history about the self-teaching programming school.

The current version of the self-teaching programming school is actually the second incarnation.  I made the first version a couple of years before DonationCoder and it was devoted purely to C++.

It was great to merge it into DonationCoder and expand it to handle other languages.

I think it has worked very well here, but I've thought for a while now that it reached enough of a critical mass that it might be a bit cleaner and more engaging if it was made back into a stand alone site.  I think it might help both DC and the programming school.

Up until now the programming school thing has been run on a forum infrastructure with some modifications.  But I think this would be a good opportunity to use a more robust system that would support more specific online-learning features.

Having said that, the focus should still be on a minimal simple approach to self-teaching.
Logged
Carol Haynes
Waffles for England (patent pending)
Global Moderator
*****
Posts: 7,958



see users location on a map View Profile WWW Give some DonationCredits to this forum member
« Reply #16 on: June 14, 2011, 06:14:22 AM »

I know Josh is playing with Moodle but wouldn't something like a WordPress blog be simple an efficient? Each post would be either an assignment or language reference and the comment system could be used for discussing individual projects with the "teacher" moderating?

If you want I could set up a similar system in Joomla that would allow for an easily searchable resources section and finer access controls. It could be a fun project to play with Joomla 1.6 with (I haven't tried 1.6 yet but it has improved access controls and extendable user profiles which should/hopefully allow things like achievements to be added). If this sounds a likely idea I will have a go at it but I haven't got time if it is a non-starter.
Logged

Fred Nerd
Supporting Member
**
Posts: 272



see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #17 on: June 15, 2011, 02:51:05 AM »

Ok,
I'm a long time programing school user.
First thing, half of its attraction is its lack of commitment. I could see 'Programming School' and check it out without having to sign up, enter an email address or anything. I could just check out Assignment 1 and keep it in mind for a few months and eventually get around to doing it. And the feed back was what then inspired me to keep going.
Assignment 1 and the instructions for it need to be very non-committal and not so personal. I don't want to waste someone's time teaching me what I only have a small interest in.

Past assignment 1, what was often needed/wanted was a hints. For instance in c# "this program requires a custom class so you can easily work with these objects" "try making one array to hold all places, and one to hold all pictures and then transfer in between" "Use a Richtextbox and then you can work with Flowdocument"
I spent a lot of time just trying to work out "Is this possible?" "where do I start?" "This option I just found looks waaaay too convoluted, surely there's a simple method call"

One other thing. I've just completed stage 1 of c#. So now..... If I want to go on to be a professional, I'm starting to think I should go on and go onto a paid course which leads me to a Microsoft certification. But now programming school is starting to grow on me, and its a challenge to finish it.
Reckon someone with a bit of MS knowledge could align it? Sort of "when you finish c#, and ASP you should be confident to take the MCSD (or whatever) test".

As far as feedback goes, I understand that Mouser (more power to him) is busy, but the sort of things I would like to hear would be "It looks good and works, BUT if you use this method, its clearer and simple" "You really should split that class since its WAAAY too long and you can't find anything in it" "Not enough error handling, what if you had it running and a cat jumped on the keyboard, would you lose all work?"  "Always remember that a *txt file might actually be a renamed *bmp or something, allow this to be handled"
Even if the first feedback was "can't be bothered to work it out, make sure your comments make it easy to understand"

I do like what Stack Overflow has where there is a question system, and answers are graded by readers, and then the people who answered them are awarded points, which are directly reflected in job references. Not sure how that idea can be incorporated, but maybe lets say if there was a question spot, and every positive vote sent a small amount of (optional) credits?
Say I asked "I'm trying to use an attached *bmp in WPF and it seems to be a total nuisance to use as a resource, any simple way to access it?" And someone can write in converting it to am Image taking 10 lines of code, and someone else can write in a simpler way, and someone else has written a custom class to handle it. And I can say "Love that class, FN <likes this to the tune of 1 credit>"
BTW, that is a real question, and I have yet to write that class, but it seems neccessary unless anyone has a better idea. Its worth a credit.

In any case, I love programming school, and if I could help in any way, I will. (next assigment mouser will tell me to build a the formwork for it..... Oh Dear)

Fred

Logged
40hz
Supporting Member
**
Posts: 11,056



see users location on a map View Profile Read user's biography. Give some DonationCredits to this forum member
« Reply #18 on: June 15, 2011, 06:33:15 AM »

I'd like to suggest some judicious use of video. but leave it optional for those who have slower connections. Don't know what that would do to overall site bandwidth, but for some people, hearing a voice or seeing images is a better learning mode than reading text. I mention this because I keep thinking of how much Mouser's FARR screencasts answered some nagging questions I had about it that no amount of reading seemed to clear up for me. And I'm one of the few that doesn't mind reading manuals. I like to read!

It wouldn't need to be elaborate or long. (Think screencast Schoolhouse Rock rather than a PBS Nova presentation.) Maybe just having Cody hand out the assignments along with its related information? Or a walkthru to show how to set up a C++, Python, or PHP dev environment for an absolute beginner? I realized this wasn't intuitive for most people when I told my otherwise very computer-savvy GF to "just install XAMPP on your PC and load Wordpress into that if you want to play with it" and got The Woman-look in return. (Once I elaborated a bit and showed her the relevant websites she grabbed what she needed and was on her way BTW. She's a quick study.)  

Might be that little bit of fun or 'extra' that makes the experience more enjoyable.

Besides - Cody always wanted to be on stage.  Grin
« Last Edit: June 15, 2011, 09:14:13 AM by 40hz » Logged

Don't you see? It's turtles all the way down!
Carol Haynes
Waffles for England (patent pending)
Global Moderator
*****
Posts: 7,958



see users location on a map View Profile WWW Give some DonationCredits to this forum member
« Reply #19 on: June 15, 2011, 07:49:58 PM »

Don't know what that would do to overall site bandwidth

Nothing host it on YouTube and embed it on the page.
Logged

Carol Haynes
Waffles for England (patent pending)
Global Moderator
*****
Posts: 7,958



see users location on a map View Profile WWW Give some DonationCredits to this forum member
« Reply #20 on: June 15, 2011, 07:51:23 PM »

If you want I could set up a similar system in Joomla that would allow for an easily searchable resources section and finer access controls. It could be a fun project to play with Joomla 1.6 with (I haven't tried 1.6 yet but it has improved access controls and extendable user profiles which should/hopefully allow things like achievements to be added). If this sounds a likely idea I will have a go at it but I haven't got time if it is a non-starter.

Sorry to quote myself but I didn't get a response - anyone think it worth while trying this approach?
Logged

mouser
First Author
Administrator
*****
Posts: 33,770



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #21 on: June 15, 2011, 07:55:37 PM »

Carol, wordpress (and full cms systems) can do lots of things, but this is a case where its just a million miles from what they are designed for.

The whole point of the programming school is for lots of users to sign up and start submitting their assignments and get graded on them and advance through a series of challenges, and then comment on each other's suggestions.

Trying to do this using a kind of comment system found on blogs/cms is not feasible.

This really is something that needs specialized software.  The closest match to a standardized system is a forum -- which is what hosts the programming school now, but its still a stretch.

This is just not something for wordpress/joomla, etc.
Logged
kyrathaba
N.A.N.Y. Organizer
Honorary Member
**
Posts: 3,018



while(! dead_horse){beat}

see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #22 on: June 19, 2011, 07:40:47 PM »

I'd like to suggest that site members who have already completed a complete programming Phase be allowed to serve in something of a mentor role for newcomers to the Programming School.  Mentors would not "do your homework for you", but would guide when users get stuck during an assignment, i.e., "the reason you're getting so frustrated is that you're trying to solve Problem A without using a loop."  Things like that.  

Of course, these mentors' posts should be moderated, to ensure they aren't giving bad advice/pointers.

Having mentors would provide additional help to mouser and others who have historically borne much of the load, and would have the additional benefit that mentors themselves would often wind up deepening their own learning while in the process of assisting someone.
Logged

Win 7 Home Premium 64bit-SP1 AMD Athlon II X2 220 Socket AM3 (938) @ 2.1GHz 6GB RAM Firefox 26.0
_________________________________________________________________________________________

I'm fighting against patent trolls. Join me and tell your representative to support the #SHIELDAct: https://eff.org/r.b6JJ /via @EFF

My DC page: http://kyrathaba.dcmembers.com | My blog: http://williambryanmiller.com/ | Proofreading Service: http://bit.ly/1fQSqQP

mouser
First Author
Administrator
*****
Posts: 33,770



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #23 on: June 20, 2011, 12:44:41 AM »

i really really like the idea of mentors and figuring out a way to incorporate them into the site.  i think it matches the idea of the approach perfectly  thumbs up
Logged
capitalH
Participant
*
Posts: 71


see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #24 on: June 20, 2011, 01:42:16 AM »

If I may add my 2c to the discussion on the programming school:

I have started a number of projects and finished 80% of it, but not a single one of them to the point that it can be released. Because:

1. I hate doing GUIs - I always tend to be in this cycle of manually adjusting stuff until it looks just right, with no clear though process. (I started programming when GUIs were optional, and moved onto data analysis - again GUIs are optional)
2. Going through my code and finding all variables that should be customisable options (and through a GUI - see 1) are tedious and boring.
3. Most of my work relies heavily on work of others  - I am unsure of the licensing impact of taking a bunch of AHK code belonging to someone else, spiffing it up and then releasing it under my name.

 
Logged
Pages: [1]   Go Up
  Reply  |  New Topic  |  Print  
 
Jump to:  
   Forum Home   Thread Marks Chat! Downloads Search Login Register  

DonationCoder.com | About Us
DonationCoder.com Forum | Powered by SMF
[ Page time: 0.06s | Server load: 0.01 ]