I was recently elected president of the student chapter of ACM at my university, and am trying to come up with some ideas for events for the following year. The big one we do every year is practice matches and try outs for the ICPC. I am hoping to host one or two more events this year, and was wondering if anyone has some cool ideas or has some past experiences that worked well. One idea that we have had so far is to do a hackathon but it generally seems difficult to convince the underclassmen that they have the skill to participate in events like this.
Good question, and one I'll be looking forward to hearing others' answers to.
One thing you might want to look into doing is what we call "lecture series." This is when a fellow member (student or teacher) comes in and talks about something computer science related that the school may not have a class for. An example of this would be Android Development. These "lectures" are often hands on and teach people about the basics. By the end of that particular lecture, everyone had created a simple application. Some went on afterwards and published an app of their own. This event is often very engaging to students with a passion in the field. Maybe you yourself could teach skills that could prove to be useful during a hackathon, giving confidence to underclass to participate.
Another event you could hold is a "build-a-pc" event. You can have people compete in teams to successfully build a pc from all of the components. Incorporating what each component does could also be a plus. This type of event could also attract people outside of ACM and generate interest in them in hopes of them attending future meetings.
Companies such as IBM and ACM also do competitions themselves. You can incorporate those into your ACM events. IBM does a "Master the Mainframe" competition that I personally participated in last year. It was incredibly well done and very interesting. I learned a lot about mainframes and some different languages, including COBOL. Some schools got groups together to work on it on their own when the competition first opened up (as the first bunch of people to complete it get an extra prize). You could do something like this for an ACM event! (link to 2010 contest: http://www.ibm.com/developerworks/university/students/contests/mainframe/) ACM also does competitions such as one they did in February that required you to make a program to battle others in a simulated type of snowball fight. While I did not personally participate, I thought it would have been a good opportunity for an ACM event.
What about developing some ideas to full rather than having algorithmic hackathons. People get together 2 times a week, and code on a side project. It could be a website, a unix utility or a simple tips and tricks paper about awk.
Alternatively, take some old topcoder or ICPC problems at the start of week and discuss various implementations at the end of week
Event 1: Offline Code-Submission Round and Finals at Event
Think of an INTERESTING GAME DEVELOPMENT PROBLEM that involves algorithm and decent visual effects. Think of applicable tech stacks that should interest the participants. Publish the game to be developed with the condition that the computer should win every time when played against the player. Give enough time for code submission.
Inform that the top N code will be called for the final demo round followed by questions from Jury (subsequently followed by questions from participants possibly).
And know what typically students might end up on backtracking algorithm with varying depths and interesting user interfaces and design. There can be many interesting aspects of code design. All these are open for the Jury to question after the demo in the finals round. This usually is one looked after event in inter-collage technical symposiums. This can be applied to ACM's student events too.
Event 2: Online Quiz Round the results of which will be announced on the day of the event. Crowd puller!
Conduct an online quiz with crazy number of questions to be solved. This quiz can include general logic problems, technical questions, difficult math puzzles. This was the way we organized way back. Important thing is that this round requires pre-registration, from each collage to get their event passwords. Just to ensure limit the number of entries from each collage and that no user re-submits or re-tries the quiz solutions again.
Event 3: Onsite Coding Round to solve some programming puzzle in C/C++/Java
This might require the lab infrastructure to be set based on the number of participants. That would be the difficult part other than thinking of a proper Coding Puzzle Question (Better to have two questions wherein the participant has the choice to solve one of the two)
Most important key to this event is the marketing, branding, and the prize-money attached to this special event. I have won competitions for the vary same reasons that I cited above.
Well, that was my experience. Wish you good luck!