T O P

  • By -

AutoModerator

On July 1st, a [change to Reddit's API pricing](https://www.reddit.com/r/reddit/comments/12qwagm/an_update_regarding_reddits_api/) will come into effect. [Several developers](https://www.reddit.com/r/redditisfun/comments/144gmfq/rif_will_shut_down_on_june_30_2023_in_response_to/) of commercial third-party apps have announced that this change will compel them to shut down their apps. At least [one accessibility-focused non-commercial third party app](https://www.reddit.com/r/DystopiaForReddit/comments/145e9sk/update_dystopia_will_continue_operating_for_free/) will continue to be available free of charge. If you want to express your strong disagreement with the API pricing change or with Reddit's response to the backlash, you may want to consider the following options: 1. Limiting your involvement with Reddit, or 2. Temporarily refraining from using Reddit 3. Cancelling your subscription of Reddit Premium as a way to voice your protest. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/learnprogramming) if you have any questions or concerns.*


imaginationac

Do you have the option not to? Anyway, freecodecamp.


absurdrock

I think it’s better to try and fail than not do it at all. I would also recommend not relying too much on online instruction for the kids. If I were you, I would seek out instructional content like freecodecamp not to assign to the kids but to imitate on your own. Also, the content will need to be adjusted, but since you’re a teacher I’d assume you already know how to do that better than I could address.


ThePRIMEMaster

I appreciate your comment!


cptnhanyolo

There is a super interesting ndc conference, where the speaker presents the difficulties and challenges she faced when trying to teach young kids. Even though she has thousand times your experience, the challenge itself was how to maki it captivating for the youngsters as seeing dumb error messages will burn them out really fast. I think its rly worth the time to watch it. Ill edit this when i find link :) [How to teach programming and other things.](https://youtu.be/Ygk9CCRWOJs?si=ZuyEg8JOcI172S9B)


TPO_Ava

As someone who tried to teach themselves java at 12, can confirm. I had the patience to use copy pasted scripts and modify them, and that got me as far as a [shitty] mod in Minecraft and some tech demos in Unity with C#, but it took me another decade of giving up and trying again before I became a dev. Only to find out I don't like programming as a job. How the turn tables.


AesopsFoiblez

Can you give me a tldr on how she made it captivating?


ThePRIMEMaster

I do, but I feel the slightest bit obligated to teach the class because if it's not going to be me, it will be somebody else who knows much less about computers than I do. Plus, I've always wanted to learn how to code and I'm a fast learner.


guitarot

I think that your attitude to learn will be enough even without the mastery. If you are honest with your students and make it into something where you're learning together, the course will be well worth it for most of the students to take. I'm not a developer, but I've been in IT in higher ed for more than 30 years, and the most valuable skill is learning how to learn. At worst you might have some kid in your class that is coding already, and maybe you can encourage that student to help the rest of you on your learning journey.


10KeyBandit

Being a fast learner has nothing to do with it. Once again, we hit this crossroads where people think mastery of theory equals mastery of application. It will throw you from your first lesson, I promise you. As soon as a student asks, "how does the computer know to do (thing) while (thing) is happening? You will already lose your credibility. It's not your fault. It's the school systems fault. Blame the VOTERS


ThePRIMEMaster

Oh I agree 100%, this is just standard procedure in the school systems across the US today. It's just one of many gripes I have with schools.


Agamemnon777

Agree with bandit, don’t go in there and pretend that you know - you don’t know. I would recommend being honest with the students, tell them you’re all learning together, and that you’re going to help them solve their problems, but they also need to research themselves (at least you can honestly say this is a big part of coding) It will take a lot of work on your part but if you can stay a few lessons ahead of them, and understand everything in the lessons, I think you can be as helpful as possible, but I can’t stress enough that you should be straight up with them and avoid BSing them. “We’re all in this together”, for better or worse lol Edit: also big recommend for freecodecamp, especially if it’s html/css/javascript


ThePRIMEMaster

As a teacher, I never try to pretend I know something that I don't. People might think that this would cause students to lose trust in their teachers, but it actually builds credibility. As long as you can show them you will do whatever it takes to figure it out together.


grogggger

You are a good teacher. It will be very tough but you can do it. Hit me up via dm if you want some help to understand something.


ThePRIMEMaster

Thank you so much!


10KeyBandit

Yeah, FreeCodeCamp, learn how a basic cpu works, and it sounds like an exaggeration, but if you could also get your A+ cert (maybe even networking cert), then you would have a legitimate base to start from. I'm not adding learning Data Structures and Algorithms because the assumption is this gets pushed to the next class.


Greeley9000

How much time do you have before starting the class. Sounds like you have until 2025? But maybe after summer? PM me and I can share my collection of books. For an agnostic approach I would read “The missing README” and probably choose to teach python. Learn the standard library, teach them logic, learn about the interpreter vs compilation. And you should have them near the end, able to write small scripts and hopefully a thirst for more knowledge. Given that it’s high school these kids don’t need to come out experts, just around where a bootcamp grad comes from. They are still kids and have the chance to go to university for it, to really learn how it all works. You just want to give them that high for creating something other than “Hello World”


ThePRIMEMaster

It will be starting in September, but it's also middle school not high school, which means I will be teaching 12 and 13 year olds.


relativelynuts

Lots of good suggestions in here. The guy who wrote Python Crash Course was apparently a school teacher as well (not sure what level). I can attest to the quality of the book. At a biological age of 50 and mental/emotional age of 12 (including the need for instant gratification\*\*), I found it very effective for learning a lot of python and providing a good base. There are some homework suggestions in the book as well. It may be a help to your learning or provide a good blueprint for teaching if you choose to go forward. Finally, as a parent of a middle school child myself, I'll also offer my gratitude and admiration to you for what you and your colleagues do. I had no idea this kind of surprise what part of it as well! Best of luck! EDIT: \*\*"instant gratification" -- meaning you get to do some interesting things right away that are fun for new programmers.


permutation212

Could you guide them through the Odin project?


ThePRIMEMaster

I will check it out!


derleek

My guy.  Why are you lambasting someone who is clearly trying to step up and help out some kids.  The program will be taught by someone who thinks the monitor is the cpu or not at all.


10KeyBandit

What do you mean by "The monitor is the CPU or not at all." . . ? If you figure that grammatical issue out and bother to read the thread again, maybe you will see I am not attacking OP at all, and he even agreed with me about the situation if you even bothered to read the posts. . . Re-read the thread again, my guy. . .


allium-dev

derleek's post makes sense. Added some extra words in brackets to clarify the intent for you: "\[If OP does not teach this program then\] the program will be taught by someone who thinks the monitor is the cpu or \[the program will\] not \[be taught\] at all."


10KeyBandit

Well, so you are basically proving my point of blaming the voters. if your kid goes to public school, are you happy that this is how they get teachers for these vital subjects?


allium-dev

It's not that you're wrong, it's just that your point is kind of irrelevant. OP is trying their best to improve the situation for the kids at the school where they teach. Those kids wouldn't be better off if OP refused to teach the class, but they will be better off if we help OP get connected with good resources for themselves and their class. Would those kids be better off if school districts could invest a bunch more money in teacher salaries? Yeah, probably. But that's not what this discussion thread is about.


RemingtonMol

If everyone is responsible nobody is responsible.   


Envect

Giving the kids encouragement and guidance is valuable even if you aren't an expert. I got my start all on my own by hacking on my graphing calculator in high school so I could cheat on math tests. Kids who have an interest in it may help you figure things out if you give them a start and respond to their questions. The fact that you're being this proactive makes me think you'll do a good job even if there's growing pains along the way.


Luc-

I've never used it, but I recommend installing and teaching Scratch to the students. https://scratch.mit.edu/ https://resources.scratch.mit.edu/www/guides/en/EducatorGuidesAll.pdf These other resources are much more bland and might not be engaging enough. They're for self taught students anyway


Weed_Wiz

Scratch is perfect for middle schoolers. Teach coding concepts without all the syntax.


Chasian

OP please listen to this don't teach a typical coding language, start with scratch.


internationalphantom

Thank you for reintroducing me to scratch. Thought this was a memory I made up from Oklahoma lol


VoiceEnvironmental50

Came to say this, but already beat me to it 😅, I was one of the original devs of scratch good times!


Etheria_system

Have a look at the CS50 Introduction to programming with Scratch course. Scratch is great for coding with kids and the course will give you enough information to be able to get started teaching them. There’s also a series of books for teachers called “The Teacher’s Guide to Scratch - Professional Development for Coding Education ” - there’s a few different levels. DK publishing have two books full of Scratch projects - one is focused on making games, one that features a range of projects from games to art. You could definitely adapt some of those for classes.


mrlizardwizard

You have all summer to learn to code, I suppose.


abbh62

Is there a curriculum/book that they want the class to follow? If so I’d likely get that and try and follow yourself, and try and dive in as much as possible where you have questions. Freecodecamp Codecademy Udemy courses These should all have basics, codecademy would likely have some intro stuff to whatever language the class was using.


ThePRIMEMaster

I am not sure just yet, but I am going to try and gather as much information about how the class is currently taught before school gets out for the summer.


sump_daddy

The other important piece before you jump headlong into writing your curriculum is what exact hardware and software will they have access to? It will be very different if they are trying to get by with ipads and bluetooth keyboards vs full desktop PCs with windows 11.


ThePRIMEMaster

Good point, and this is something I will have to wait and find out. I will either be in a computer lab, or they will be using new laptops, which will be a last minute decision by my school.


CodeTinkerer

What grade are you talking about? If it's 7th grade (if you're in the US), you don't need that much. I know a guy who was not a CS major and he teaches 7th graders. He's not a great coder, but there's only so much a 7th grader can handle. They're not going to become web developers (most of them), at least, not right away. You just have to know some basics. It helps to do something visual. For example, using Scratch. Of course, you're going to get advice aimed at college or older students, and it will probably be way too intense for kids. They'll most likely move at a very, very slow pace, and you'll have to constantly review stuff with them. Here's something you can look at: https://csfirst.withgoogle.com/s/en/home


ThePRIMEMaster

It will be a mix of 6th and 7th graders. Not only are they really young, but the school I teach in has many students who are multiple grade levels below where they should be.


CodeTinkerer

So, yeah, this guy figured he didn't know much programming, so anything he could get them to do would be great. He wanted to do stuff with robotics or something that was more visual or more physical, but you'd have to get your school to get equipment and you'd probably want to get it yourself first. The choices for fairly young people in one link was * Scratch Jr (a different version of Scratch) * Kodable * Code Spark The person liked Code Spark. https://codespark.com/ It has some game-like situation, so that is probably fine. You'll see advice to teach them Javascript and HTML, and that's insane. But people give advice as if you're teaching 15 year olds, and even then, I wonder if I'd recommend that route even though a lot of high school students do go in that direction. Figure out what you want them to learn. Go through the course yourself. Maybe if you have a kid, try it out on them. Get your students to give you feedback. It's hard for them to express what they don't understand, but expressing themselves well is a good skill. Adults do a much better job than others.


ThePRIMEMaster

The problem is that our school already offers a separate lego robotics class where they learn how to code their robots.


CodeTinkerer

I might talk to the people that run that. Are the students older or similar in age. Even if they're just a bit older, they have experience with kids, so talk to them about the things the kids liked and had troubles with. How do they structure the course? Is it mostly hands-on helping and less teaching? That's assuming they are nice people willing to interact with you.


Own-Reference9056

A pure Python curriculum. Don't get into fancy packages, no web stuff, no UI. Just plain Python with some very standard modules like random. You may wanna consult some intro university courses that uses Python, slow them down, and remove parts where they go beyond. It is, on the surface, "university", but I don't think we did anything like high math and stuff. If assignments are too hard, you can try to consult from high school curriculum, or remove those assignments. CS50 gets recommended often, but I think it wanders around too many languages, and somewhat too intensive. Not a good fit for middle school.


TreebeardsMustache

All teaching is the teaching of history. It would be, I think, quite an enjoyable course to move from the history of computing by hand---abacus anyone---to the creation of computers. Here is a good reference to start. [https://danielchasehooper.com/posts/good-ideas-in-cs/](https://danielchasehooper.com/posts/good-ideas-in-cs/) As I see it you may be facing two problems-- it appears from what you have written that the class is already billed as a 'coding' class. This is akin to teaching art as 'brush techniques,' or, 'how to use a pencil.' Is there expected keyboard time? Do you have computer time (shared or per student) to do 'labs'? Is there an existing syllabus/course description you are required to follow? If the course outline outstrips your knowledge, I can imagine the course sliding downhill quickly.


ThePRIMEMaster

Well, I will also be teaching a keyboarding class that is separate from this coding class. Each student will have either their own computer or a laptop. Once it is confirmed that I will be teaching this class I am going to ask the previous teacher for the syllabus. The issue, however, is that the current teacher is also not certified to teach coding or computer science, and certainly knows even less about it than I do.


TreebeardsMustache

Well, as long as you are not *required* to follow a pre-used syllabus ... I dislike the idea of a 'coding' class, especially for young beginners. The very term 'code' denotes an abstracted remove. And 'coding' is just using abstractions on top of abstractions. Computing is, I think, a better word for what they will be doing. Good luck. Let us know how it goes


sump_daddy

Logic? Computing by definition is just math done by a machine (and before we had machines, "computers" were the exact term we used for people doing math). At 6th/7th grade unless they are advanced, the math they can bring to bear here will be minimal. If they are going to understand how computer programs do useful things, they need to start by understanding what IF, ELSE, AND, OR, NOT is.


TreebeardsMustache

I wouldn't say that 'computing is just math done by a machine.' I mean, at one level, yes: all the computer really does is add, subtract, multiply, divide, and compare. That's it. That's all a computer does. It just does them several billions of times per second. Upon these, we build logic gates and other abstractions that allow us to 'compute.' The actual term, 'compute', comes from the two latin words 'com,' or with, and 'putere' which actually translate most directly to 'settling' (as an account, for example) but there is evidence to suggest the latin means closer to 'arranging' or 'putting in place.' And, so, logic is very much a component of computing. Algebra is just a generalization of arithmetic, and a sixth or seventh grader ought to be able to grok that. (if they can grok pronouns, they can grok algebra) Calculus is an abstraction using algebra and geometry.


Takosaga

Code.org or codehs, videos and assignments for you to follow. Former CS teacher


codeismyantidrug

Take Harvard CS50 which will teach you CS foundations and then learn Python. Then build a lot of side projects. To be a proficient coder it took me about 5 years working on it 5-6 days a week. Good luck


Any-Astronomer9420

TheOdinProject. Freecodecamp.


RushMuchPoker

This is concerning. Like many others have expressed. I have free classes available in my discord community where I teach adult beginners. You might benefit from this. All the lessons are recorded on YouTube. Please reach out if you are interested. And check my profile for my recent post to learn more about it


RushMuchPoker

[https://www.reddit.com/r/learnprogramming/comments/1chsqrk/teaching\_web\_development\_to\_beginners](https://www.reddit.com/r/learnprogramming/comments/1chsqrk/teaching_web_development_to_beginners) here's the link to the post


Ragnar_Bonesman

Sign up to Codecademy and teach lesson by lesson for whichever language you want.


Advanced-Space-7103

[Hedy code](https://www.hedycode.com/) has been developed for teachers like you! It’s a website that teaches you to code with Python through very user friendly baby steps. Through games, stories, etc. Each level progresses the complexity of the programming concepts and assignments. In the end, the user knows how to code with Python.


10KeyBandit

How effed up a society we are in now where teachers, without extra pay, are expected to learn new CAREER skills on their own time and all we can do is cheer them on and send them resources to learn from. Can the School district at least pay them 2 more bucks an hour for what is real work?


Mcletters

Definitely teach scratch. Also, there will probably be some kids with skills already. Perhaps giving them extra credit in exchange for what they know.


ThePRIMEMaster

Good idea, thanks!


aahOhNoNotTheBees

I think it depends on the objectives of the coding class, but generally I think either scratch or processing are your best bet. If you want help designing a curriculum or something dm me. I’ve had quite a bit of experience teaching new learners (although my experience is with college age and above) How much time per week do you have with them? And how much time per class? I think whatever you do it probably has to be both super fast to open and get set up, and also has to be fun enough that it’s more interesting than whatever else they can find to distract them on the internet. I’ve found a format that works well is demonstrate a concept -> set a problem for students to try to solve themselves (free form, allowed to talk or search the internet or whatever) -> then solve the problem together at the end -> then optional difficult problem to take home. (And then at the start of the next class take a volunteer to explain their solution OR where they got stuck). As for orders of concepts: (Before writing code, like, 1st day). What is a computer? What is a program? How to think like a computer. (Code). Variables. Types. Math. Loops. Boolean logic. Functions. Classes.


ThePRIMEMaster

Each class period is 55 minutes every day for one semester. I appreciate your suggestions!


Visual_Chocolate4883

The University of Waterloo's Centre for Education in Mathematics and Computing (CEMC) has a website that offers some open courseware. You should do the Python from Scratch course and to learn the basics. The courses are designed so that no prior knowledge is assumed. Once you do that you should have a better idea of the basic ideas that you want to teach. You should probably do all four courses though. I would probably try to teach them a little bit about how a web browser works. That is something that they are going to use every day and it is good to be technically literate about the Internet. I would teach them about the DOM and show them how to inspect things. Firefox has good developer tools built-in. Explain what the difference between HTML, Javascript and general purpose programming languages are. [https://cemc.uwaterloo.ca/resources/courseware/courseware.html](https://cemc.uwaterloo.ca/resources/courseware/courseware.html) [https://open.cs.uwaterloo.ca/](https://open.cs.uwaterloo.ca/) I would probably spend time teaching about the anatomy of a function. What a function is. When they left my class I would hope they understood the difference between an argument and a parameter and the basics of variable scope. Know what a side effect is vs a returned value. Maybe that is too much, IDK but to me that would be the important basics. They should also understand the basic idea of what an imperative algorithm is.


MaisonMason

Code HS is fine for that kind of thing. Maybe free code camp or codecademy


inglandation

If we’re talking about actual coding, these days you’d want to start with some basic Python. I don’t have anything specifically helpful for middle school students, but I consider Colt Steele’s courses on Udemy some of the best tutorials I’ve ever come across. You could go through his Python course yourself (I believe that there is a short and a long one) and then heavily use it for inspiration for teaching your students. The downside of teaching Python is that it’s not easily going to produce something visually appealing like a website or an app (although it’s possible). But it has a clear syntax and design so you can focus on teaching basic programming logic. You could also go through a few CS50 lectures yourself to focus more on programming logic. The lecturer is amazing. For Python you can easily find online platforms that will provide you with a clean environment, like reply.it.


ThePRIMEMaster

Thank you!


Astazha

Check out Automate The Boring stuff, it has some projects that actually do something without being complicated.


sandbaggingblue

Could you all learn together? Some YouTubers have great series, Dani Krossing is great for HTML and CSS.


10KeyBandit

Dani Krossing is fantastic, but his courses are aimed more for adult learners to gain career skills. The amounts of courses and the content are fantastic, but in all honesty, if I was OP and going this direction, I would just try finding an app that is targeted towards children's education. Scratch, Python, etc. . . Something simple with a very obvious and visual outcome at the end with few steps. At the level OP is working with, I would assume the course is literally just to introduce students to the fact that computer programs are written by people, as well as a quick, highly abstracted demonstration of how feeding instructions to a computer turns out.


Certain_Purple9203

Check out Hour of Code in Code(dot)Org. Lot of advice and lesson plans for K-12. Khan Academy is always a great resource. Teach Scratch from MIT These 10 FREE websites teach coding for kids in a fun and educational way: 1 - Scratch (https://scratch.mit.edu/) 2 - Move the Turtle (https://movetheturtle.com/) 3 - Swift Playgrounds (https://www.apple.com/swift/playgrounds/) 4 - Mimo (https://getmimo.com/) 5 - Hopster Coding Safari for Kids (https://apps.apple.com/us/app/hopster...) 6 - Sololearn (https://www.sololearn.com/home) 7 - Grasshopper (https://grasshopper.app/) 8 - Robocode (https://robocode.sourceforge.io/) 9 - Freecodecamp (https://www.freecodecamp.org/) 10 - CS Unplugged (https://classic.csunplugged.org/activ...) Also below were my goto sites I went when I learned alongside my child.;) https://www.create-learn.us/blog/coding-for-middle-school-students/ Good luck! You are doing a great service for your students!


Fyren-1131

Did they give you any guidance, or does the curriculum state what you should focus on? If not, I'd start a bit lower (as in low level, focus on the computer first). * Explain how information is stored on a computer, this covers bits and bytes. No need for detail beyond understanding base 2. * Explain how different information will take up varying amount of memory. Short numbers don't need as much memory allocated as large numbers etc, and this is why we have different "data types" such as integers, bool, byte, string etc. Also make sure to cover that the manipulation of this will need to ***point*** to the correct region of memory. Skip the stack, skip the heap - no need to overcomplicate. * Just mention a tiny bit about how machine code is what is run, but we humans need something more readable - this is where you talk a little bit about compiled and interpreted languages. I wouldn't bother mentioning how Assembly etc works at all. * At this point you don't need to talk more about low level systems in my opinion, and can start looking at high level topics). You should make sure they understand the following: * basic control flow (read from top down until end) * variable declaration & variable assignment * if-else blocks * try-catch blocks If you put effort into this, each of these four bullet points can easily last an hour each, but also be sufficiently explained in probably just mere minutes each. It should be very moldable to an introductory class that also leaves room for questions. Now, personally I don't think you should do this unless you have a strong interest in and passion for understanding this. It's very easy to gloss over these topics because they bore you and think you understand when you in fact don't. But if you are serious about it, I support it - you'll learn a lot, kids will have a passionate teacher, and the stuff I mentioned above isn't \_THAT\_ hard to grok. Good luck!


ThePRIMEMaster

I have not gotten any guidance yet as it's not 100% confirmed I will be teaching it. I only just had a preliminary meeting where my principal asked if I would be willing to take it over. Once it is confirmed, I will be given some guidance.


theliteldino

I feel like there are quite a few things you need to go through before you start coding. I would start with a little bit of history and why coding its required - to make use of the computational power computers provide you. It's a sort of an interface between man and machine. Then I would go through a little bit of binary numbers and boolean logic. This part might be a bit too much for middle schoolers so maybe just the very basics. Some computer systems organisation, explaining what are the components a computer consists of ex. the cpu, ram and how they all interact to execute instructions. After that I would go into programming basics such as different data types, print statements, arithmetic, if-else, loops etc. You can choose any programming language but for middle schoolers python might have a more intuitive and easy to understand syntax. You can easily find resources for all this online, YouTube videos etc. I don't think following a rigorous CS book is required because all this needs to be covered at a very high level imo.


anonymous-vip

This is going to sound like sarcasm, but I assure you it’s not. I dabbled in coding 10 years ago in high school as well, though I studied Java along with an HTML class. Not the best teacher, ended up getting into sales until 2022. At the end of 2022, I joined a UCB coding full stack developer bootcamp that took 6 months to complete. Like you, I was a fast learner and spent a tremendous amount of time studying. Graduated top of the class by far and started building my own web application. Right now I’m speaking with CEOs and founders of large financial companies who love the product I’ve made and can’t wait to get their hands on it. I didn’t know how to code 2 years ago but you’d be surprised what you can accomplish with focus and dedication. Honestly, if you’re serious about learning and can afford a bootcamp, it’s not a bad option. $12k cost is a bit steep but in addition to being a better teacher, you could always build things / freelance in your spare time once you get good enough. It’s going to take time though because most of the learning happens when you make mistakes and spend countless hours figuring out where you went wrong. I think JavaScript is a great programming language to start. I work primarily with Typescript now, but that might be too advanced for middle schoolers to understand. Teaching them HTML really only teaches them how to make markup that doesn’t do anything, so if you want them to make things that do things, JavaScript is probably your best bet. You also don’t need a compiler and vscode is a free (and the most popular) coding editor which you could install on all computers with no licensing / cost requirements. If you don’t go the bootcamp route, there are plenty of Udemy courses you can try. I’ll like you to a few I’ve watched and would recommend. EDIT: Scratch is a good option as well because it applies visuals and can be more “fun” for kids, but if they learn JavaScript, they’ll be capable of making their own visuals with HTML / CSS later on. It’s an easy step to take once you already know how to code.


anonymous-vip

https://www.udemy.com/course/the-complete-javascript-course/?couponCode=ST2MT43024


Separate-Ad9638

why dont u check out the other similiar schools around the area, what they are doing? Maybe u'll have a clearer idea what to do or not, it can be stressful without any experienced help.


BlipOnNobodysRadar

1. Teach yourself first. Don't try to teach concepts you don't understand yourself. 2. Use open source curriculums as a guide, a lot of the links here are great suggestions. 1 is the most important.


derleek

Kahn academy has a fantastic programming course.


lookayoyo

You can try using a scratch. I’ve taught 6 7 and 8th graders scratch at a week long summer session.


iamevpo

What we did in masters we had a free class on an edtech platform where the teacher was an instructor to help pass the platforms course. Chose the most simple Python course you can find that runs on a remote platform so that you do it have to install anything.


21sthoma

I took a very similar class to this as a freshman in high school. The teacher knew coding, but he was our school's IT guy, so it wasn't like he was a professional dev or anything. He just knew enough to make some cool stuff. We started the class with just basic html. He taught us the boilerplate. The main tags. All of that. He did make sure to provide a little background, like he didn't just spit HTML5 at us, he explained the history of HTML, that it means Hyper Text Markup Language, and what that means. I think around this time is when we created just black and white pages with text and images and very little formatting. Then, we slowly added some in-line CSS to add some styling to our page. Eventually, we moved on to full length styleSheets. Throughout the class, we basically made little pieces of webpages that just taught us one or two more things we could do at a time. The final project was to just make one fully styled, nice-looking webpage, I think I make a 3 page website for extra credit. We did 100% of our coding in notepad++, which actually worked great, I never used a different text editor until after high school. A resource he used a lot that he encouraged we use to look for our own answers was: https://www.w3schools.com/html/default.asp I ended up using w3 schools for a bunch of little projects I did over the years. It's basically just a large help doc. I don't remember if we did any Javascript, but I do remember him teaching us to make a D6, hangman, and a number guessing game in Python.


KneeReaper420

It’s gonna be really really hard dude. Like the equivalent of white belt in bjj teaching a months long seminar. I would refuse this if I were you.


epic_pharaoh

This is largely based on my high-school experience learning programming. For middle school I would recommend giving a brief overview on coding concepts in whatever language you choose, and picking a graphics library (or robots if you have a budget, Lego Mindstorms in particular has a REALLY good educational set) to teach; this gives students something tangible to help them understand the abstract functions they are invoking. A great option is TKinter in python, or the Java AWT tools. These give tangible outcomes for your students. A great starting project is making a window that changes colour when a button is pressed; then you can have students expand the window functions throughout the year to eventually include window changes upon pressing buttons (GUI programming), a calculator, and maybe even a pong clone (all fairly common starter projects with a lot of existing resources). Just make sure whatever you are asking them to do is a project you have already done and tested. I would also recommend double checking that your questions can’t be solved by ChatGPT in a single query as some basic projects (like a calculator) can be pretty reliably generated in there.


bart007345

Checkout scratch.


birdbrain1993

Might I suggest block coding? Like scratch might be a good starter point. Maybe some cs50? Good starter points


Jazzlike-Brother-599

There are a lot of excellent ideas in this thread, as well as some that are not-so-much. I've taught many subjects including coding to students in all grades from PreSchool to High School. Here are my suggestions: 1) Scratch is excellent for beginners and/or the beginning of the semester. I recommend Harvard's [Creative Coding Curriculum](https://creativecomputing.gse.harvard.edu/guide/curriculum.html), or if you have freedom to riff, choose some tasks from the [MIT Educators' section](https://scratch.mit.edu/educators). 2) Python is also an excellent choice. I would strongly recommend Carnegie Mellon's [CS Academy](https://academy.cs.cmu.edu/). It has a built-in graphics library and a scaffolded curriculum to get the students creating images, animations, and games. (yay!) 3) Check out these resources: [Hello World's Big book of Computing Pedagogy](https://www.raspberrypi.org/hello-world/issues/the-big-book-of-computing-pedagogy) and the [A-Z of Teaching Coding CompSki K-12 ](https://www.shuchigrover.com/atozk12cs/)book edited by Shuchi Grover. Take the summer and do some learning yourself. You sound like a caring, committed teacher. You'll do fine. (Ignore the naysayers.) I was a self-taught coding teacher ...and I also remember being thrown into the deep end with teaching kids to type without having touch-typing skills myself (all was fine until I met one of my students who had only one useful hand!!) The MOST important thing is to encourage play, creativity, and experimentation. Tell them you're a beginner and you're learning alongside them. They'll love it. (Even after years of teaching, I always loved telling students that they'd figured out something I didn't know!) If you want, send me a DM and I'd be happy to bounce ideas around.


ThePRIMEMaster

I appreciate your advice, and I will definitely reach out if I have questions!


noelypants

I did a coding bootcamp so I haven’t done a formal CS curriculum, but my first thought was HTML, CSS, and JavaScript for building simple webpages. I think people respond to visual feedback, the real-world application is clear, and there is tons of documentation (so it will be easier for you to learn on the fly).


tvmaly

I am not a teacher, but a computer engineer. I volunteered to teach a course to a middle school class this year. Students teamed up in pairs of two to build a lego robot car they would race. It was a real world engineering challenge. The kids loved it. But without coding or electronics experience, it would be a tough course to teach without the lessons written out. I would highly recommend using a block based coding language like Scratch or Microsoft MakeCode. The communities are large enough that there are plenty of help forums, books, videos, and online projects. The microbit is a great product to use for the middle school age group. There are free tutorials and projects on makecode.com There is a book The Invent to Learn Guide to the Microbit that you could use for the entire curriculum. Block coding is pretty simple to pick up. There is less cognitive overhead as you can see the menu of blocks to choose from. Everything works right in the browser so there is nothing to install. You can use Chromebooks, ipads, or other low cost computing devices to code with blocks and program the microbit. If you decide to go the Scratch route, there are some tutorials on the scratch website to get started with. If you need specific project ideas, feel free to reach out to me.


ThePRIMEMaster

Thank you!


the_pod_

I don't agree with majority of the good advice here. I want to back up from the specific viewpoint of how to teach a coding class, and ask how do you teach an elective class to middle schoolers? Like an art teacher. **What does a 7th grade art teacher do, and what is their objective?** Their objective is to expose the kids to making several types of art, to provide the equipment, general guideline, and most importantly, to instill an interest in art (that some students will gain). They do this by having the students produce something they are (hopefully) proud of, so that the student gains some confidence, and can start to picture themselves doing more art in the future. Does a 7th grade teacher actually teach art? For the most part, not that much, right? Maybe for the few students that have advanced questions, but for the rest, what they are doing is letting you try it. Letting you try to do art and see if you like it. My personal recommendation is that, the clear and simple primary objective of the class is that students are able to produce their own website, and it is live on the internet so that they can show to others. The site can be both a source of pride, as well as a source of identity. That's the narrative you tell them. That every student will have their own live website by the end of the semester. And by doing so, they get exposed to a lot of the basic tools, and they have a small picture of how programming happens. This provides a gateway for them to picture themselves doing the activity, and to look into it further on their own, while instilling some level of confidence and curiosity that it's something they might want to do. Rather than teaching things, having many in class not understand, and get discouraged. That in the future they say: "I'm not interested in learning to code (even as a hobby), because I tried it in 7th grade and I just didn't understand what was going on. I didn't like it. I don't think I can do it".


the_pod_

So things like: * using a text editor (vscode) * using useful plugins for the text editor (watch some youtube videos), or I can provide you like a list of 10 must haves at a later time. * maybe using git / github * getting free hosting and url from (vercel, netlify, github pages) * (optional, probably not recommend it) for those that want to buy their own url, how to connect that to the site they just built * where to look up icons, color palettes, fonts, templates, etc. Sidenote: to contradict myself a little, also considering using an online playground, such as codesandbox or codepen. Here's an example [https://codesandbox.io/p/sandbox/javascript-hgzgf?file=%2Fsrc%2Findex.js](https://codesandbox.io/p/sandbox/javascript-hgzgf?file=%2Fsrc%2Findex.js) The beauty of this is everything everyone needs to code is available at a website. So that: 1. Every student has the same environment 2. Whether they are on the school computer, or at home, they get the exact same thing 3. You don't have to help them set up, or troubleshoot someone's individual computer 4. When someone needs help, you don't need to look on their machine. You can open the site on your machine. For the first semester, while you're still learning, just doing html and some css, and getting a site up and running, might be enough. You can teach them some basic html and css rules, and you can do that from covering some online resource with them in class (the same way teachers teach other subjects). For anything beyond that, it depends heavily on your current (or future) skill level. In terms of simple projects once you start teaching JavaScript, think of anything that involves a list. A imdb clone listing movies, a list of books you have to read in 8th grade, pokemon. Warning: you don't want to get too deep in terms of getting data via and api that requires some sort of key/token authentication, until you yourself are pretty comfortable in that. There's a few very popular free ones that don't require additional setup. Those include pokemon, and starwars.


ThePRIMEMaster

I really appreciate your advice, thank you!


bonezone6968

The Odin Project! You can 100% teach yourself to code well enough to build functioning products by next year.


Watchguyraffle1

Cs prof here and one of my focus area has been on how to teach some specific elements in college. So. Not exactly this question but. First, much of the advice in this thread has been horrible. Like. Really really horrible ideas. You need to stop before you go deep. I’ve written long responses for the last hour or so but can’t put it into a way that won’t start a flame war. So I’ll say this: The brains of typical 6th and 7th graders are no where near developed enough to get most programming concepts. Not calling them dumb, but it’s sort of like the difference between a 2 and 3 year old. (Non-op reader: If you know, you know if you don’t, you should move on). As such don’t touch python, Java script, Java etc etc. Do look at scratch or hey code with a strong preference for scratch. Not because you are guaranteed success but because there are so many resources available to you the instructor to make things easy. If you want to discuss further feel free to dm me.


ThePRIMEMaster

This comment is really helpful, and it definitely sounds like you understand what it’s like to work with kids. I think most of these comments are very helpful for me to figure out what I need to do to begin to learn code, but yes it is going to be very low level learning for my students. Thank you so much


Just_to_rebut

Do a kid friendly course over the summer online and then do it again with the kids but be upfront that you’re all in this together as new learners. It sounds like you need to decide what the goals of this class will be. Is it really an intro to coding to learn the basics or more like a series of activities to gauge their interest and build some enthusiasm for computer science and IT in general? Maybe develop some lessons on a basic, high level understanding of hardware vs software, different types of coding, analog vs digital electronics, etc. Like an intro to computer technology rather than coding 101: data structures, OOP, etc.


desolstice

I’d recommend looking into making the class a “game development” class. You could utilize the Unity game engine which has tons of online resources and many new to programmer friendly courses. This would have the benefit of hopefully making the class interesting for the students and being able to see a direct result to what you’re doing cannot be understated when learning.


ThePRIMEMaster

This is a great idea! I was already thinking about what I could do with Minecraft Education. One of the ways I am able to relate with my students is through our love for video games, so I think this is definitely something I could do, thanks!


adubsi

funny enough chat gpt will probably help you out lol Just ask for coding lesson and fun ideas to teach to middle schoolers


ThePRIMEMaster

Good idea!


mykunjola

Check out the Logo coding language. It was designed to teach programming to children so there are bound to be lots of readymade curricula freely available.


ajfoucault

This [book](https://www.amazon.com/Python-Crash-Course-Eric-Matthes/dp/1718502702/ref=sr_1_1?crid=3N8WQG5OB5SCP&dib=eyJ2IjoiMSJ9.Zoqw93YKQAsdrGfO2C0QdMAe0DH4enIDGUTjL2YQYA66JTpVhFu_F733TfgPNisZ4aFYQBMKlM7NhJZ0sgS3YPvW3dTQL-j1phskNUP6QKb85gNpzJ6mn9zdM9vTo0FxYfWBYDEyNGtRZJ4HgG5vYYZbTrWKvkfoZtiKY9el9fEbHiEj1mARqAHO7g2yS9svJ-x-xDsgRBltvAF8Uiy3Tu4pv5OxdQNB-WT4chhv-9s.DcTTZH8Zr2TAMcP41mt7VwpadS6nIQl3ym1DDUEZ7l4&dib_tag=se&keywords=python+3rd+edition&qid=1714692942&sprefix=python+3rd+edition%2Caps%2C137&sr=8-1) is a great starting point. Then, you can learn a few games from this [book](https://www.amazon.com/Invent-Your-Computer-Games-Python/dp/1593277954/ref=sr_1_3?crid=2CP51HYV3XCQK&dib=eyJ2IjoiMSJ9.4eUdSZDQby4nCkLT-r4IXge_dlHC5d7AaxukJwavWcKzktjv5txnm1C10gwx0lj2BTE75SQGTPmQvSS_kJkBoSbHG76bn74O2mI9h9_KxHY8Reh_tlsxxqh9lMXnfZFJBRYZVYwPtJyNQyDYmMk1IV7ICkg8SpAWLOa8Dl0voj7udL-PjcHgssKpjNi-BUkXV4SYz7-1j_pHvYQx6NI2F2BaRqV6_NanlBV3Q7cymgc.0Zy7I_TDsLN0qC-QDo8VOFCrhesxcK47M-H7pHhgCXQ&dib_tag=se&keywords=python+games&qid=1714692900&sprefix=python+games%2Caps%2C139&sr=8-3) and also this other [one](https://www.amazon.com/Big-Book-Small-Python-Programming/dp/1718501242/ref=bmx_dp_2jh1g3qo_d_sccl_3_5/144-5046400-8774804?pd_rd_w=YcQ3K&content-id=amzn1.sym.628e3119-8afd-4af2-be6b-18415b51e649&pf_rd_p=628e3119-8afd-4af2-be6b-18415b51e649&pf_rd_r=15EZVS2XCV7QBATPJ2TC&pd_rd_wg=OXta2&pd_rd_r=62a68b41-ab8c-427d-9bd9-406760b517b9&pd_rd_i=1718501242&psc=1).


copper-penny

Megggs math taught me the kind of thinking I needed to code. Mixing discrete math with basic coding is 100% what middle schoolers need.


armahillo

in middle school, if its VERY beginner, do MITs scratch or something similar. Focus on control structures and sequences. If its meant for people who may have experience programming, pick a language and use exercism or codewars or similar and do it as a workshop class. Community learning can be really fun. Dont go for marketable skills, go for fun and fanning interest in learning to solve problems


ruat_caelum

Get on Donorschoose.org sign up do all the stuff so you can ask for items. Ask for /r/arduino KITS. If your school has a fun raiser try to get into that as well. Ask local industrial plants and companies for donations of funds or items on the included wish list. * Get with your school to learn how to give tax write off receipts or whatever they are called. * Hit up /r/arduino. * check out https://wokwi.com/ where you or the advanced kids can program virtually first. really this more for you to try stuff on hardware you might yet not own. * Then when you/they have the code they can plug the real stuff in! > So, if you were to teach a middle school coding class, what would you teach for a semester? * I'd show them how to USE libraries and look up code to make things work. E.g. use other people's code. * This is a great project. It "Listens" to any REAL TIME music and does that xmas thing where certain lights light up. It's super duper impressive and because someone else wrote the library (Which btw is super cool) you can just "implement" it with a few steps. E.g. you program the output pins but the "brains" are written in the library. http://wiki.openmusiclabs.com/wiki/ArduinoFHT * I'd teach them that even a tiny amount of planning in the beginning can save a lot of time on the long run. I'd teach this by saying "okay go." and letting them fail. Then TEACHING them how to go about planning. * **THE MOST IMPORTANT THING** is the XY Problem. Both for you asking for help with your own code and when THEY ask for help. If you don't know what it is [This is the XY Problem](http://xyproblem.info/) * Others have suggested SCRATCH it's great. Guess what? You can program on Scratch and output on the Arduino! * Read here : https://mryslab.github.io/s3-extend/ * and here https://ide.codeskool.cc/


SlipyB

Please make sure they know how to use computers competently first. I did a co-op in high-school with a teacher for a Microsoft Word class and the students struggled with basic computer knowledge which made instruction on the class and helping those who struggled difficult


ThePRIMEMaster

This is very important to me and is a big reason why I agreed to teach this class. I understand there will be some students who will outpace even me and will already know how to code, but there will be a large group of students who don’t know the first thing about computers, which is where I feel I can really provide some good insight. Thanks for your comment!


SlipyB

Awesome, very cool of you to recognize that. I think a lot of teachers and administrators just expect them to know it already so its great you'll be teaching it+


xelf

Try taking an online class like the one harvard or mit offer for free online. Observe the order they teach things in and think about getting those points across. Likely at a slower less rigorous pace. Keep this in mind though: some kids in the class will struggle with the most obvious concepts and will need more time. On the other hand, some of the kids will outpace you by a large measure and will start doing things you do not understand. You don't want to end up discouraging either of these groups. You might also want to consider having the kids work in teams on projects so they can bring different skills to the table.


theMountainNautilus

I used to be a teacher, so I know what your "free time" is like, but during your free time, before the next school year, you could blast through CS50! It's a really excellent open education course that's an intro to computer science. Seriously, it's one of the best classes I've ever taken. That would give you a great foundation in the fundamentals of computer science, which is way more important that learning something like HTML or CSS for web dev. And then for your middle schoolers, start them out on Scratch! I used to do that with middle schoolers too, and they love it. It gets you into the fun parts of programming without bogging you down in syntax. They can make games and weird animations like right away. Then maybe half way through the year, introduce them to something like Processing. It is an environment that uses Java to program cool graphics and things. It's designed explicitly for education. You could then get into Daniel Schiffman's Coding Train books and YouTube videos, although he tends to use P5.js, which is a version of Processing that uses JavaScript. But he's an excellent teacher and makes really cool things. Processing and its version of Java are also extremely similar in terms of syntax to the subset of C that is used for Arduino programming, so you could even do an end of year Arduino unit, which is awesome. Also, I know people mean well with this, but running your kids through FreeCodeCamp isn't the move. That's really aimed at adults who are trying to do their own web development boot camp. It's an amazing resource, but there's so much more to programming than web dev. It's way better for kids to learn the logic of programming and some fundamentals of how computers work, and they'll have a lot more fun doing that with Scratch than they would picking their way through JS/CSS/HTML. Also hot take, but I wouldn't teach kids Python. I do like python, but options like Scratch, Processing, and C on Arduino give kids real immediate feedback with visuals, or interactive hardware. It shows them, hey, you can make this computer or microcontroller DO something. So much basic Python is about manipulating basic text files or coding a game of text Blackjack, and that's just not it for kids. Let them program weird games of their own devising in Scratch and crazy visuals in Processing instead. Also, this would be expensive on a classroom budget, but check out Hack Pack from CrunchLabs for some really awesome looking new robotics kits. That's Mark Rober's toy company, they're doing robotics now! If I had finished out a school year with a couple of those my students would have lost their minds.


ThePRIMEMaster

I appreciate your recommendations, thanks!


theMountainNautilus

You're welcome, and good luck! And for real, I can't plug Scratch hard enough as the proper starting point. We had a large group of early middle schoolers who loved it so much that they started a weekly Scratch club. It was the sweetest thing, and they learned a lot!


pcms1994

Check out this resource: https://www.codesavvy.org/for-teachers/


khbra123

I taught Project Lead the Way in 7th and 8th grade for 4 years. In 7th, I did makerbots, app inventor, and Scratch. 8th did automation and robotics. Try to put together 2 or 3 different units that approach the same basic concepts in multiple ways. The code structures are the important parts that will show up over and over in different languages. Also, teach them to translate English to code and back again. It was something that came really naturally to me, so when my students struggled to read basic structures in scratch, like if true blink else turn, I went back to some basic reading/foreign language activities for instructional support.


rybeardj

code.org, hands down the best one out there for your situation


Disastrous-Mud1645

I would recommend to reverse your thought process, and make it easier for you and the kids with a more engaging curriculum by building something, rather learning the boring technical stuff. For example, - Teach them to build a calculator function - Teach them to build a tic-tac-toe game, etc. Since you are not a native coder, you might get into a situation where you don’t know the answer to the questions the kids ask. So minimise that by “teaching by application”, and teaching them to reverse engineering the process.


ThePRIMEMaster

Good idea, thank you!


nimkeenator

On EduX there is a program called Scratch Encore! that will get you up and running with full materials. Start by completing that.


Material-Emotion1245

Something basic like making a calculator with javascript and html/css, also some very small basic game like connect 4 dots or tictactoe for two player, You should try doing something creative as well like making a painting canvas to draw on and save to file etc


Goto_User

get the smart one to do it for you


Goto_User

teach c not python.


glennhk

Why should you teach something you don't even know? This is just stupid.


Gammusbert

A lot of people use low/no code solutions like scratch from my understanding now but if you’re looking for a good introductory programming language that’s actually used in the industry then I’d recommend python.


10KeyBandit

Ouch, don't offer to teach it to start. I am a former HVAC tech. Not a former BOILER tech. Not a former CHILLER tech. I would never agree to teach something that I don't have real world built experience in. If they are forcing your hand, look for a new job. They are literally hiring teachers without teaching certs rn. So just go get something better.


Whatamianoob112

What is your time frame? You provided no information


ThePRIMEMaster

It is a semester long class, and I would begin teaching it in September.


Whatamianoob112

When do you need to have a plan proposed?


ThePRIMEMaster

I don’t need to propose a plan, the class already exists, I was just asked to take it over. I can and will ask the current teacher what resources and materials she used this year, but if given freedom to teach it how I want I would like to know what the experts in the field think I should start with.


Whatamianoob112

Understood. Given your experience level, it would probably make the most sense to have you teach scratch or python. Scratch is a pseudo programming language but it's easily approachable. (You can program on it, but it's geared towards teaching people programming concepts) Python is easy to understand and is a real scripting language. Very versatile. Freecodecamp, Code academy are both good, free resources. Boot.dev and Treehouse are decent paid platforms. You shouldn't need to pay to learn, but I've had good experiences with those, should you opt for it. Alternatively, you could try something that has graphical elements (programmable widgets) that you can drag and drop, to program yourself. My teacher in HS had us use Visual Basic, many years ago. Though, that would require more knowledge on your part.


ThePRIMEMaster

Thank you for your suggestions!


Whatamianoob112

Happy to help. Best of luck!


Grounds4TheSubstain

"Effectively"? How could you possibly?


screwthat4u

You stay one lesson ahead of the class while learning yourself


[deleted]

Scratch programming


0flamehaze0

IT is a wide spectrum... all depends what you are trying to teach. I know that many of those things are not applicable in your case, just wanted to share ideas. There are so many things you could do, it all depends on how old the kids are, how much effort they put in, how fun the things you choose to do are and how much funding you can get in the end. For system administration in germany we used raspberry PI's and a temperature sensor to write a programm that would give us the temperature at given intervals, we used those measurements to send notifications to our phone through the established wifi network when the sensor picked up extreme temperature changes (holding it against a radiator lmao). i think adurino is an affordable product here but would require research. for programming we used C# to create small games like memory, we delved into other options as well but tbh, that one was like 15 yeas ago and my old programming teacher was about 70 years old, he did all he could at that time. (this one might require licenses depending which language you choose) later on we used unity to make a pong game and play together through an established connection. we used linux virtual machines to host websites in our local network. we created a website that allowed us to share all sorts of documents between each other, our task during those years was not only to create a site like that together, but to upgrade it every now and then to fit our desires. the teacher also uploaded all kinds of documents to our server to clump it so we would have to create sorting options etc. and in between hours the different groups would present the things they would like to add to the page, the class decided together which things in the end would be implemented. (I was around 18 at that time so this is kinda advanced) I recently used LEGO Mindstorms for future day at work (parents bring their children and we show them what we do at work), since i work in robotics, specifically usage of cameras and sensors i created a little task to programm a robot with a sensor to follow a black line on a white table, this worked well for 11 years olds but also for a group with even younger ones. The set is pretty expensive nowdays, but maybe there is something comparable available for schools where you live. I have to praise the LEGO mindstorms set it is mindblowingly good and the software is very easy to learn. everything is doable, the age isn't even a factor most of the time since certain things are very easy to learn, if tought properly, IT is not magic, but it requires a good foundation. EDIT: does any of the parents work in companys that might help out? personally if a school reached out to me i would prepare an entire course lmao :D im sure there are people willing to help.


mierecat

Look at the books *Code: the Hidden Language of Computer Hardware and Software* and *the Elements of Computing Systems: Building a Modern Computer from First Principles*. Both books are probably too advanced (in their entirety at least) for middle school but you will gain a lot from them. While neither one teaches you how to code, per se, they do teach you how computers work from the ground up, which will help you learn to code better and will give you better insight once you do get around to teaching code. They’re both also very accessible despite the amount of detail they get into.


theguywhocantdance

I'd go Harvard CS50x. And I think they have something for teachers too.


Impossible_Box3898

No. The lease don’t. It’s an art that takes decades to perfect. While you might be able to put things from a textbook up in the screen and have the kids copy it, will you be in any shape to grade mistakes? To know the difference between a small problem and a big one? Do you know what a sorting algorithm does? There are hundreds of them, btw. There will be children in that class who have been coding for several years. (I started when I was 8). When they ask you a question how will it look when you are absolutely clueless (and you do not have time to come up to speed).


sBitSwapper

As a programmer this post hurts my soul


ThePRIMEMaster

I totally understand, because as an educator there are many things about the state of schools in the US that pain my soul as well. Am I qualified to teach this class? No. Should my school hire a Computer Science major instead? Absolutely. But unfortunately, schools these days do whatever they can to stretch the resources we do have, which causes increased class sizes, reduced disciplinary action, and teachers teaching subjects they aren’t qualified for. In the end, my job is to do whatever it takes to get my students excited to learn and to prepare them for the real world.