Start a Chapter of Coding&&Community
How can you start teaching computer science at your college? It's a lot easier than you think. In this post, we will walk you through how coding&&community got started and how you can start your own chapter.
Three Simple Ingredients
The crux of coding&&community's mission is teaching. As such, getting your chapter started depends upon getting a regular computer science class running at your school. This first class is important for a lot of reasons. It serves as your main avenue for recruiting instructors (aka new members), allows you to start building connections with local education leaders, and, most importantly, you can start making your mission a reality.
So, what does your first class look like? There are three critical components: students, instructors, and a curriculum. To find a population of students to teach, it is easiest to integrate yourself with computer science enrichment programs your school already runs. You may have to do a little digging to find an opportunity, but this will make getting off the ground much easier. For example, coding&&community got started at RPI through the Institute's pipeline programs initiative, which is funded through New York state's Science and Technology Entry Program. Once we got in contact with STEP, it wasn't too hard to add coding&&community classes to existing activities. We highly recommend taking this route since it will make finding a classroom, computers, and other logistics much easier.
If a computer science enrichment program is not available at your school, consider looking into local high schools. Many schools have computer science clubs or a teacher for AP computer science. Staff in these positions make their living teaching students, and they will more than likely be happy to work with you getting a new class established.
Now that you have a student population identified, how do you go about finding instructors? The obvious place to look is the student population at your school. If you come from a college with a strong tech culture, great! You probably won't have to look very far to find students interested in teaching computer science through the usual ways clubs advertise (posters, club fairs, etc.). Otherwise, there are still plenty ways to find potential members. Even if your computer science department is small, there is a good chance that your school's introductory computer science course is quite large. Ask the professor if you can have a minute at the start of lecture to tell people about your chapter and how they can get involved.
Once you have a set of names identified, it is critical that you identify students from this initial pool who you know will work well as an instructor. This can be a tricky process if you're meeting new people to find instructors. We recommend having a brief interview process where you ask whether a potential instructor has had prior teaching experience, why they want to teach, and so on. Remember: your instructors will be the primary point of contact for the student population you serve. One bad interaction can set you back a long way.
A final note on instructors: your club doesn't have to made up entirely of people who teach. In our chapters, plenty of members spend their time building the website, writing new curricula, and organizing events. Forcing everyone in the club to teach in addition to all that behind-the-scenes work may discourage people who don't have a lot of time to dedicate to volunteering. But, at the same time, teaching is an easy way to rapidly build membership.
Alright, your class is set up, you have instructors trained and ready to go, now comes the biggest question of all, what are you going to teach? When you're just starting out, it will help you immensely to pick an introductory-level subject like Python, HTML, or Scratch. Yes, we know your research using keras is very cool. Yes, AWS is a good resume-builder. But to a kid who is just learning how to program (or just learning how use a computer!), starting off with something too complex may discourage them from pursuing computer science because they think it's too hard for them. Put your pet projects aside and start from the basics. Even the little things, like closing parentheses, using a terminal, and navigating directories may be a big challenge.
Your first class should be as simple as possible for the students to follow. To that end, you should omit things like package installation, IDE setup, and command-line operations as much as possible. All of that should either be set up beforehand, or even better, avoided entirely by using an online programming environment like repl.it. You should expect this first class to go slowly. When we do a semester-long Python class, we are usually happy to get as far as loops. The goal isn't breadth, but understanding. Almost all programmers learn on their own; the function of your class isn't to produce a FAANG-level programmer, but to get them excited enough about the material that they will pursue similar educational opportunities in the future.
Growing Your Chapter
Congrats! You've just run your first class. After advertising at the computer science club and CS1 lecture, you have a handful of passionate and capable instructors. By collaborating with your college's outreach department, you found a population of students who want to learn how computers work. With that, you're off to the races! As time goes on, your chapter will probably attract more members. And, with more people, you may realize that your club is starting to outgrow the first class.
What a wonderful problem to have. When your club grows, your ability to reach more students increases. There are plenty of ways to do more, in this section we will discuss some of our favorites.
Similar to a hackathon, this is a one or multiple-day event in which participants solve a series of programming problems to earn points. At the end of the event, the individual or team with the highest score wins a prize. The advantage of a code hunt compared to a hackathon is that it avoids the writer's block new programmers often feel at a hackathon. When you don't know a lot of code, it can be difficult to find a project that is simultaneously attainable and interesting. Depending on the number of participants, you can have as many as 100 problems ranging from simple (sum the numbers from 1-100) to difficult (write a Monte Carlo simulation of pi). This is also a great opportunity to put use code problems to introduce participants to tools they otherwise might not have experienced. See if you can adapt the "Getting Started" section of your favorite library into a neat programming challenge. When run in conjunction with a hackathon, such a challenge can organically inspire a student to work on something more than a brainstorming session would.
The classic computer science geek-off, hackathons work for youth as well. Hackathons are great from an organizer's perspective as well, since they pretty much run themselves. You can include a couple additions to make the event more accessible, as well. Hour-long workshops on useful tools (Git, matplotlib, etc.) give participants a break from grinding away at their project. Starter code for certain projects, like the code hunt, helps break through writer's block that makes the start of a hackathon awkward. With many students in one place, hackathons are a great opportunity to bring it guest speakers like current CS faculty, alumni from your school, and industry professionals. One note to consider is that rarely will participants be allowed to stay overnight. Make sure you account for that!
It's pretty unlikely that you are the only tech-oriented club on your campus. Wouldn't it be cool for someone just getting into programming to see all the different ways it gets used in the real world? See if you can get your UPE chapter, engineering club, or otherwise to talk about what they do. Maybe you can bring participants on a tour around your campus, showing them all the cool labs and such. From an organizational standpoint, there are a lot more moving parts to this. But, if you can pull it off, it's a great way to get your name all over campus!
Middle and high school teachers are always looking for ways to spice up their classes. Bringing in college students to talk about tech is a great way to show students how they can keep studying code in college and beyond. This will also help you connect with local educators to find ways to expand your reach to more students.
Getting funding can give your chapter a massive boost. However, getting directly funded by an outside company or grant is especially rare. Instead, you will be more successful if you can utilize your instructor expertise to get paid for teaching a lesson. To be clear: we do not advocate charging students to participate in your programs. That is, in fact, the exact opposite of what we advocate. But, keep on the lookout for ways you can transform volunteering into funding.
Also, keep in mind that sponsorship is a lot more than getting money. Immaterial ways of getting help from outside organizations, like swag, public speakers, and classroom resources can nonetheless improve how your club operates. Keep on the lookout, you may have to get creative. For example, RPI's admissions department had old laptops that they wanted to get rid of, and we were more than happy to take them off their hands. If any of your members have internships at a tech company, reach out to their recruiter to see if you can get stickers, socks, or whatever other merch you can give out as prizes.
Keep in Touch!
One of our goals with coding&&community is to build a community of computer science educators at different colleges. When we come together, we spread ideas that make all of us better at approaching equity in access to computer science education. If you want to get involved in this work, you can do so as a new chapter of coding&&community. In doing so, you'll get access to our brand, past and present curricula, and our alumni network of technology professionals. We will work with you to make sure that your chapter starts off strong.
Good luck, and don't forget to have fun!