DEV Community

Discussion on: What are the skills that a public school Computer Science teacher should possess?

Collapse
 
sishaarrao profile image
Sishaar Rao

While I was first introduced to Computer Science by my father, I truly learned how to program and develop projects in a classroom setting in my high school. I have quite a lot of experience mentoring and teaching people CS. I've worked as a TA for a summer AP CS course and worked in a local non-profit that taught CS to middle school kids. From my previous experiences, some important things to implement so that CS is fun and not a chore:

Work towards easily achievable, "brag"-able, and customizable goals
I've found that students tend to enjoy CS in the earlier stages a lot more when they can see the products of their work. Even better yet when they can put their own spin on it and show it to all of their friends. One basic example would be to create a basic HTML+CSS website, throw in a PHP file that directs to the main.html site, and deploy it to heroku. Sure, they don't need to know how all of the parts work together, but the fact that they have a website accessible on the internet!!! will instantly inspire them to do more

Work in a language with understandable syntax
Python is my personal favorite when it comes to this, primarily because of keywords such as "in", "with" etc. Python requires little to no setup to create your first program, and the easy syntax makes coding intuitive (nevermind much easier to debug)

Always explain concepts by getting up and moving around
One of the hardest new concepts for programmers is recursion: I always like to teach this along with other OOP ideas (Inheritance, Casting, etc.) by getting students on their feet and doing some activity. For example, for recursion, you could have them find the length from one wall to the other by each student taking one step and then moving another student in front of them. The original is then instructed to tell the person behind them the number of steps they took (1) plus the number of students the student in front of them took. Small games like this go a long way in cementing concepts in students' minds.

Stay away from tests, and stick with projects
Coding is one of the few sciences which is powered by creativity. The beauty behind programming is that at its core it's a means of problem solving, and people approach problem solving in their own way. Thus, for grading purposes, if you grade projects rather than tests, the students tend to enjoy the class much more than they would have. Rather than cramming concepts, they're applying them while googling new ones to learn how to implement features they'd want (a rather important skill for a programmer too) Plus, grading for the teacher is a lot more fun.

As for teaching teachers themselves, my only advice, once again from personal experience, is that you should use the same techniques. Programming is something that doesn't become more intuitive with age but rather with practice and application. These ideas for teaching children will be just as effective if not more with adults. If the teachers are exposed to CS in an intuitive and memorable manner, they will be that much more likely to teach students in the same fashion.

Hope this helps!

Collapse
 
carl_conton profile image
Carl Conton • Edited

I'm truly agreed with you about tests, cause most of the students just taking photos of their sheets and mail them to writing services, that re-send correct answers back. Projects instead of tests are more effective in education, as for me, because cheating on them it's too complicated)

Collapse
 
20zinnm profile image
Meyer Zinn

One basic example would be to create a basic HTML+CSS website

When I was in fourth grade, we took a "Computer Applications" course in which we were basically hand-held through the process of making a website.

At one point, our teacher had us start copying JavaScript games onto our sites. Some of my classmates had put one or two games up before I had found my perfect one. Not to be outdone, I quickly threw together a couple games on a hideous page and presented it to the teacher. He liked it so much that he put it on the board to display to the class.

He then decides to try out one of the games. I hadn't had a chance to tinker with it, but the name seemed cool so "Ask Mustafa" was my premiere game. It was basically an input field to ask a question and a cheesy output.

It was after the second question that my, and every kid's, worst fear was realized: one of the copy-pasted responses was something to the tune of "kiss my ass, bitch!" The teacher looked at me for a second and I, not having seen the response, held his gaze. And then the class burst out laughing. Still not knowing what had happened, I looked around wildly to see if I could figure out what had happened.

That teacher couldn't look me in the eyes again. He retired a few years ago.

Collapse
 
louisf profile image
Louis Frankel

It absolutely helps. I love the idea of project based learning for CS as it mimics closely the process of creating an actual process. Thanks for the input!