Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   A Coding Club (http://www.chiefdelphi.com/forums/showthread.php?t=130730)

yash101 05-10-2014 17:52

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.

Jay O'Donnell 05-10-2014 17:54

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.

yash101 05-10-2014 18:06

Re: A Coding Club
 
Quote:

Originally Posted by Jay O'Donnell (Post 1402962)
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.

I do have some goals for them, actually. My teacher has asked me to try to teach middle-schoolers programming, so as these students progress at learning how to code, they will start tutoring programming to those who need help. Many of these students also have a great chance of joining our FRC team next year, adding to our programming team!

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.

nandeeka 05-10-2014 18:12

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.
  1. Everyone sits in a circle. The first person says their name with an adjective that starts with the same letter. The second person reintroduces the first person and then says his/her name with a different adjective, and so on.
    For example:
    Person 1: "Hi, my name is Nice Nandeeka."
    Everyone: "Hi Nice Nandeeka."
    Person 2: "Hi, my name is Amazing Alisha, and this is Nice Nandeeka."
    Everyone: "Hi Amazing Alisha."
    Person 3: "Hi, my name is Silly Sarah, and this is Amazing Alisha and Nice Nandeeka."
    Everyone: "Hi Silly Sarah."
    ...and so on.
  2. Everyone stands in a circle with their places marked (with chairs, shoes, water bottles, etc) except one person who stands in the center. They introduce themselves and say something they enjoy. Everyone else who also enjoys that thing has to move to a new spot. Since there is one less spot than person, someone else is in the middle and the process repeats.
    For example:
    Person 1: "Hi, my name is Nandeeka and I like programming."
    Everyone who also enjoys programming switches places and Sarah ends up in the middle.
    Person 2: "Hi, my name is Sarah and I like to do math."
    Everyone who also enjoys math moves to a different place and someone else ends up in the middle.
    ... and so on.

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.

Dkt01 05-10-2014 19:11

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.

Greg McKaskle 05-10-2014 19:25

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

DonRotolo 05-10-2014 21:30

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.

yash101 06-10-2014 00:10

Re: A Coding Club
 
Quote:

Originally Posted by DonRotolo (Post 1402989)
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.

I will show them the "Hello World" application in plain C (printf) because it is much simpler than I/O streams in this concept.

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

EricH 06-10-2014 00:36

Re: A Coding Club
 
Quote:

Originally Posted by yash101 (Post 1403004)
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

Oh? Without even knowing what OpenGL is, I've coded a game. In C++. Without using very much math at all.

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.

yash101 06-10-2014 01:16

Re: A Coding Club
 
Quote:

Originally Posted by EricH (Post 1403009)
Oh? Without even knowing what OpenGL is, I've coded a game. In C++. Without using very much math at all.

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.

I have written a couple games without OpenGL. However, they were crappy
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!

cjl2625 06-10-2014 01:26

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.

yash101 06-10-2014 01:52

Re: A Coding Club
 
Quote:

Originally Posted by cjl2625 (Post 1403012)
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.

I guess you could try by getting an application ready to deploy, and then use it to prove to the school how there is nothing wrong with it. I can only see that it can start raising money. There's nothing wrong with that, at least if the school rules are followed.

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!

vladtheimpaled 06-10-2014 06:53

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. ;)

faust1706 06-10-2014 14:40

Re: A Coding Club
 
Quote:

Originally Posted by vladtheimpaled (Post 1403017)
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. ;)

That's a misconception I do not enjoy clearing up about people who program. That we can "hack" anything at the flick of a finger. Most the time the term "hacking" is misused anyways, but people don't want to say "network penetration." Yeah, once you know what you're doing in Kali, it isn't that hard to get into networks or crack wifi passwords.

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.

markmcgary 06-10-2014 14:46

Re: A Coding Club
 
Here is an idea for an activity for a coding club.

Operation: Code Clash


All times are GMT -5. The time now is 13:37.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi