Answers.Body: <p>Back in high school, my first programming class was organized like this:</p>
  
  <ul>
  <li><p>The first ~25% of each class was <strong>mandatory</strong> lecture time. Every student listened to the teacher. This time was used for introducing new topics, going over homework or tests, etc.</p></li>
  <li><p>The second ~25% of each class was <strong>optional</strong> lecture time. This was for going over stuff in more detail, or for going into the theory behind what we were doing. Students who just wanted to dive into the code could just go get to work on the lab (in the same classroom, but on the computers in the back). But students who wanted more info could stick around in the desks and continue listening.</p></li>
  <li><p>The last ~50% of each class was lab time for everybody.</p></li>
  </ul>
  
  <p>I really liked that approach because it offered a little something for everybody. Students who were itching to dive into the code didn't have to listen to stuff they didn't care about, whereas students who weren't as confident in their coding ability (like me) could get a little more hand-holding without feeling like they were holding up the rest of the class. I think this format could work really well in a club setting.</p>
  
  <p>I'll also say that I think you should invest as much time as possible in project work. Students should spend more time coding than they do listening to you. Give them enough info to get started, but then let them do their thing. On the other hand, I also think you should allow some time for "show and tell" so students can show off what they've done, and see what other students have done.</p>
  
  <p>So, I would use the above format for each club meeting, where you go over some topics or steer students through the stuff you want them working on. Then set aside a day towards the end that's just for show and tell. Maybe make it interesting by having them rate each other's projects in various categories: funniest, most technically challenging, most artistic, etc.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-08-29T17:46:01.833Z
Answers.LastActivityDate: 2017-08-29T18:27:31.567Z
Answers.LastEditDate: 2017-08-29T18:27:31.567Z
Answers.UserDisplayName: Kevin Workman
Answers.Body: <p>I am suggesting another idea.</p>
  
  <p>Split 60-40 but not in a way as mentioned in the question.</p>
  
  <p>Keeping people talk for a day and make the other entire day for programming is quiet boring.</p>
  
  <p>Do programming for 2-3 hours, then like a break, conduct the Tech-Talk for an hour or one and half hours.</p>
  
  <p>This is the thing actually done by software developers in industry. But the tech talk is not hosted officially.</p>
  
  <p>Then they will interested very much with this.</p>
  
  <p>When they do coding for 3 hours, they will start to feel boring. Then when they entered to Tech Talk session, they will active again. After one hour, they again start feel boring and then when they start programming, it will be fine.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-24T16:43:38.843Z
Answers.LastActivityDate: 2017-06-24T16:43:38.843Z
Answers.UserDisplayName: i--
Answers.Body: <p>I am surprised that I did not bump into this question already. I have been running an informal tech club for 5 years now. Of course, I have been working from a home office from 5 years, so, I have a lot more free time than others. For instance, I don't have to go to office everyday. </p>
  
  <p>With that in mind, I have a simple 'fill when time is available' policy. Some weeks I have a ton of work ( sometimes as high as 50 hours) and other times, its less (as low as 10 hours). On 50 hours weeks, I do everything (discussions, coding sessions, guidance about doubts and clarifications) online, over email and Skype. </p>
  
  <p>On 10 hour weeks, I do more face to face interactions, extended lectures, write ups and so on. My students are used to this ( I communicate them via group email that next week I have a 50 hour week or a 10 hour week) so they also adjust their schedule. For instance, when they know I am on a 50 hour week, they have a lot more free time, so they take care of their time intensive tasks. Then, when they know I have a 10 hour week, they know they will be spending more time at the club, and adjust accordingly. </p>
  
  <p>So, communication about availability, planning activities based on time available (in other words, the split between work and educating is still happening regularly but the ratio keeps changing dynamically) every week has worked out well for me. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-08-29T03:37:59.567Z
Answers.LastActivityDate: 2017-08-29T03:37:59.567Z
Answers.UserDisplayName: Jay
Answers.Body: <p>I am currently a co-leader of a programming/FIRST club at my high school, and for us the key has been project based learning. We are always working on something. It might not be relevant to our upcoming competition, but we always contextualize lessons in terms of what we're working on. That way everyone stays interested in the current project and sees the utility in the lesson being taught.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-24T16:56:12.280Z
Answers.LastActivityDate: 2017-06-24T16:56:12.280Z
Answers.UserDisplayName: thesecretmaster
Body: <p>I've been thinking of starting a programming club - I know some people who would be interested and I think it would be a fun thing to do. This club would probably meet once or twice a week for a couple of hours and would have upper middle schoolers and early highschoolers (so maybe 13 - 16, somewhere in there). I'm in the same age bracket.</p>
  
  <p>Part of the fun is just working with other people on projects of your choosing, but it would also be nice to spend some time sharing knowledge - some members might want to talk about their project and what they learned doing it, others might want to talk about a particularly useful feature of a language, etc. </p>
  
  <p>Some ideas I'm considering:</p>
  
  <ol>
  <li>One day a week is for learning and sharing, another day is for programming. Advantage - 50-50 split, people would learn a lot. Disadvantage: kind of annoying for people who want to consistently work on a project.</li>
  <li>Have the club start with a couple of days coming up with project ideas and forming groups to work on it, work on the projects for about a month or a set length of time, and then spend a couple of days sharing. Advantage - lots of time programming, people get to share their work. Disadvantage - not really a space for people talking about non-project related things.</li>
  <li>A mix of the above - #2, but when someone wants to talk about something really cool they've learned/discovered, some period of time is set up where everyone can learn about it.</li>
  </ol>
  
  <p>How should time be split between these two activities so everyone has a good time but people still have an opportunity to share what they're working on? Would one of the above approaches work well, or would a different approach work better?</p>
  
Tags: <curriculum-design><project><extracurricular-club>
Title: Balance between teaching and projects in a club
ThreadText: # Balance between teaching and projects in a club
  
  (Asked by: username_0 on 2017-06-24)
  
  I've been thinking of starting a programming club - I know some people who would be interested and I think it would be a fun thing to do. This club would probably meet once or twice a week for a couple of hours and would have upper middle schoolers and early highschoolers (so maybe 13 - 16, somewhere in there). I'm in the same age bracket.
  
  Part of the fun is just working with other people on projects of your choosing, but it would also be nice to spend some time sharing knowledge - some members might want to talk about their project and what they learned doing it, others might want to talk about a particularly useful feature of a language, etc.
  
  Some ideas I'm considering:
  
  1. One day a week is for learning and sharing, another day is for programming. Advantage - 50-50 split, people would learn a lot. Disadvantage: kind of annoying for people who want to consistently work on a project.
  2. Have the club start with a couple of days coming up with project ideas and forming groups to work on it, work on the projects for about a month or a set length of time, and then spend a couple of days sharing. Advantage - lots of time programming, people get to share their work. Disadvantage - not really a space for people talking about non-project related things.
  3. A mix of the above - #2, but when someone wants to talk about something really cool they've learned/discovered, some period of time is set up where everyone can learn about it.
  
  How should time be split between these two activities so everyone has a good time but people still have an opportunity to share what they're working on? Would one of the above approaches work well, or would a different approach work better?
  
  **Tags:** curriculum-design, project, extracurricular-club
  
  
  ---
  
  ## 4 answers
  
  ### Answer by username_4 on 2017-06-24. Score: 5
  
  I am currently a co-leader of a programming/FIRST club at my high school, and for us the key has been project based learning. We are always working on something. It might not be relevant to our upcoming competition, but we always contextualize lessons in terms of what we're working on. That way everyone stays interested in the current project and sees the utility in the lesson being taught.
  
  
  ---
  
  ### Answer by username_1 on 2017-08-29. Score: 2
  
  Back in high school, my first programming class was organized like this:
  
  * The first ~25% of each class was **mandatory** lecture time. Every student listened to the teacher. This time was used for introducing new topics, going over homework or tests, etc.
  * The second ~25% of each class was **optional** lecture time. This was for going over stuff in more detail, or for going into the theory behind what we were doing. Students who just wanted to dive into the code could just go get to work on the lab (in the same classroom, but on the computers in the back). But students who wanted more info could stick around in the desks and continue listening.
  * The last ~50% of each class was lab time for everybody.
  
  I really liked that approach because it offered a little something for everybody. Students who were itching to dive into the code didn't have to listen to stuff they didn't care about, whereas students who weren't as confident in their coding ability (like me) could get a little more hand-holding without feeling like they were holding up the rest of the class. I think this format could work really well in a club setting.
  
  I'll also say that I think you should invest as much time as possible in project work. Students should spend more time coding than they do listening to you. Give them enough info to get started, but then let them do their thing. On the other hand, I also think you should allow some time for "show and tell" so students can show off what they've done, and see what other students have done.
  
  So, I would use the above format for each club meeting, where you go over some topics or steer students through the stuff you want them working on. Then set aside a day towards the end that's just for show and tell. Maybe make it interesting by having them rate each other's projects in various categories: funniest, most technically challenging, most artistic, etc.
  
  
  ---
  
  ### Answer by username_2 on 2017-06-24. Score: 2
  
  I am suggesting another idea.
  
  Split 60-40 but not in a way as mentioned in the question.
  
  Keeping people talk for a day and make the other entire day for programming is quiet boring.
  
  Do programming for 2-3 hours, then like a break, conduct the Tech-Talk for an hour or one and half hours.
  
  This is the thing actually done by software developers in industry. But the tech talk is not hosted officially.
  
  Then they will interested very much with this.
  
  When they do coding for 3 hours, they will start to feel boring. Then when they entered to Tech Talk session, they will active again. After one hour, they again start feel boring and then when they start programming, it will be fine.
  
  
  ---
  
  ### Answer by username_3 on 2017-08-29. Score: 0
  
  I am surprised that I did not bump into this question already. I have been running an informal tech club for 5 years now. Of course, I have been working from a home office from 5 years, so, I have a lot more free time than others. For instance, I don't have to go to office everyday.
  
  With that in mind, I have a simple 'fill when time is available' policy. Some weeks I have a ton of work ( sometimes as high as 50 hours) and other times, its less (as low as 10 hours). On 50 hours weeks, I do everything (discussions, coding sessions, guidance about doubts and clarifications) online, over email and Skype.
  
  On 10 hour weeks, I do more face to face interactions, extended lectures, write ups and so on. My students are used to this ( I communicate them via group email that next week I have a 50 hour week or a 10 hour week) so they also adjust their schedule. For instance, when they know I am on a 50 hour week, they have a lot more free time, so they take care of their time intensive tasks. Then, when they know I have a 10 hour week, they know they will be spending more time at the club, and adjust accordingly.
  
  So, communication about availability, planning activities based on time available (in other words, the split between work and educating is still happening regularly but the ratio keeps changing dynamically) every week has worked out well for me.
  
  
  ---
  
  