![]() |
A Coding Club
This year, I decided to launch a program at my school, the Coding Club.
My goal for this club is to create an environment where students can use their creativity, and create whatever they want. My goal is to ensure that the students are inclined to teaming up and helping each other out. Most of the enrolled students do not know programming. During the first meeting, we decided, through a poll, that we would like to focus on C++ and move onto Java, Python, etc. I am almost done getting the equipment set up. We will be using Linux in a virtual machine for portability and to isolate the code from the school computers to prevent us from getting in trouble for breaking something. I would like to have some sort of short and fun icebreaker at the beginning of each meeting. Please let me know of any good icebreakers, and and feedback in general about this program. |
Re: A Coding Club
I think you'll find that youll get more interest from students if you give them more of a goal than to just create whatever they want. A project that you can all work on together gives them motivation to work hard.
|
Re: A Coding Club
Quote:
Also, this club is built into a program that our school runs, the Center of Research in Engineering, Science and Technology. These students will be getting a lot of ideas for automation and to improve technology, which they can bring back to this club and work on in groups. |
Re: A Coding Club
I ran a programming camp for middle school students this summer. We played a couple of different ice breakers with them.
We also played games like Human Knot, Pictionary, Hangman, Charades, and Telephone as team building activities. Please let me know if you have any other questions. |
Re: A Coding Club
I've found "never have I ever" a good icebreaker game. Similar to #2 on nandeeka's list, everyone but one person is in the circle. The person in the middle says something they've never done such as "Never have I ever travelled outside the United States". Everyone who has done that thing the middle person hasn't done (such as everyone who has travelled outside the US in my example) moves to a new spot. This continues until you want to stop. Everyone gets a chance to see what they have in common with others, and they get to be creative trying to make everyone move at the same time.
|
Re: A Coding Club
In my experience, the key is to find the right combination of openness and guidance. If you give too little guidance, some/many of the students will not find the forest for the trees. Too much guidance, and it can start to resemble homework.
I think there are three topics that many people find motivating -- graphics, games, and robots. If you can rotate through these topics, I think you can keep people motivated and introduce programming and other STEM concepts quite easily. The other thing to keep in mind is the length of challenge before there is some form of reward or feedback given. For smaller children, this needs to be every few minutes. If three year olds are stacking blocks, they want to have someone clap and smile about their accomplishment every five minutes or less. For kids in elementary school, they want someone to comment on how good their coloring book looks every ten or fifteen minutes. I'm not a psychologist, but for high school students, I'd start with projects that take an hour or less and lengthen them as people's motivation seems up to the task. STEMy sorts of things I've done with teachers involve using a microphone and FFT function to discover what your cell phone's tones are. Once you understand the system, you can build an autodialer or send codes to one another -- for background, look up DTMF. Another one we did involved taping an accelerometer to your cell phone and having the alarm go off so that it buzzed. At what frequency does it buzz? In which axes? Are all cell phones the same? There are quite a few similar challenges, mostly built around NXT and LEGO sensors on the TUFTs CEEO website. For game challenges, pick a relatively simple game -- something like angry birds, but perhaps with your own theme. Maybe you have pirate ships lobbing parrots at each other, or Roman army legions flinging farm animals. These simple games can them be made multiplayer and expose networking, can be given some AI so you can play against the computer, etc. The other day I posted one I did with my kids over the summer. It was a virtual Spirograph. Figure out the math and choose a small step size so that linear approximations make smooth curves. We added multiple pens at once, decided to show the wheels, had a button for screen shots, etc. Greg McKaskle |
Re: A Coding Club
I agree with project-based learning. It is the most effective.
The very first project, just so everyone understands the build/parse/compile/deploy/run cycle (or whatever it is called) would be to display "Hello World" on the screen. I think every one of us has done this once. Also, I applaud your decision to start with C++. Once you understand a language, the rest come easier. C++ is darn near universal. Also consider touching on plain old C (or BASIC?), just to see a non OOP language and to know such things exist. |
Re: A Coding Club
Quote:
I will go through the C++ basics before diving too deep. Using streams actually is quite complex in the background. Most of the middle schoolers that I am working with already have ideas in mind with what they want to do. They range from simple problems like writing a disabled student aid program, up to programs, capable of calculating the height of an object by taking a picture of it with a phone (seems impossible because you only have the angles of the triangle, no sides)! I do not think I will dive into game design too quickly because that requires A) A lot of math B) OpenGL and it's alternatives require a ton of pointers and stuff that I am not very fluent with |
Re: A Coding Club
Quote:
Admittedly, writing the code for Yahtzee in a text window isn't as nice-looking as something like Solitaire, or something similar. But coding a game (or a vote-counting program, or something similar) can actually be a fairly simple exercise. In my introductory (OK, college-level introductory) programming class, we had three major class projects and some labs. I've mentioned two of the three major projects above; I'll have to dig out the third one if I can find some time and the files. |
Re: A Coding Club
Quote:
Brick Breaker with one level Yahtzee, one computer, multiple players rotating. Comes with bugs too! :D A couple more crappy games. Also, all my games were written in Java, using the ACM library, so it is quite pointless to use those in class. I guess that maybe I could switch back to Windows and get used to it's display manager. I am learning a library, DLib, which comes with cross-platform display tools, like a widget-based window system. It is quite simple to use this in conjunction with OpenCV, so maybe I may dive into these much deeper. As good as HighGUI is, it lacks many essential components, such as threading to prevent your display from freezing. It is also not easy to implement a button or similar. I still haven't been able to figure out QT. It changed significantly with QT5 so I cannot find any of the headers used by the tutorials I go by! It would be much more in my plate if I were teaching what I am learning. I have experienced that where I volunteer, where I had two training sessions and I was training someone else! I do not want to do the same thing with these middle schoolers and have them develop a scorn for coding! OpenCV: I just may begin with OpenCV because it isn't TOO hard, but allows you to do extremely neat things! |
Re: A Coding Club
I too have started a coding club at my school this year. Our goal is to make software and apps, which will be worked on as a team using Git, and then we will publish them.
On our team, it's kind of a prerequisite that you know some Java I'm order to be of help with the code. I don't suspect that we'll be teaching the basics of java, but we'll talk about the more advanced aspects of software development, like for android apps. However, we're having some trouble convincing the school to let us publish the software... I dont fully understand their reasoning, but I think they're afraid of offensive content and such that could poorly reflect on the school. Quite absurd in my opinion. Anyway, icebreakers.... I can't really help you with that; we didn't do any such thing at the first meeting. We just went through an introductory presentation about the team, collected information about the new members (8 total including myself), and then went right to brainstorming ideas for our first simple project. Took about an hour overall. |
Re: A Coding Club
Quote:
If I were to put a prerequisite, there would be almost no one in the club. Last meeting, we successfully installed Linux. It was the first time for most of the students! |
Re: A Coding Club
I wanted to create a coding club in my school but my school would never allow because they're afraid of it creating new hackers. One of the hackers just graduated last year. The last thing they want is a new one to troll IT. ;)
|
Re: A Coding Club
Quote:
If anything, you could maybe have a form all the students in the club have to sign to be in it that they will not cause damage to property. But it's not like you'd be teaching them Kali linux. At best you'd be able to make a robot follow a line with a group of people who have never programmed before in their life. |
Re: A Coding Club
|
Re: A Coding Club
Quote:
Launching a coding club is FAR cheaper than launching an entire new class for CS. Who knows, if it works exceptionally well, it might get much more funding from the school and maybe even a CS class might be started! |
Re: A Coding Club
One possibility for an icebreaker would be to play Fizz-Buzz. Go around the group counting off, but if the number is divisible by 3 say "Fizz". If it's divisible by 5 say "Buzz". If both, say "Fizz-Buzz".
I've heard this described as a child's game, but I remember it as a college drinking game. Screw up, and you take a drink. For a programming challenge, try writing code that prints out the Fizz-Buzz sequence. This is not really difficult, but it's a couple steps up from "Hello World". Implementing it requires students to write a loop, understand conditionals, and how to take the modulus of a number. Students who finish first can help out others who are struggling. Fizz-Buzz has been used for screening job applicants. Take a look at: http://blog.codinghorror.com/why-can...mmers-program/ |
Re: A Coding Club
I do agree with the "Hello World" activity, it's pretty simple and fun and will get your students a quick idea of coding, see if they are going to enjoy it or not, it can be pretty fun, other than that I have another idea, we did this in the beginning of one of our classes and in a couple of minutes we were all laughing and knowing each other. Students sit in a circle with one of them, or teacher in the middle or to the side, when the one leading standing up says "Small Fish", the students sitting put both fists to their chest, when he says "Big Fish" they put the fists away from their chest, in front of them. You have a lot of flexibility with this activity and can change the words or just say one of them to trick them along with going pretty fast, and if you move your fists wrong you get eliminated from that round. I know it as nothing to do with coding but I hope it helped :).
|
Re: A Coding Club
I'm a little confused about the age range of your group, but I highly recommend having in-house or attending a hackathon or two. Its not a "hack into the mainframe" type event, but a "hack together some sort of project" event. I'm not sure what there is for high school/middle school but its a pretty big community in college with Major League Hacks (http://mlh.io/) and a lot of college hack-a-thons encourage high schoolers to attend.
The cool thing about a hackathon is it forces you to complete a project in a short amount of time and you learn a fair amount doing them, and then if you win, at least in the college ones, there are a lot of cool prizes (items and/or cash) you can win and its good exposure to companies. As far as activities, in the class I TA for we have labs that focus on using a specific concept: if statements, loops, state machines, arrays, pointers, etc. We use arduinos and try to make it fun (key word: try). Anything with easy access to accelerometer data that you can then drop from a large height makes for a really fun lab where the students have to use accelerometer data to tell if the item is being held, in free fall, or bouncing/landing: and then compute how long it fell (you may have to guide them through the physics/algebra of that). |
Re: A Coding Club
Sounds like an exciting and fun idea! I wish I had the opportunity to join something like this in High School, I didn't end up learning how to really program until my first internship after my freshman year in college. I was tasked with the project of creating an interactive program that could parse through a txt file of unknown length. From there I had to convert any binary or hex to something readable and make that searchable. Overall it was a fun and exciting learning experience for me (even though it took me all summer) and I'll never forget the feeling of completing a project like that (although it will never beat the satisfaction of winning a FRC competition).
|
Re: A Coding Club
Quote:
It'll take a while for us to get the funds required to buy Arduinos and sensors. I need to start approaching organizations and other sources for funding. It is my goal to make this program free of charge because no one should have to pay to learn (the opposite of real life :ahh: )! |
Re: A Coding Club
Quote:
As far as material for a first meeting goes, I think a lot of people don't initially recognize the "wow" factor in coding. If you bring in a speaker from a tech company or show members unique things you can do with code, that might be a useful tool for engagement. For example, at one hackathon, an event organizer asked us all to visit a website; he then proceeded to conduct an orchestra (on all our individual laptops) from his phone. |
Re: A Coding Club
I will be looking at HackEDU. It seems like the service I have been looking for! Thanks for the link!
|
| All times are GMT -5. The time now is 17:38. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi