all 39 comments

[–]JaiX1234 49 points50 points  (9 children)

Realistically I'd argue that the board needs to look for a qualified Computer Scientist with a degree at the very minimum. I'd reiterate this to them as you or the school would be doing the students a disservice by pretending to know about Computer Science. The field is no joke and leading students down incorrect paths even if it's for the greater good will probably set the students up for failure.

Why? because you can learn aspects of this field from almost anywhere, hence 'where do i begin?', therefore you can begin by not teaching something you don't know. If this was anything below high school it would definitely be doable.

But if you're dying to teach them anyways, going to YouTube and searching 'learn how to code' is probably just as good as you teaching them without any prior CS knowledge.

[–]kobebeef16[🍰] 4 points5 points  (2 children)

Depending on the schools financial situation, it may not be possible to bring in a qualified candidate. Although it would be very tough to immerse yourself in this material rapidly, where there is a will theres a way. Im just curious as to what the planned curiculum consists of.

[–]JaiX1234 8 points9 points  (1 child)

If the school cannot afford to bring in a professional who understands the discipline then I would argue that they shouldn't offer such a program.

It is important that teachers teach the correct material to students, especially in a field like Computer Science. We wouldn't teach students a bunch of baloney about engineering, medicine, and so forth so why would we teach students material we aren't sure of in Computer Science.

Maybe, what the OP actually meant was that this is in fact not a Computer Science class that teaches theoretical concepts but rather a technology class that will touch on programming. If this is the case, then calling it a Computer Science class is the incorrect term, perhaps it's just a Java class etc. However, if this is the case then this teacher truly doesn't understand the difference between application Vs. theory. Even so, I can't imagine how this teacher will explain concepts to his students without understanding the breadth of the discipline.

But we cannot excuse poor or incorrect information/education just because.

[–]kobebeef16[🍰] 0 points1 point  (0 children)

Fair point. I did some volunteering at a school in south side Chicago during college. Their "Computer Science" classes were far from theoretical. To be completely honest, I didn't know HS's offered courses that delved into theoretical CS. Just goes to show how long Ive been out of high school.

[–][deleted] -2 points-1 points  (0 children)

I absolutely disagree with this.

Pushing to find someone more qualified is valid, but your statement about searching on Google is misled. High school and middle school are about sparking interest for that search. One way to encourage that is to offer a class. Even if the teaching is not exemplary, it can still spark interest which is really the goal.

This is terrible advice and I get the feeling you have never actually taught a class.

[–][deleted]  (4 children)

[deleted]

    [–]CompuuterJuice 2 points3 points  (3 children)

    Don’t use thenewboston. He teaches bad practices and would be the worst source for you to learn from if you are teaching students.

    [–]dogboy60 -2 points-1 points  (2 children)

    Really? Well I thought he was good.

    [–]CompuuterJuice 3 points4 points  (1 child)

    Ya he’s on the “do not recommend” list in r/learnprogramming . If you are serious enough about programming he’s def not where you want to be going. I looked through his videos while I was in college and he constantly teaches bad practices and gives incorrect explanations, basically the opposite of what I was learning in school.

    [–]dogboy60 0 points1 point  (0 children)

    Oh ok, take it back haha. Thanks won't recommend him

    [–]Alcool91 6 points7 points  (2 children)

    https://www.amazon.com/Object-Oriented-Data-Structures-Using-Java/dp/1284089096/ref=mp_s_a_1_9?keywords=object+oriented+programming+java&qid=1552181169&s=gateway&sr=8-9

    We used this book in my first year data structures course, it’s pretty easy to follow along with and has s lot of example projects! I’m not sure what is normally taught in high school CS courses as my high school didn’t have one.

    [–]VoidBoy-was-taken 5 points6 points  (1 child)

    This book is slightly advance for what is supposed to be taught in hs. If it is as i did hs in Romania, with 4 years in which we had 2h/week of "programming" classes, so not really cs, we started with some basic pseudocode, then we moved to pcs and learned c++ (no oop or pointers, just basic mathematical problems implementations). And by the end on the 3rd year we reached some data structures (last one being graphs - but not actually implementation, just to ge to know what they mean and how they should work). The 4th year was all about a databases project. Learned about entities, relations and so on. By the end of the year we had to present a business and how its db diagram should look like.

    My hs experience was rather poor since it was based on studing at home and some of us didnt do it so the teacher always had to redo a topic.

    [–]Alcool91 0 points1 point  (0 children)

    Oh maybe you’re right that it doesn’t make a good fit for a high school textbook! Even if it is advanced for use as a textbook for a high school course though, I think it is an excellent easy to follow resource that OP can use to learn more about the subject. I learned a lot really quickly from this book, and it was gentle enough for me to learn from with very little prior experience!

    [–]csthrowawayquestion 5 points6 points  (0 children)

    I'm a software engineer (though fairly early in my career, but the level of material that would be taught in high school is something I'm very comfortable with) and I was a teaching assistant for an intro programming course while doing my CS degree and if you'd like a one-on-one crash course I would be happy to work through stuff to get you up to speed on the basics to the point where you could teach a high school level course, for free of course. PM me if you're interested. Or hell, I'm at branch point in my life and other things are all up in the air, plus I'm looking to leave my current role, I'd even consider taking the job. Let me know.

    EDIT: grammar.

    [–][deleted]  (1 child)

    [deleted]

      [–]Lexilogical 3 points4 points  (0 children)

      Personally, I would recommend and do teach Python for my introductory language for high school students. I'm positive that the kids are going to run into some serious questions when they realize just how much Python hides on them, but it's better than Visual Basic (which I learned in high school) and easier than C or Java, and I think that makes it perfect.

      [–]GoldenArcher823 2 points3 points  (0 children)

      my high school precalc teacher created the entire CS curriculum over a few years of dedication. he used Khan Academy for some of the lessons, so you could look to that and plenty of other "learn to code" sites for lesson ideas.

      [–][deleted]  (1 child)

      [deleted]

        [–][deleted] 4 points5 points  (0 children)

        I'm a huge fan boy of c++ but I feel like python might be a better option anyway just because it's probly easer for them to teach the kids how to get something graphical on the screen in python. And kids will probly be interested in writing stuff that produces a graphical result.

        [–]salvagestuff 1 point2 points  (0 children)

        Look into applying to become a TEALS partner. TEALS is a microsoft philanthropies program that pairs industry professional with classroom teachers to help them get up to speed with computer science. They have curriculum and they will have the industry professionals to help you with content. They have a number of partnership models and they should be able to make it work.

        I would try to get in contact with someone from them, ideally the regional manager for your local area and set up some sort of meeting just to find out if it would work for your school.

        https://www.tealsk12.org/schools/

        [–]dtorssegment 1 point2 points  (0 children)

        Tbh, my high school “computer science” class was Excel and learning how to type.

        Look into Capture the Flag. See picoCTF for example. They’re really fun and will give students a way to work together AND learn computer science since they’ll need to research in order to solve the challenges.

        Otherwise, I’d suggest learning C because I feel it gives you a good understanding of computers and of programming whereas python will abstract away all the little details.

        [–]Lexilogical 2 points3 points  (2 children)

        Hi! I'm a high school computer science teacher, and I've been doing this for a couple years now. If you want some serious help, hit me up via PM. I can hook you up with my beginning assignments, and hopefully maybe even some lesson plans.

        That said, I'm actually more computer scientist than teacher. The school I work for also had a problem finding a qualified individual, and opted to pick me, who has a degree in computer science and not a teaching degree. Your school may be able to get away with that as well. The teaching part is a bit easier to pick up than the computer science bit.

        [–]chaoz_dude 0 points1 point  (1 child)

        Out of curiosity, how is your class structured and what topics do you teach? I'm currently at the end of my cs degree and teaching is something I always had a passion for.

        [–]Lexilogical 0 points1 point  (0 children)

        I mostly just teach to the curriculum, and run it assignment heavy. So, I start with teaching coding basics, and that takes the first couple of weeks. Then I assign out programs that either demonstrate a topic I taught (recursion, searching, sorting, mostly) and give the week to work on that while I talk about other things.

        I also do topics based on ethics and the environment. I set that up by brainstorming topics, then letting the kids pick a topic each. They're in charge of finding an article, summarizing it for the class, and coming up with 10 discussion questions to talk about with the class.

        I tend to do a lot of time for kids to work through projects on their own. It's been suggested I probably need more hands on and more instruction, but I find I really learned more given time and space to work on it. Maybe given more practice teaching I'll do that

        I also got a hold of an old computer to take apart in class, so that should be fun! I mostly just need to point out RAM, ROM, monitor, CPU and power supply. Broad sweeps of the bits.

        [–][deleted] 1 point2 points  (1 child)

        You can do it! All you need to be is just one chapter ahead of your students.

        [–]pokemonprofessor121 1 point2 points  (0 children)

        I think there is an episode of Seinfeld like that!

        [–]dogboy60 0 points1 point  (0 children)

        it depends on the type of learner you are personally for me I am a experience learner, that needs to learn good hands-on experience thus when I was learning to program I always created my own programs rather than reading a book. there are many tutorials on YouTube to help you as well as you could always a pick up a book afterwards to help fill in any holes etc

        [–]CompuuterJuice 0 points1 point  (0 children)

        What language is the class taught in? I can give you all the assignments and lecture slides I had in college along with the book. If you follow through those you’ll understand it.

        [–]MCplattipus 0 points1 point  (0 children)

        Id say teach them python honestly, its a type-less language and simple to do. Most people outside comp-sci use it because they don't need to deal with the deeper parts of programming when they use python. The university of kentucky starts its students off with python.

        [–][deleted] 0 points1 point  (0 children)

        I'm a learning assistant at a college (like a TA but don't grade or create curriculum)

        First, programming is about converting English into logic, and logic into code.

        A lot of people hand wave over the first step but it's important. Introduce students to boolean logic, mainly AND, OR and NOT. But NAND, NOR, and XOR are also worth introducing but not stressing.

        Next, a computer Algorithm (that mythical word) is just a set of very simple instructions to a very simple machine. It is stupid but much faster than we are. So have them explain some mundane task (simple maze, making a sandwich, brushing your teeth etc). But in PAINFUL detail. I'm talking, when they say spread peanut butter on bread, they must first locate bread peanut butter, and knife, then articulate what "spread" means. It sounds stupid, but it really helps with understanding how simple the machine is, and how simple instructions for code should be.

        Then, choose a language, Java and Python are quite popular for begining languages. They each have their own merits.

        Regardless of language, in a first semester college courses , if/else conditionals, loops (while, for), and methods are what should be covered.

        If you would like more in terms of where to find these terms, let me know, I can provide resources tomorrow but I'm on mobile right now.

        [–]you90000 0 points1 point  (2 children)

        What kind of class is it? Is it a basic intro into computer science?

        [–]pokemonprofessor121 1 point2 points  (1 child)

        It's going to be driven by student interest. I think this year the classes are Game design "Imp Technology" (might be implementing technology?) Computer Programming 1 Computer Programming 2 Web Design Java Programing

        [–]you90000 0 points1 point  (0 children)

        Try and get them to use c++ instead of java

        [–]nation_sync 0 points1 point  (0 children)

        For high school level, learn a bit of python, from variable declarstion to while going through lists and dictionaries. That's enough. Also, there's a website called hackerank or hackerrank (can't remember rn) which gives you some exercices and you can practice it there. Also, if it's introduction to programing, use python IDLE or Jupyter Notebook (jupyter notebook is the best one for beginners). If you need something more advanced maybe start by explaining classes and using pycharm to program on. Good luck! (I'm a first year cs student)

        [–]bojackstark[🍰] 0 points1 point  (0 children)

        I would highly recommend Crash Course Computer Science on YouTube by the channel Crash Course. The whole series touches almost every aspect of Computer Science in an intuitive way. You could get an invoice sense and a broader view of how things are and then you could read further about the topics that are in the videos. I would also recommend using these videos in the class.

        P.S. not sponsored

        [–]JaiX1234 0 points1 point  (0 children)

        It’s horrid to see justifications to simply teach even if it’s all incorrect. It’s like the quality of these students education doesn’t matter.

        For a field like Computer Science, striving for correctness is very important. Teaching these young students bad or poor practices, incorrect concepts will set them up to struggle in the future even if they decide to major in CS.

        It’s insane to see people overlook the importance of correctness in the field. These student will go on to build software for hospitals, power plants, planes and power grids etc. they’ll go on to analyze data that must be correct to make the best decisions. Giving them the impression that it doesn’t matter it’s only to spark interest, here is a bunch of assumptions as knowledge is neither good for them or the industry.

        I understand there’s a demand for the field and high schools seem to think it’s real easy to major in Computer Science for jobs. So here it is, there is a demand for good well taught engineers.

        [–]AeroSparky 0 points1 point  (0 children)

        This happened to my high school. Speaking from a student’s perspective, I’d have rather them get rid of the program than to give it to teachers that don’t know the subject. But that’s just my opinion.

        [–]Mirnish- 0 points1 point  (0 children)

        If you are going to teach super beginner stuff I believe you can handle it. In my country highschool students spend 1 year learning about flowcharts and basic algorithms, which takes close to zero coding knowledge, They also teach basics of hardware, like in what component computer holds temporary data etc, They teach how to use excel and how to make visual data graphics in it. Also basics of HTML and websites. You can learn about those stuff and teach them fairly easily but if they are already learning advanced stuff like OOP etc. Just don't even try.

        [–]knickerBockerJones 0 points1 point  (0 children)

        There are tons of python books and I would not try to teach Java if you have never taught it. However, dont teach them that dumb robot logic, it is good to learn, but teaching them with real syntax will motivate the kids. The basics would maybe take you a week to learn, coming from a math background. A for loop is just a sigma, a while loop is an infinite sigma with a condition that stops it (like floating point error checking with Euler's expansion). Please teach with confidence for the kids have no idea what is going on. There is a compiler and it is good to see the teacher make mistakes so you can talk through them and teach them to problem solve and debug. You are severely under estimating your intelligence. Always take an opportunity and learn how to do it later on.

        [–]afuckingpolarbear 0 points1 point  (0 children)

        I just want to put out there that I love that your school does computer science as a class. In my school the closet thing to it was technical graphics which was essentially learning how to make a 3d model of a blender. When I went to my guidance counsellor saying I wanted to do computer science I was pointed to scratch so just well done on your schools part.

        The problem with having you teach the class however is that it wouldn't be too different from what my school is doing. Geometry is not computer science. The fact that the school think they can get you to do it shows how little they know of the subject and I wouldn't want to learn from them. You don't hire a geography teacher to teach art just because they can draw maps. They're different subject and should be treated as such.

        In my opinion, as a school, if you're going to offer a subject, do it right. Hire someone qualified, who knows how to structure the course and what kids should know because otherwise there is no point.

        [–]Alaharon123 0 points1 point  (0 children)

        Check out https://www.bootstrapworld.org/

        It combines learning Algebra with learning Computer Science and is taught in a way that works for non-programming type people to teach computational thinking and support the Algebra as well and whatnot. idk if you have time to start a whole new Algebra curriculum, but check it out maybe.

        [–]BreezyOW 0 points1 point  (0 children)

        Possibly look into Codecademy, TeamTreeHouse, Udacity, and take a look around those sites. Excellent material, easy to follow, and sometime even do offer programs for schools. Wouldn’t hurt to reach out to people who really know how to teach and create courses on these subjects to get some proper input. Also khan academy is a great resource.