Please create an account to participate in the Slashdot moderation system


Forgot your password?

Ask Slashdot: How Can I Make a Computer Science Club Interesting? 265

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?"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: How Can I Make a Computer Science Club Interesting?

Comments Filter:
  • by realsilly ( 186931 ) on Friday May 31, 2013 @08:09AM (#43870907)

    should do the trick.

    • by gandhi_2 ( 1108023 ) on Friday May 31, 2013 @08:26AM (#43871029) Homepage

      Hookers and coke.

  • Normal. (Score:5, Insightful)

    by nospam007 ( 722110 ) * on Friday May 31, 2013 @08:10AM (#43870909)

    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.

    • ^This. University enrollment is much the same too - Queens U CS started out with 180 I believe - whittled down to 40 every year. Tiny tiny department considering the value of the degree.

      #1 thing I could recommend: Don't treat them like idiots. Give them challenges you don't think they'll be able to complete and let them surprise you.
      #2 Get the arts involved too. Many computer projects require graphics - get them working on these separate things and show them how they can work together to create somethi

    • Also realize that computer science isn't interesting to a lot of people, and you can't really change that. I never tried out for the football team in High School because I didn't find football interesting. That's not because football is a crappy game, or that the school's program was bad; I just wasn't interested.

  • by MurukeshM ( 1901690 ) on Friday May 31, 2013 @08:11AM (#43870917)

    (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.

    • Moodle is a very good suggestion. Each user can experiment with their own local copy on a flash drive. There are a ton of different things that can be done, like updating the styling with CSS, create new blocks with HTML & Javascript, etc. You can make all sorts of improvements with a few lines of PHP & MySQL code as well, if your students want to get REALLY adventurous.
  • by Anonymous Coward on Friday May 31, 2013 @08:14AM (#43870925)

    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.

    • by robthebloke ( 1308483 ) on Friday May 31, 2013 @08:37AM (#43871121)
      +1 (and an ex-educator)

      If you want to bore the pants off people, teach them the syntax of a programming language. If you want to maintain an enthusiastic class, teach the bare minimum language skills (for-loop, not for/while/do-while. std::vector, not std::vector/std::deque/std::stack/std::list. member funcs, not member funcs/operators/static methods/etc), and encourage them to 'build' interesting things (simple games, basic apps, image editing tools, sound sequencers, etc). Enthusiasm for programming and computer science is something that you develop over time. Enthusiasm for being creative and making your own computer game, is something that can grab peoples attention. Just remember that whilst *you* might love the inner workings of a 6502 processor, there will be a large number of people that will find that dull and unexciting! Constantly ask yourself the question: "Why am I showing them this? Is this going to help them be creative?", and you can't go too wrong imho (and try to encourage the people to make links with other passions they may have, e.g. art, sound, etc)
      • by Creepy ( 93888 )

        I agree - when you're talking about a club or even a high school level class, you're going to get people of all skill levels and interests. Since it's a club, find out what the kids want to get out of it, and don't make it about teaching programming, try to make it about learning from each other. If you can find people with similar interests, group them together on projects, even if their skill levels are drastically different. I learned how to write 6502 Assembly when I was 12 by looking over a friend's sh

    • by samkass ( 174571 )

      Java? Kids? Write a mod for Minecraft.

    • by stdarg ( 456557 )

      I agree that it has to be made more fun. One fun thing is making money.

      Many high schools let clubs do fundraising activities, and the computer club is a good place to showcase money making software. In my high school days, I wrote a matchmaking program that matched people up based on a survey. We printed out surveys and gave them to everybody in the school a few days before Valentine's day. Then on Valentine's day, we set up tables at the cafeteria and people could buy their matchmaking results for 50 cents

  • 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 as
  • Computer Calisthenics
  • Robotics (Score:2, Interesting)

    by Anonymous Coward

    Build an autonomous Ardurover. That will raise lots of interest.

    • That's what I would recommend as well. I work in industrial automation, building tooling for the kind of robots that build cars, and for me, it is really cool to see something physically move based on your programming. With a serial port or other kind of connection (maybe some sort of wireless) between the moving thing and your PC, you can also create stuff that's fairly advanced, e.g. a command program on the PC that uses voice synthesis to warn a student to leave the area before sending the robot to "at
  • by edumacator ( 910819 ) on Friday May 31, 2013 @08:22AM (#43870995)

    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.

    • by gr8_phk ( 621180 )
      I liked this one: "Can you build an app for students in the building?" Doing an app for your friends can be a good motivator. When I was a kid I started a 2d scorched earth game on my Atari800, but it really started to get awesome when one of my friends started making suggestions and I implemented them - didn't just have a numeric display or a wind sock, ended up with clouds blowing by dependent on wind speed. Of course this can go too far with people demanding all sorts of things, but making something for
  • Step #1: toss Java. (Score:5, Interesting)

    by Nutria ( 679911 ) on Friday May 31, 2013 @08:25AM (#43871011)

    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.

    • by slim ( 1652 )

      +1 to that. CS is stuff like formally proving the search efficiency of data structures. Don't try to attract high schoolers with that. It's interesting stuff, but you need a gateway drug.

    • I agree. "Computer club" should not be "code-monkey training"; the point is to engage and play, not to teach practical job skills.

      Keep as far away from the stereotypes as possible, eg. don't show a screen full of unintelligible symbols for doing something with numbers.

      Make it easily accessible, eg. drag and drop, sliders, concrete results rather than abstract results, difficult/impossible to make syntax errors (eg. tile-based languages).

      Make it lenient. Getting a parameter wrong in a procedural image genera

  • by SplatMan_DK ( 1035528 ) on Friday May 31, 2013 @08:26AM (#43871031) Homepage Journal

    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: []

    - Jesper

  • Make something cool (Score:5, Informative)

    by slim ( 1652 ) <john@hartnup . n et> on Friday May 31, 2013 @08:27AM (#43871043) Homepage

    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?

  • Ask them what their expectations are and work from there. Everyone's ideas on what computing is or should be are different.

    But I would suggest that if coding is going to be part of what this club is that you get a group consensus on what kind of project they'd like to do and start something on SourceForge or the like. It'll get some public recognition even if it's not too great and people will see their name on the web. People like that kind of thing.

    I do a public astronomy outreach with my local amateur
  • MIT's scratch is pretty fun: []

    • by slim ( 1652 )

      Scratch *is* fun, and would be a great fit for an elementary school computer club.

      I think by the time you're in high school, you should be aspiring to something more powerful/advanced.

      Having said that, for complete beginners to programming, I'd be tempted to use Scratch just for long enough to introduce a few core concepts. It's wonderful to have an environment where syntax errors are impossible.

  • some thoughts (Score:2, Insightful)

    by buddyglass ( 925859 )
    You have to think about what peoples' motivation will be to be part of a "computer club". Despite being generally interested in coding, most folks don't want to sit around and talk about it all the time. Some ideas:

    1. Serve others. For instance, offer to tutor kids in lower-level programming classes. This won't be well received if you just end up doing their work for them.
    2. Prepare, as a group, to enter local programming contests. Where I grew up, there were one or two schools in the area that had "
  • by HungryHobo ( 1314109 ) on Friday May 31, 2013 @08:36AM (#43871105)

    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)

  • I remember the CS club in my school back in the day and as I recall, it was a room full of very bright students but they all pretty much kept to themselves, not because they were mean or bad or anything, it was just a room full of introverts - if my experience is any indication I would recommend any activity that gets the group working together to meet a goal and or have them share what they are tinkering with and offer to help others and receive help. the club in my school got a lot better when it was take

    • by slim ( 1652 )

      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 s

  • Invite speakers (Score:4, Interesting)

    by nbauman ( 624611 ) on Friday May 31, 2013 @08:37AM (#43871129) Homepage Journal

    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.

    • Experienced folks can teach real CS in interesting ways too.

      I've got a standard gig I do when asked to do "anything" which involves a fist full of pennies and notecards. In about 1:30 I teach the kids from 2nd-grade through high school how to send each other uncrackable encrypted messages (usually described in terms of teachers or CIA depending on the grade level). They get a touch of information theory, Boolean algebra and cryptography, but I don't use such lofty terms, I just encourage them to be subver

  • You all are mostly familiar with Java. So create some sort of large project that is based in Java. Minecraft mods come to mind as an easy one, but there is still the possibility of some sort of web app/game that you all could participate in creating.

  • My philosophy is simple: Hello World is stupid. When I started programming in C at university, it bugged the hell out of me how long we took struggling with the language before being allowed to actually do something. The real way to start C is to start teaching the *n*x command prompt, and start making simple programs for shell extension commands (square, square root etc). That's the quickest way to get to something conceptually useful, because you're starting with divide-and-conquer and effectively teac

  • by mx+b ( 2078162 ) on Friday May 31, 2013 @08:47AM (#43871195)

    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!

  • Oolite [] is a free open-source cross-platform space trading and combat game inspired by Elite. It is infinitely mod-able and is written in objective-C.
    The OXPs (expansion packs) use javascript and open-step plists and graphics can be produced with Gimp etc.
    There is also a big community behind it so there's plenty of support available.
    The game is great fun, and it is easy to make expansions - your kids will be able to produce good results quickly.
  • by arfonrg ( 81735 ) on Friday May 31, 2013 @08:51AM (#43871231)

    Get rid of the 4 regulars because they are driving everyone else off.

  • Anything that moves in response to commands is going to be more interesting that stuff that just sits there. Start a robotics curriculum that can be expanded as you find more resources and sponsors.

    Throw in a 3D printer and there will be all sorts of interest.
  • I'm not sure if this is as relevant as it was when I was in a computer explorers club in the late seventies, but the coolest thing we did was go on field trips after school to see what sort of equipment and jobs were out there. Someone's parent or friend of their parent would usually take us into the "computer room" and explain the equipment and what they were doing. It was pretty cool.

    Of course, I did grow up near the Johnson Space Center and most of our field trips were NASA contractors and NASA itself,

    • Of course, I did grow up near the Johnson Space Center and most of our field trips were NASA contractors and NASA itself, so that probably helped. And it was the late 70's, so paper tape, 9-track, punch cards, disk packs, etc. were the norm.

      Strange how compared even to something like the original Gameboy, that much less computing power could look more fascinating.

      You could actually SEE how data is processed. And seeing is believing. This clearly sparks more intrest in "computers"

      Back then, the basics (e.g. a simple "guess the number" game in Basic or Pascal) was much much closer to professional data crunching in a big iron computer room. geting "Guess the number" working was a success. Today it's a disapointment because it doesn't have 3D-grap

      • You could actually SEE how data is processed. And seeing is believing. This clearly sparks more intrest in "computers"

        Exactly. Everything was a lot less "black box" back then. You could see the bits light up on a panel as they were processed at sub KHz speeds.

        Maybe OP could have them build a simple "slow" computer with regular transistors to help understand the whole concept of registers and binary math as it happens in a machine. Start with something that adds two numbers and go from there.

        And yeah, we

  • 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 achie

  • by Culture20 ( 968837 ) on Friday May 31, 2013 @09:13AM (#43871447)
    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).
  • by morbingoodkid ( 562128 ) on Friday May 31, 2013 @09:14AM (#43871457) Homepage

    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.

  • by slashmydots ( 2189826 ) on Friday May 31, 2013 @09:24AM (#43871555)
    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.
  • I suggest you develop some sort of "story arc" or pathway or series of activities that build on each other, but where each step is fun on its own. Then new members can see how things will evolve over time, and not just be a purposeless hangout time that's easy to replace with Final Fantasy XX when that hits the shelves.

    As an example, they probably already know about Minecraft. For a minimal cost, you can get two Raspberry Pi units, then expand as kids start acquiring their own. Get them interested in th

  • So when these 40 members showed up did you take a poll to figure out what people were interested in?
    Do people want to build video games? If so, show them pygame. Show them scratch.
    Do people want to do robotics? There are only a bazillion cheap robotics kits that use Arduino's, raspberry pi, etc.

    You need to figure out what direction you want to take the club and go in that direction.

    Just my two cents. I've been actively involved in running a LUG ( for more than a decade. This formula
  • At my former employer's, a colleague and I once gave a course with the help of OWASP Webgoat. It was in the evening, so on employees' own time. But lots of people came, and when time was up, we had to almost drag them out of the building. Including the secretaries, who had had great fun "stealing" credit card numbers.
  • Just get raided by some law enforcement agency. Your membership will triple overnight!
  • IMHO, Java is the Visual Basic of the programming world. Try playing around with Raspberry Pi.

  • Choose exercises/examples from Knuth's books and implement sample programs in the language of your choice - make it a weekly contest, best sample app wins gift cards or something.
  • Make sure you launch them into something interesting. I would recommend a raytracer - the basics are incredibly simple, but they can be expanded to great levels of complexity. There is direct visual feedback, so rather than just printing out a load of numbers the users can field like they have achieved something more substantial. Numerical optimization and data structures can be introducted gradually and immediate results can be seen. Raytracers provide a great environment for introducing object oriented pr

  • We have a computer lab with ~30 computers

    Even old computers will still run plenty of good games...Quake, Warcraft, Halflife, Unreal Tournament, etc.

    Quake and Quake 2 in particular made it easy to create your own mods. Why not spend time hacking on the games and the rest playing the games? Great way to keep it interesting and fun.

  • As someone who was a VP of the comp sci group in my highschool years ago, the way we did it was we played games. We met twice a week, once to play starcraft (or other games... usually starcraft) and other games on the computers, the next to discuss coding and logic

    Often the logic would be strategies to figure out how the AI worked in games, but then we would talk about breaking through the schools firewalls, key loggers, etc. The Comp Sci teacher actually encouraged us to help him find security flaws for

  • Pick a fun and innovative project for the whole group to participate in. That way, people will have a reason to come back every week.

    The project should be:
    1. Fun - but not necessarily a game. Fun to compy geeks means "has interesting puzzles to solve"
    2. Innovative - do something new. Invent something that nobody has done before.
    3. Important - do something that matters.
    4. Focused. Don't try to create the Ultimate Framework of Everything. It will take too long, and people will become bored and leave.
    5. Ac

  • Quake... maybe even Quake tournaments.
  • Why don't you try writing a demo in Java ?

    It'll develop the creative part and help you discover Java in depth. And it's easier than writing a game !

    Here are some examples: []

  • RoboCode []
    Make it a competition amongst the members of the club. This is a little more modern take on old clubs where the main focus was usually Chess, Checkers, etc.

    For a little more advanced stuff, you could fork Mana World [] or create bots for the server and improve the game overall.

    Make an IRC MUD [] using PircBot [] or any of the other libraries out there. I've always wanted to do this but have never gotten around to it.

    Lastly, the most advanced option... research into making another Linux Distro ("
  • "Find a need and fill it"

    Why did you start the Computer Club? Was it because you and a few friends wanted to start one, or was there some burning issue/need that no one else in the community/school were addressing?

    I'm gonna go out on a limb and guess it's the first one, and I will go even further and speculate that it was an idea shared by you and three of your friends.

    Successful groups form when they address needs, concerns or interests of a number of people - what are the needs, concerns or interests of t

  • Put some booze in the Mountain Dew.
  • The javascript suggestion is very good. The Kids could use javascript to make expressive and/or functional websites for themselves.

  • Know how I get adults and kids excited about learning computer science? APPLIED COMPUTER SCIENCE.

    Seriously. It's just like "Rocket Science" -- Few actually give a damn about the Science, its the ROCKETS that matter.... at first, but if you want to have more fun with rockets, you end up doing more and more science.

    So, what are the applications of Computer Science that are simplest to understand at a base level and high level, yet have unfathomable depths in between?

    Video Games, Artificial Intellige

Q: How many IBM CPU's does it take to execute a job? A: Four; three to hold it down, and one to rip its head off.