 Hey, welcome to Intro to AP Computer Science for new AP teachers. This episode is called Hello World. This is the very first episode or the very first lesson where we're going to get students to actually download, install Java, and just kind of get started and type the classic Hello World problem. So let's go ahead and get started with that. Again, like this course is that you're watching right now. This is for teachers. The assumption is that you already know how to program in Java. If you don't, I do have a separate course that you can go through, some videos, there will be links and everything, you know, you know the routine. So in this lesson, we're going to intro to Java based on what is Java. And again, you're probably familiar with it, but on the off chance, you're not. Some key vocabulary that we need to the students need to know. I'm just going to go over that, talk about downloading and installing Java. What does it mean to actually have Java? But how do we write code? We need a program to do that and it's called a code editor and there's various options. And then we'll get into our Hello World program. I'll just talk about some things that you really need to point out to students that they just, you know, things they miss a lot. So what is Java? So according to our good friends at the Wikipedia, Java is a high level class based object oriented programming language. And so this is just where I would explain to the students, you know, computers only understand the ones and zeros, of course, that's very difficult for human beings to write. So we've developed more and more English like more and more human like languages. And yes, this is human like compared to machine code languages that we can use to program. Now the class based object oriented part to tell the students, hey, you'll get you'll get to understand that later. It just talks about the way the program is organized and there's different ways. Not everybody likes this style of programming. There are different, different styles. And some vocabulary. We already mentioned classes and objects, methods and variables, you just kind of go over those real quickly. You'd say, well, class defines an object, you'll learn this throughout the course. Methods are just basically things that objects can do. So for example, you're a student, you can study, you can sleep in class, even though you're probably not supposed to. And variables are very easy. They understand that generally speaking from math class. But obviously variables and programming can have quite a bit more range, I would say. And then this is important vocabulary. The source code. So the students need to understand the source code is what they are writing. Again, this is from the AP, I think this is officially from the AP. So maybe not. Anyway, source code is what the students are writing. And then they take that, they create what's called byte code. And that is like a numerical representation of their source code. And then there's another program called the JVM or Java virtual machine that actually runs the byte code. And so there's a process to writing and executing a Java program. Students need to be aware of. You start with source code that's compiled to byte code, and that byte code is run by the JVM. So source code is a .java file, and byte code is a .class file. So they'll see that in their computer directories as they're coding. And so probably at this point I would have the students download and install Java, install on the SDKs. It's probably to your benefit to pick one version and just make sure everybody downloads the same version, assuming that they are able to do so. Now some people use online stuff like repel.it is very capable. There are others, but I personally prefer to use a downloaded version because it gets the students a lot more used to what I would call real programming and also gets them more used to file management, which kids these days are absolutely terrible at. I thank smartphones for that. Then students need to understand that they need to install a coding editor. The JDK, the Java development kit by itself allows you to write code or allows you to compile and execute code, I should say, because that installs the JVM as well, but they need a program to write code. The one I recommend is called Genie. It's not as well-known, but it's super fast, super lightweight, and it actually does dozens and dozens of programming languages. Personally, I don't want to wait for a kid that has a slow computer to fire up IntelliJ, for example, which is a much more resource consuming and a far more complex interface. A reasonable middle ground between those two is VS Code, which a lot of people use, but VS Code also has a lot of different complex plug-ins that can be a little bit overwhelming, especially for beginning coders. That's why, again, I go with Genie, but you use whatever you are comfy with. This brings us to Hello World. Again, I am assuming that you are familiar with how to do that. If not, please watch my video on that subject. Things to look out for, things that I found that students just mess up all the time, so class name. They have to understand the class name must match the file name. They need to understand that it's Pascal casing, which is capital first letter and capital internal letters as well. They need to really watch out for matching the braces or curly brackets wherever you want to call them. Basically, what I usually do is I do the next line version of it and make sure everything is vertically aligned. And then indentation, which is interesting. In Python, you have to do indentation correctly. It won't function otherwise, but in Java, indentation is really optional. That said, I require it. Students submit something to me with incorrect indentation. I take points off for style. I'm sorry, I do. But I think that it is really helpful to them to be able to line it up. It's going to help clarify their thinking, and so we know what their intentions were, especially for AP when they're writing the answers. The AP will accept indentation if a student forgets a curly brace, as long as it's indented and clear that that was part of, say, that code block, they will not lose any credit. It's kind of important that they get into that habit. You need to understand what the main method is. That's where the execution begins, because they'll see some classes without main methods, they'll see classes with main methods. And of course, system.out.println and system.out.print, this is our first output. This is the first way we have the computer output information to us. I mentioned earlier, they take the source code that is compiled into byte code, and the byte code is executed by the JVM. So it's really important to get the students used to that new vocabulary that they're going to be using throughout the course. And yeah, it's better, especially if everybody is using the same vocabulary so that we can communicate clearly. So yeah, that was it. Basically that was intro to Java. So what is Java? I've talked about a little bit of the key vocabulary at this very early stage. Talked about the need to download and install Java. Again, if you're doing it online, that's fine. Again, I have my preferences, you're welcome to yours. Code editor, there are other options. And again, I mentioned Genie, which is my personal favorite. And then getting students to do Hello World, it's just such a common thing for programmers, and it is a unifying thing amongst the programming world. And that basically, so that we know, can students, do their computers work? Can they compile? Can they execute? And that way we can go from there, and then we know everything is set up correctly. So I think that is it. Thanks so much for watching. And again, I hope you got something out of it. And I'll see you, I guess, the next lesson. Take care.