Ask Slashdot: How Can I Make a Computer Science Club Interesting?
plutoclacks writes "I will run a computer science club at my high school next semester with two other friends. The club was newly introduced this school year, and initially saw a massive success (40+ members showed up at the first meeting). Unfortunately, participation has decreased a lot since then, down to four active members. I feel that the main reason for this decline was the inability to maintain the students' interest at the beginning of the year, as well as general disorganization, which we hope to change next semester. The leaders of the club all have fairly strong Java backgrounds, in addition to enthusiasm about computer science and programming. We have a computer lab with ~30 computers, which, though old, are still functional and available for use. What are some ways we can make the club have an impacting interest to newcomers?"
should do the trick.
Life takes interesting turns, but the most interest is when you're off the beaten path.
First, reduce your expectations.
From your initial 40 'applicants' only 20% will stay, that's everywhere the case, from Pilates to Yoga, from Knitting to Pottery.
So in the best case, you'll get 4 additional members.
(Re)Design your website.
Create a course-management tool.
Try to use Moodle.
In general, a year-long project that will have a lasting effect on your high school.
As and educator for 20+ years (University level) I can attest that I too have had the same problems. The way to stop the declining numbers it to make it more fun. Have everyone War Drive on the way to the meeting and hand out a $5 gas card to the one who fins the most open AP's. Have a contest to find the most expensive computer on ebay. Have a hackathon over a 12 hour period where they get to try their hand at protecting and attacking computers in a safe environment.
Ask them what they want and adapt accordingly. They probably won't ask for pron because they can get that elsewhere and aren't dumb enough to think you can offer that at school. But if you get them to choose from a list of things that you know you are capable of offering them, you will give them some ownership in the club. They often find that easier than starting from scratch. In my experience, high school kids rarely get asked their opinions about anything that matters directly to them . . . and if you ask their opinions your club will start to matter to them.
Build an autonomous Ardurover. That will raise lots of interest.
First of all, congratulations for starting the club. Too many students sit passively by in high school.
A couple of things that could help. Do you have a dynamic teacher in your building that might be willing to sponsor the club? They can help you with recruitment and ways to keep people interested.
Also, try to have some really clear goals. Can you build an app for students in the building? Can you collect scraps from your IT person, and build some extra computers for the cafeteria for students to use or to give to underprivileged students? Can you find some local places to visit on a field trip or two? As much as I wish as a teacher that students would readily join clubs for their own edification, typically you need to find a "hook" to get them in the door. Once they've built something or seen the glory that is coding, they are going to be more likely to stay in the club. Try to find something they can SEE at the end of the year. Nothing beats seeing the fruits of your labor.
Good luck! If you need more advice or ideas, I could introduce you to some great AP computer science teachers.
An important change for education.
Step #2: understand that Computer Science isn't the same as Computers.
Step #3: decide what the current club members want to do.
Redesign the school web site? Robotics? Arduino/RasPi hacking? Learning new languages? Etc etc.
Installing FreeDOS and writing graphics programs in C that directly write to the VGA memory while controlling the sound "card" is an interesting first project. You learn a lot about the h/w, too. Then there's manipulating the FAT in assembly, banging bits out of the serial and parallel ports, etc, etc.
"I don't know, therefore Aliens" Wafflebox1
Take the time to visit non-profit organization Computing At School.
Their own description of themselves is:
The Computing At School Working Group (CAS) is a grass roots organisation that aims to promote the teaching of Computing at school. CAS is a collaborative partner with the BCS through the BCS Academy of Computing, and has formal support from other industry partners.
They are dedicated to finding and sharing the best ways to teach IT to the young(er) generations, and they have a proven track-record with great results.
I am not affiliated with them; but I use their website and material for my own children, because nothing better is available to me locally.
You can join their online Educators Community here:
http://community.computingatschool.org.uk/door
- Jesper
My security clearance is so high I have to kill myself if I remember I have it...
Heavy languages like Java/C++ are tedious for kids/adolescents. Program in something fun and lite like Python/Ruby/Perl.
Javascript is better still. No compiler, near instant results. You just need a text editor & browser.
Taking guns away from the 99% gives the 1% 100% of the power.
Make something cool; something you can show off to people outside the club, that will impress them and make them want to join in.
Something involving robotics or sensing devices, perhaps -- that seems to engage young imaginations somehow. It's 20 times cooler to make a turtle robot draw a picture, than to draw the same picture on a screen. What about a Raspberry Pi powered school weather station that tweets the current wind speed and temperature, and serves visualisations of historical data on the web?
See if you can come up with a project that can scale -- so your 4 core members can make a start on it, but other people could be brought in whenever they show an interest?
Right, simplest way to maximise the number of people who stay.
give them something immediate which they can do and see a result.
Get them thinking about other things they'd like to do.
It could be as simple as getting people to design some 3d objects then dropping them into garrys mod and letting people play with them.
Immediate small success is more important than technical significance
some basic scripting perhaps, the sort people can build on later without any setup like bash for linux/mac and vbscript for windows (even if VBscript is a horrible language)
Find some interesting guys in your neighborhood who are doing interesting things.
Try the local businesses, colleges, IEEE chapter, etc.
That's a "speaker" who comes in to describe his work, but then you spend an hour just hanging out with him or her.
As someone heavily involved in clubs in high school and college, let me first say that it is entirely common to have the numbers thin out quickly. Everything I've ever been involved in has mostly been done by a "core" group of say 3-6 people, everyone else is only helpful here and there on temp basis. Do not let that discourage you as it did me in the beginning. You don't need or even want too many people that actively involved or it will be a nightmare to manage. Instead, I would say get your core group together and vote more or less on an interesting project to work on. Build a robot, set up new computer labs in the school (with linux? ;-) ), contribute to an open source project mutually agreed on, or whatever makes your boat float. Cool things happening will get interest from others, who will then start to participate.
The other thing I can say about attracting newbies is that you have to be sure you don't make things *too* technical up front. Some people have an interest but do not know where to begin, and will get scared off if the first meeting is too focused on the cool advanced projects everyone has. Make sure you include some plain "social" events to make people feel comfortable. Maybe with a computers theme. Maybe participate in a Distro Release Party (openSUSE I think encourages everyone to plan a pizza party and play with the new release every time it comes out, maybe try that? social but gives new people a chance to learn something new in a non-threatening environment). Remember: there are probably more people with interest in programming, but did not learn it yet, and so you have to be sensitive to their emotions. Not everyone teaches themselves programming at age 8 (for any number of reasons), so just remember your first priority is fun with friends with an interest, and then from that build a core that does cool stuff (maybe the core has extra meetings in addition to the monthly social meetings that attract new members). Contests are often a good way to get interest because it gets people involved. Maybe have some fun computer related contest (jeopardy! type game, whatever) and have some cheesy prize for the winner.
Do you have a faculty sponsor? Having a teacher at bat for you can help you get resources: computers, software, pizza, or maybe even just get permission for use of a certain room as the club hangout and lab. An area to call your own is always good at getting people comfortable and happy to join.
In any case, do not worry *too* much about planning to attract help. Just be involved in the school, have a lot of enthusiasm and do cool things, above all be casual and friendly, and people will naturally start showing up and helping out. Have a lot of fun and good luck!
Get rid of the 4 regulars because they are driving everyone else off.
Your thin skin doesn't make me a troll
10% of people staying on for a year does not sound to bad (especially for a disorganized group). I would say that making the group accessible to people during the year (certainley the first term) will help boost numbers.I highley doubt you will achieve more than 25% of people to stay. I would say that 20% is really the best you can hope for. If you want more people your probably better off trying to get more people though the door (although this will drive down your %)
Have goals, - what do you want to achieve? Come up with a few ideas yourself for projects, then in the first few meatings get suggestions from members, do whatever you can to keep then involved and take ownership of the project. The decsion of which projects to follow needs to decided by the group. Don't run to many projects in parralel (not a problem if you only have 4 people) but have everyone working towards a common goal.
Don't be autocratic, members are putting time into it they don't want someone pushing them around, do be prepared to take on the role of arbiter in disagreements.
Don't assume everyone is at the same level, some people will have experiance, others will want to learn. Come up with an itroduction corse that is not mandatory, even if the course is just go away and read this documentaion/work though theese examples at home. Be prepaired to help. Agree on a group language, make it appropriate for the type of project you want to do, for application stuff I would recomend python.
I asuming that this will be be coding based - thats not a requirment but I would definatley go for somthing where you make/design somthing.
Most Damage is done by people who are AWAKE
I'm not kidding. Make it a social gathering for people who are in CS, not a place to discuss more CS concepts (that's what your classes are for).
I currently run a club with about 230 members about 100 active on a weekly basis. Here is the principles I use to run the club.
Basic principles:
1. Challenging
We try and target classes and projects just slightly above the students current level.
2. Fun
Let's face it if it's not fun people don't come.
3. Sense of achievement
People do not want to feel like they wasted their time. We give certificates for specific achievements.
4. Do what you promise
This is a way to make sure your club does not die. If you say you have meeting you have to have a meeting regardless if 1 person pitches or 100.
This is the only way I know how to do it. And it seems to be working.
I was the president of mine in high school and we turned it into the gaming club. We kept the title for funding reasons but really we just threw LAN parties. Membership was pretty high. We also held a dance dance revolution tournament with the finals in the lunchroom.
I've heard from other places though that the biggest success is always building some sort of overclocked, ultra-high storage, superocomputer but sort of an ironic one number-wise since nobody ever has the budget for a brand new one. Basically, throw together a ton of spare parts in a gigantic 1995 era-case with other computers' hard drive cages glued in for like 10 used drives with PCI IDE controllers (like $10 on ebay) and dual power supplies. You can get cages, fans, drives, and all that donated from people who just want to get rid of their junk computers laying around at home. Then run through how to run a proper chkdsk on them all and other technical stuff and definitely paint it and anyone into computers at all will love the project.
To bring people out of their shells -- and I am not joking here -- make something, and make it with agile activities . No, don't get all anal-retentive about Scrum methodology, but:
- Make design a group activity. Whiteboard. Write user stories on index cards.
- Invite some kids who are *not* interested in coding, to be "stakeholders" -- have them help you write user stories, show them your work in progress, gather their feedback
- Pair program (when I was at school, we were two-to-a-keyboard due to hardware shortages anyway)
For example, one pupil has a vague idea for a game. Perhaps he's not much of a programmer, but he knows roughly how it'll work.
Get him, some more technical pupils, some more arty kids, together for a design meeting. The arty ones all brainstorm for a bit. Then the technical ones step in and say, "OK, we've got a lot of cool ideas. By next week I reckon we can have a controllable square sprite, a jump control, some static target sprites, and a score that goes up every time he touches one.".
Then the following week, they show off what they've done, and the non-technical ones are suitably impressed. And the semi-technical ones have learned some more coding skills. And the arty ones have maybe drawn pictures to be scanned into sprites in the meantime. Someone says "I thought the main guy would move faster", or "he should jump higher", or "now, those static targets should move... how should they move"? ... and you iterate with that, mixing with non-technical people to build up something cool.
especially when a call to Tata can get guaranteed results
it's all a matter of what that guarantee stipulates.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)